F:/KPlato/koffice/libs/kotext/DateFormatWidget.cpp

Aller à la documentation de ce fichier.
00001 #include "ui_timedateformatwidget.h"
00002 #include "DateFormatWidget.h"
00003 #include "DateFormatWidget.moc"
00004 #include <QDateTime>
00005 #include <QComboBox>
00006 #include <QCheckBox>
00007 #include <QLabel>
00008 #include <QRadioButton>
00009 #include <kglobal.h>
00010 #include <klocale.h>
00011 #include <QLineEdit>
00012 #include <kdebug.h>
00013 #include <knuminput.h>
00014 #include <KoVariable.h>
00015 
00016 DateFormatWidget::DateFormatWidget( QWidget* parent )
00017     : QWidget( parent ),
00018       m_ui( new Ui_TimeDateFormatWidgetPrototype )
00019 {
00020     m_ui->setupUi( this );
00021     QStringList listDateFormat = KoVariableDateFormat::staticTranslatedFormatPropsList();
00022     m_ui->combo1->addItems(listDateFormat);
00023 
00024     m_ui->combo2->addItem( i18n( "Day"));
00025     m_ui->combo2->addItem( i18n( "Day (2 digits)"));
00026     m_ui->combo2->addItem( i18n( "Day (abbreviated name)"));
00027     m_ui->combo2->addItem( i18n( "Day (long name)"));
00028     m_ui->combo2->addItem( i18n( "Month" ) );
00029     m_ui->combo2->addItem( i18n( "Month (2 digits)" ) );
00030     m_ui->combo2->addItem( i18n( "Month (abbreviated name)" ) );
00031     m_ui->combo2->addItem( i18n( "Month (long name)" ) );
00032     m_ui->combo2->addItem( i18n( "Month (possessive abbreviated name)" ) );
00033     m_ui->combo2->addItem( i18n( "Month (possessive long name)" ) );
00034     m_ui->combo2->addItem( i18n( "Year (2 digits)" ) );
00035     m_ui->combo2->addItem( i18n( "Year (4 digits)" ) );
00036 
00037     m_ui->combo2->addItem( i18n( "Hour" ) );
00038     m_ui->combo2->addItem( i18n( "Hour (2 digits)" ) );
00039     m_ui->combo2->addItem( i18n( "Minute" ) );
00040     m_ui->combo2->addItem( i18n( "Minute (2 digits)" ) );
00041     m_ui->combo2->addItem( i18n( "Second" ) );
00042     m_ui->combo2->addItem( i18n( "Second (2 digits)" ) );
00043     m_ui->combo2->addItem( i18n( "Millisecond (3 digits)" ) );
00044     m_ui->combo2->addItem( i18n( "am/pm" ) );
00045     m_ui->combo2->addItem( i18n( "AM/PM" ) );
00046 
00047     m_ui->combo2->setCurrentIndex( 0 );
00048 
00049     m_ui->label_correction->setText(i18n("Correct in Days"));
00050 
00051     connect( m_ui->CheckBox1, SIGNAL(toggled ( bool )),this,SLOT(slotPersonalizeChanged(bool)));
00052     connect( m_ui->combo1, SIGNAL(activated ( const QString & )), this, SLOT(slotDefaultValueChanged(const QString &)));
00053     connect( m_ui->combo1, SIGNAL(textChanged ( const QString & )), this, SLOT(slotDefaultValueChanged(const QString &)));
00054     connect( m_ui->combo2, SIGNAL(activated( int ) ), this, SLOT( comboActivated() ) );
00055     connect( m_ui->KIntNumInput1, SIGNAL(valueChanged(int)), this, SLOT( slotOffsetChanged(int)));
00056 
00057     slotPersonalizeChanged(false);
00058 }
00059 
00060 DateFormatWidget::~DateFormatWidget()
00061 {
00062     delete m_ui;
00063 }
00064 
00065 // public slots
00066 
00067 void DateFormatWidget::slotDefaultValueChanged(const QString & )
00068 {
00069     updateLabel();
00070 }
00071 
00072 void DateFormatWidget::slotOffsetChanged(int)
00073 {
00074     updateLabel();
00075 }
00076 
00077 void DateFormatWidget::slotPersonalizeChanged(bool b)
00078 {
00079     m_ui->combo2->setEnabled(b);
00080     m_ui->TextLabel1->setEnabled(b);
00081     m_ui->combo1->setEditable(b);
00082     updateLabel();
00083 
00084 }
00085 
00086 void DateFormatWidget::comboActivated()
00087 {
00088     QString string=m_ui->combo2->currentText();
00089     if(string==i18n( "Day"))
00090         m_ui->combo1->lineEdit()->insert("d");
00091     else if(string==i18n( "Day (2 digits)"))
00092         m_ui->combo1->lineEdit()->insert("dd");
00093     else if(string==i18n( "Day (abbreviated name)"))
00094         m_ui->combo1->lineEdit()->insert("ddd");
00095     else if(string==i18n( "Day (long name)"))
00096         m_ui->combo1->lineEdit()->insert("dddd");
00097     else if(string==i18n( "Month" ) )
00098         m_ui->combo1->lineEdit()->insert("M");
00099     else if(string==i18n( "Month (2 digits)" ) )
00100         m_ui->combo1->lineEdit()->insert("MM");
00101     else if(string==i18n( "Month (abbreviated name)" ) )
00102         m_ui->combo1->lineEdit()->insert("MMM");
00103     else if(string==i18n( "Month (long name)" ) )
00104         m_ui->combo1->lineEdit()->insert("MMMM");
00105     else if(string==i18n( "Month (possessive abbreviated name)" ) )
00106         m_ui->combo1->lineEdit()->insert("PPP");
00107     else if(string==i18n( "Month (possessive long name)" ) )
00108         m_ui->combo1->lineEdit()->insert("PPPP");
00109     else if(string==i18n( "Year (2 digits)" ) )
00110         m_ui->combo1->lineEdit()->insert("yy");
00111     else if(string==i18n( "Year (4 digits)" ) )
00112         m_ui->combo1->lineEdit()->insert("yyyy");
00113 
00114     else if(string==i18n("Hour"))
00115         m_ui->combo1->lineEdit()->insert("h");
00116     else if(string==i18n("Hour (2 digits)"))
00117         m_ui->combo1->lineEdit()->insert("hh");
00118     else if(string==i18n("Minute"))
00119         m_ui->combo1->lineEdit()->insert("m");
00120     else if(string==i18n("Minute (2 digits)"))
00121         m_ui->combo1->lineEdit()->insert("mm");
00122     else if(string==i18n("Second"))
00123         m_ui->combo1->lineEdit()->insert("s");
00124     else if(string==i18n("Second (2 digits)"))
00125         m_ui->combo1->lineEdit()->insert("ss");
00126     else if(string==i18n("Millisecond (3 digits)"))
00127         m_ui->combo1->lineEdit()->insert("zzz");
00128     else if(string==i18n("AM/PM"))
00129         m_ui->combo1->lineEdit()->insert("AP");
00130     else if(string==i18n("am/pm"))
00131         m_ui->combo1->lineEdit()->insert("ap");
00132 
00133     updateLabel();
00134     m_ui->combo1->setFocus();
00135 }
00136 
00137 /*
00138  * public slot
00139  */
00140 void DateFormatWidget::updateLabel()
00141 {
00142     KoVariableDateFormat format;
00143     format.setFormatProperties( resultString() );
00144     QDateTime ct = QDateTime::currentDateTime().addDays( correctValue() );
00145     m_ui->label->setText( format.convert( ct ) );
00146 }
00147 
00148 QString DateFormatWidget::resultString()
00149 {
00150     const QString lookup(m_ui->combo1->currentText());
00151     const QStringList listTranslated( KoVariableDateFormat::staticTranslatedFormatPropsList() );
00152     const int index = listTranslated.indexOf(lookup);
00153     if (index==-1)
00154         return lookup; // Either costum or non-locale
00155 
00156     // We have now a locale format, so we must "translate" it back;
00157 
00158     // Lookup untranslated format
00159     const QStringList listRaw( KoVariableDateFormat::staticFormatPropsList() );
00160     Q_ASSERT( index < listRaw.count() );
00161     return listRaw.at( index );
00162 }
00163 
00164 int DateFormatWidget::correctValue()
00165 {
00166     return m_ui->KIntNumInput1->value();
00167 }
00168 
00169 QComboBox *DateFormatWidget::combo1()
00170 {
00171                 return m_ui->combo1;
00172 }
00173 
00174 QComboBox *DateFormatWidget::combo2()
00175 {
00176         return m_ui->combo2;
00177 }
00178                 

Généré le Wed Nov 22 23:41:07 2006 pour KPlato par  doxygen 1.5.1-p1