1 /***************************************************************************
3 edit properties from/to original
5 -----------------------------------------------------------------------
7 begin : Mon Jun 28 21:02:16 1999
9 copyright : (C) 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de>
10 (C) 2001 The KDE-EDU team
11 (C) 2005 Peter Hedlund <peter@peterandlinda.com>
13 -----------------------------------------------------------------------
15 ***************************************************************************/
17 /***************************************************************************
19 * This program is free software; you can redistribute it and/or modify *
20 * it under the terms of the GNU General Public License as published by *
21 * the Free Software Foundation; either version 2 of the License, or *
22 * (at your option) any later version. *
24 ***************************************************************************/
27 #include "FromToEntryPage.h"
30 #include <qlineedit.h>
31 #include <qcombobox.h>
32 #include <qpushbutton.h>
33 #include <qgroupbox.h>
37 #include <QueryManager.h>
41 #include "MySpinBox.h"
43 static QStringList monthnames
;
45 FromToEntryPage::FromToEntryPage
59 FromToEntryPageForm( parent
, name
), fauxami(faux
), dlgbook(_dlgbook
)
62 monthnames
.append ("");
63 monthnames
.append (i18n("January"));
64 monthnames
.append (i18n("February"));
65 monthnames
.append (i18n("March"));
66 monthnames
.append (i18n("April"));
67 monthnames
.append (i18n("May"));
68 monthnames
.append (i18n("June"));
69 monthnames
.append (i18n("July"));
70 monthnames
.append (i18n("August"));
71 monthnames
.append (i18n("September"));
72 monthnames
.append (i18n("October"));
73 monthnames
.append (i18n("November"));
74 monthnames
.append (i18n("December"));
76 connect( bcount_line
, SIGNAL(textChanged(const QString
&)), SLOT(slotBCount(const QString
&)) );
77 connect( qcount_line
, SIGNAL(textChanged(const QString
&)), SLOT(slotQCount(const QString
&)) );
78 connect( fauxami_line
, SIGNAL(textChanged(const QString
&)), SLOT(slotFauxAmiSelected(const QString
&)) );
80 connect( never
, SIGNAL(clicked()), SLOT(slotNever()) );
81 connect( today
, SIGNAL(clicked()), SLOT(slotToday()) );
82 connect( gradebox
, SIGNAL(activated(int)), SLOT(slotGradeSelected(int)) );
84 connect( year_spin
, SIGNAL(valueChanged(int)), SLOT(slotYearChanged(int)) );
85 connect( month_spin
, SIGNAL(valueChanged(int)), SLOT(slotMonthChanged(int)) );
86 connect( day_spin
, SIGNAL(valueChanged(int)), SLOT(slotDayChanged(int)) );
88 year_spin
->setData ((QStringList
*) 0, 1980, 2100);
89 month_spin
->setData (&monthnames
, 1, 12);
90 day_spin
->setData ((QStringList
*) 0, 1, 31);
93 for (int i
= 0; i
<= KV_MAX_GRADE
; i
++) {
95 gradebox
->insertItem( QueryManager::gradeStr(i
) );
97 gradebox
->setValidator (new BlockAllValidator() );
99 setTabOrder(fauxami_line
, year_spin
);
100 setTabOrder(year_spin
, month_spin
);
101 setTabOrder(month_spin
, day_spin
);
102 setTabOrder(day_spin
, today
);
104 setData(multi_sel
, _grade
, _time
, _qcount
, _bcount
, faux
, label
);
108 void FromToEntryPage::setData(
121 fauxami_line
->setText(fauxami
);
126 if (_time
!= 0 && !multi_sel
) {
127 dt
.setTime_t (_time
);
132 month
= date
.month();
135 day_spin
->setValue(day
);
136 month_spin
->setValue(month
);
137 year_spin
->setValue(year
);
138 year_spin
->setSpecial(QString::null
);
139 month_spin
->setSpecial(QString::null
);
140 day_spin
->setSpecial(QString::null
);
143 dt
.setTime_t (time(0L));
146 month
= date
.month();
148 year_spin
->setSpecial("----");
149 month_spin
->setSpecial("----");
150 day_spin
->setSpecial("--");
153 direc_label
->setTitle (label
);
155 gradebox
->setCurrentItem (grade
);
159 qcount_line
->setText (s
);
162 bcount_line
->setText (s
);
165 fauxami_line
->setEnabled(false);
167 bcount_line
->setText ("");
168 qcount_line
->setText ("");
169 month_spin
->setSpecial(" ");
170 day_spin
->setSpecial(" ");
171 // FIXME: possibly derive new combobox type
172 // which filters ALL charcters to prevent new input
174 gradebox
->clearEdit();
177 bcount_dirty
= false;
178 qcount_dirty
= false;
186 void FromToEntryPage::slotFauxAmiSelected(const QString
& s
)
193 void FromToEntryPage::slotGradeSelected (int g
)
201 void FromToEntryPage::slotQCount(const QString
& s
)
205 qcount
= atoi (s
.local8Bit());
209 void FromToEntryPage::slotBCount(const QString
& s
)
213 bcount
= atoi (s
.local8Bit());
217 time_t FromToEntryPage::getDate () const
219 // FIXME: warning dialog/don`t quit dialog when date invalid
221 QDate
act_date (year
, month
, day
);
222 QDateTime
time_null (QDate (1970, 1, 1), QTime (0,0,0));
223 return -QDateTime(act_date
).secsTo (time_null
);
230 void FromToEntryPage::validate()
234 day_spin
->setValue(day
);
235 month_spin
->setValue(month
);
236 year_spin
->setValue(year
);
241 void FromToEntryPage::slotYearChanged(int new_year
)
250 year_spin
->setSpecial(QString::null
);
257 void FromToEntryPage::slotDecYear()
263 // FIXME: dec month when day decrease below 1
264 void FromToEntryPage::slotIncYear()
270 void FromToEntryPage::slotMonthChanged(int new_month
)
279 month_spin
->setSpecial(QString::null
);
286 void FromToEntryPage::slotDecMonth()
292 void FromToEntryPage::slotIncMonth()
298 void FromToEntryPage::slotDayChanged(int new_day
)
307 day_spin
->setSpecial(QString::null
);
314 void FromToEntryPage::slotDecDay()
320 void FromToEntryPage::slotIncDay()
326 void FromToEntryPage::slotToday()
331 dt
.setTime_t (time(0L));
333 year
= dt
.date().year();
334 month
= dt
.date().month();
335 day
= dt
.date().day();
337 day_spin
->setValue(day
);
338 month_spin
->setValue(month
);
339 year_spin
->setValue(year
);
340 year_spin
->setSpecial(QString::null
);
341 month_spin
->setSpecial(QString::null
);
342 day_spin
->setSpecial(QString::null
);
347 void FromToEntryPage::slotNever()
354 year_spin
->setSpecial("----");
355 month_spin
->setSpecial("----");
356 day_spin
->setSpecial("--");
361 bool FromToEntryPage::isModified()
367 void FromToEntryPage::setEnabled(int enable
)
369 bool ena
= enable
== EntryDlg::EnableAll
;
371 bcount_line
->setEnabled(ena
);
372 qcount_line
->setEnabled(ena
);
373 fauxami_line
->setEnabled(ena
);
375 never
->setEnabled(ena
);
376 today
->setEnabled(ena
);
377 gradebox
->setEnabled(ena
);
379 year_spin
->setEnabled(ena
);
380 month_spin
->setEnabled(ena
);
381 day_spin
->setEnabled(ena
);
385 void FromToEntryPage::setModified(bool mod
)
392 #include "FromToEntryPage.moc"