lib Library API Documentation

dateformatwidget_impl.cc

00001 #include "timedateformatwidget.h" 00002 #include "dateformatwidget_impl.h" 00003 #include "dateformatwidget_impl.moc" 00004 #include <qdatetime.h> 00005 #include <qcombobox.h> 00006 #include <qcheckbox.h> 00007 #include <qlabel.h> 00008 #include <qbuttongroup.h> 00009 #include <qradiobutton.h> 00010 #include <kglobal.h> 00011 #include <klocale.h> 00012 #include <qlineedit.h> 00013 #include <kdebug.h> 00014 #include <knuminput.h> 00015 #include <kovariable.h> 00016 00017 /* 00018 * Constructs a DateFormatWidget which is a child of 'parent', with the 00019 * name 'name' and widget flags set to 'fl' 00020 */ 00021 DateFormatWidget::DateFormatWidget( QWidget* parent, const char* name, WFlags fl ) 00022 : TimeDateFormatWidgetPrototype( parent, name, fl ) 00023 { 00024 setCaption( i18n( "DateFormat", "Format of Date Variable" ) ); 00025 QStringList listDateFormat = KoVariableDateFormat::staticTranslatedFormatPropsList(); 00026 combo1->insertStringList(listDateFormat); 00027 00028 combo2->insertItem( i18n( "Day")); 00029 combo2->insertItem( i18n( "Day (2 digits)")); 00030 combo2->insertItem( i18n( "Day (abbreviated name)")); 00031 combo2->insertItem( i18n( "Day (long name)")); 00032 combo2->insertItem( i18n( "Month" ) ); 00033 combo2->insertItem( i18n( "Month (2 digits)" ) ); 00034 combo2->insertItem( i18n( "Month (abbreviated name)" ) ); 00035 combo2->insertItem( i18n( "Month (long name)" ) ); 00036 combo2->insertItem( i18n( "Month (possessive abbreviated name)" ) ); 00037 combo2->insertItem( i18n( "Month (possessive long name)" ) ); 00038 combo2->insertItem( i18n( "Year (2 digits)" ) ); 00039 combo2->insertItem( i18n( "Year (4 digits)" ) ); 00040 00041 combo2->insertItem( i18n( "Hour" ) ); 00042 combo2->insertItem( i18n( "Hour (2 digits)" ) ); 00043 combo2->insertItem( i18n( "Minute" ) ); 00044 combo2->insertItem( i18n( "Minute (2 digits)" ) ); 00045 combo2->insertItem( i18n( "Second" ) ); 00046 combo2->insertItem( i18n( "Second (2 digits)" ) ); 00047 combo2->insertItem( i18n( "Millisecond (3 digits)" ) ); 00048 combo2->insertItem( i18n( "am/pm" ) ); 00049 combo2->insertItem( i18n( "AM/PM" ) ); 00050 00051 combo2->setCurrentItem( 0 ); 00052 00053 label_correction->setText(i18n("Correct in Days")); 00054 00055 connect( CheckBox1, SIGNAL(toggled ( bool )),this,SLOT(slotPersonalizeChanged(bool))); 00056 connect( combo1, SIGNAL(activated ( const QString & )), this, SLOT(slotDefaultValueChanged(const QString &))); 00057 connect( combo1, SIGNAL(textChanged ( const QString & )), this, SLOT(slotDefaultValueChanged(const QString &))); 00058 connect( KIntNumInput1, SIGNAL(valueChanged(int)), this, SLOT( slotOffsetChanged(int))); 00059 slotPersonalizeChanged(false); 00060 } 00061 00062 /* 00063 * Destroys the object and frees any allocated resources 00064 */ 00065 DateFormatWidget::~DateFormatWidget() 00066 { 00067 // no need to delete child widgets, Qt does it all for us 00068 } 00069 00070 /* 00071 * public slot 00072 */ 00073 void DateFormatWidget::slotDefaultValueChanged(const QString & ) 00074 { 00075 updateLabel(); 00076 } 00077 00078 void DateFormatWidget::slotOffsetChanged(int) 00079 { 00080 updateLabel(); 00081 } 00082 00083 void DateFormatWidget::slotPersonalizeChanged(bool b) 00084 { 00085 combo2->setEnabled(b); 00086 TextLabel1->setEnabled(b); 00087 combo1->setEditable(b); 00088 updateLabel(); 00089 00090 } 00091 00092 void DateFormatWidget::comboActivated() 00093 { 00094 QString string=combo2->currentText(); 00095 if(string==i18n( "Day")) 00096 combo1->lineEdit()->insert("d"); 00097 else if(string==i18n( "Day (2 digits)")) 00098 combo1->lineEdit()->insert("dd"); 00099 else if(string==i18n( "Day (abbreviated name)")) 00100 combo1->lineEdit()->insert("ddd"); 00101 else if(string==i18n( "Day (long name)")) 00102 combo1->lineEdit()->insert("dddd"); 00103 else if(string==i18n( "Month" ) ) 00104 combo1->lineEdit()->insert("M"); 00105 else if(string==i18n( "Month (2 digits)" ) ) 00106 combo1->lineEdit()->insert("MM"); 00107 else if(string==i18n( "Month (abbreviated name)" ) ) 00108 combo1->lineEdit()->insert("MMM"); 00109 else if(string==i18n( "Month (long name)" ) ) 00110 combo1->lineEdit()->insert("MMMM"); 00111 else if(string==i18n( "Month (possessive abbreviated name)" ) ) 00112 combo1->lineEdit()->insert("PPP"); 00113 else if(string==i18n( "Month (possessive long name)" ) ) 00114 combo1->lineEdit()->insert("PPPP"); 00115 else if(string==i18n( "Year (2 digits)" ) ) 00116 combo1->lineEdit()->insert("yy"); 00117 else if(string==i18n( "Year (4 digits)" ) ) 00118 combo1->lineEdit()->insert("yyyy"); 00119 00120 else if(string==i18n("Hour")) 00121 combo1->lineEdit()->insert("h"); 00122 else if(string==i18n("Hour (2 digits)")) 00123 combo1->lineEdit()->insert("hh"); 00124 else if(string==i18n("Minute")) 00125 combo1->lineEdit()->insert("m"); 00126 else if(string==i18n("Minute (2 digits)")) 00127 combo1->lineEdit()->insert("mm"); 00128 else if(string==i18n("Second")) 00129 combo1->lineEdit()->insert("s"); 00130 else if(string==i18n("Second (2 digits)")) 00131 combo1->lineEdit()->insert("ss"); 00132 else if(string==i18n("Millisecond (3 digits)")) 00133 combo1->lineEdit()->insert("zzz"); 00134 else if(string==i18n("AM/PM")) 00135 combo1->lineEdit()->insert("AP"); 00136 else if(string==i18n("am/pm")) 00137 combo1->lineEdit()->insert("ap"); 00138 00139 updateLabel(); 00140 combo1->setFocus(); 00141 } 00142 00143 /* 00144 * public slot 00145 */ 00146 void DateFormatWidget::updateLabel() 00147 { 00148 KoVariableDateFormat format; 00149 format.setFormatProperties( resultString() ); 00150 QDateTime ct = QDateTime::currentDateTime().addDays( correctValue() ); 00151 label->setText( format.convert( ct ) ); 00152 } 00153 00154 QString DateFormatWidget::resultString() 00155 { 00156 const QString lookup(combo1->currentText()); 00157 const QStringList listTranslated( KoVariableDateFormat::staticTranslatedFormatPropsList() ); 00158 const int index = listTranslated.findIndex(lookup); 00159 if (index==-1) 00160 return (lookup); // Either costum or non-locale 00161 00162 // We have now a locale format, so we must "translate" it back; 00163 00164 // Lookup untranslated format 00165 const QStringList listRaw( KoVariableDateFormat::staticFormatPropsList() ); 00166 00167 QStringList::ConstIterator it( listRaw.at(index) ); 00168 Q_ASSERT( it != listRaw.end() ); 00169 if ( it != listRaw.end() ) 00170 return *it; 00171 kdError(32500) << "Internal error: could not find correcponding date format: " << lookup << endl; 00172 return QString::null; // Something is wrong, give back a default 00173 } 00174 00175 int DateFormatWidget::correctValue() 00176 { 00177 return KIntNumInput1->value(); 00178 }
KDE Logo
This file is part of the documentation for lib Library Version 1.3.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Sep 28 04:03:58 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003