File: panel.cpp

package info (click to toggle)
qwt 6.1.4-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 23,808 kB
  • sloc: cpp: 57,687; xml: 182; makefile: 32
file content (95 lines) | stat: -rw-r--r-- 2,784 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include "panel.h"
#include "settings.h"
#include <qwt_date.h>
#include <qdatetimeedit.h>
#include <qspinbox.h>
#include <qlayout.h>
#include <qlabel.h>

Panel::Panel( QWidget *parent ):
    QWidget( parent )
{
    // create widgets

    d_startDateTime = new QDateTimeEdit();
    d_startDateTime->setDisplayFormat( "M/d/yyyy h:mm AP :zzz" );
    d_startDateTime->setCalendarPopup( true );

    d_endDateTime = new QDateTimeEdit();
    d_endDateTime->setDisplayFormat( "M/d/yyyy h:mm AP :zzz" );
    d_endDateTime->setCalendarPopup( true );

    d_maxMajorSteps = new QSpinBox();
    d_maxMajorSteps->setRange( 0, 50 );

    d_maxMinorSteps = new QSpinBox();
    d_maxMinorSteps->setRange( 0, 50 );

    d_maxWeeks = new QSpinBox();
    d_maxWeeks->setRange( -1, 100 );
    d_maxWeeks->setSpecialValueText( "Disabled" );

    // layout

    QGridLayout *layout = new QGridLayout( this );
    layout->setAlignment( Qt::AlignLeft | Qt::AlignTop );

    int row = 0;
    layout->addWidget( new QLabel( "From" ), row, 0 );
    layout->addWidget( d_startDateTime, row, 1 );

    row++;
    layout->addWidget( new QLabel( "To" ), row, 0 );
    layout->addWidget( d_endDateTime, row, 1 );

    row++;
    layout->addWidget( new QLabel( "Max. Major Steps" ), row, 0 );
    layout->addWidget( d_maxMajorSteps, row, 1 );

    row++;
    layout->addWidget( new QLabel( "Max. Minor Steps" ), row, 0 );
    layout->addWidget( d_maxMinorSteps, row, 1 );

    row++;
    layout->addWidget( new QLabel( "Max Weeks" ), row, 0 );
    layout->addWidget( d_maxWeeks, row, 1 );

    connect( d_startDateTime,
        SIGNAL( dateTimeChanged( const QDateTime & ) ), SIGNAL( edited() ) );
    connect( d_endDateTime,
        SIGNAL( dateTimeChanged( const QDateTime & ) ), SIGNAL( edited() ) );
    connect( d_maxMajorSteps,
        SIGNAL( valueChanged( int ) ), SIGNAL( edited() ) );
    connect( d_maxMinorSteps,
        SIGNAL( valueChanged( int ) ), SIGNAL( edited() ) );
    connect( d_maxWeeks,
        SIGNAL( valueChanged( int ) ), SIGNAL( edited() ) );
}

void Panel::setSettings( const Settings &settings )
{
    blockSignals( true );

    d_startDateTime->setDateTime( settings.startDateTime );
    d_endDateTime->setDateTime( settings.endDateTime );

    d_maxMajorSteps->setValue( settings.maxMajorSteps );
    d_maxMinorSteps->setValue( settings.maxMinorSteps );
    d_maxWeeks->setValue( settings.maxWeeks );

    blockSignals( false );
}

Settings Panel::settings() const
{
    Settings settings;

    settings.startDateTime = d_startDateTime->dateTime();
    settings.endDateTime = d_endDateTime->dateTime();

    settings.maxMajorSteps = d_maxMajorSteps->value();
    settings.maxMinorSteps = d_maxMinorSteps->value();
    settings.maxWeeks = d_maxWeeks->value();

    return settings;
}