author | eilers <eilers> | 2003-08-08 15:09:29 (UTC) |
---|---|---|
committer | eilers <eilers> | 2003-08-08 15:09:29 (UTC) |
commit | b87b33dc1f6e8e1276a7035ab7a3e53b8ed4bd16 (patch) (side-by-side diff) | |
tree | b0f96db67cfb1b9d2476530ecec9a2ba6eacbab1 /libopie/orecurrancewidget.cpp | |
parent | 14d394e6c107b037a09a31a92605034fe50f7813 (diff) | |
download | opie-b87b33dc1f6e8e1276a7035ab7a3e53b8ed4bd16.zip opie-b87b33dc1f6e8e1276a7035ab7a3e53b8ed4bd16.tar.gz opie-b87b33dc1f6e8e1276a7035ab7a3e53b8ed4bd16.tar.bz2 |
Merging all changes from BRANCH_1_0.
Diffstat (limited to 'libopie/orecurrancewidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie/orecurrancewidget.cpp | 56 |
1 files changed, 39 insertions, 17 deletions
diff --git a/libopie/orecurrancewidget.cpp b/libopie/orecurrancewidget.cpp index 471249d..be8ec30 100644 --- a/libopie/orecurrancewidget.cpp +++ b/libopie/orecurrancewidget.cpp @@ -1,35 +1,52 @@ #include <qapplication.h> #include <qlabel.h> #include <qpopupmenu.h> #include <qspinbox.h> #include <qpe/timestring.h> #include "orecurrancewidget.h" // Global Templates for use in setting up the repeat label... -const QString strDayTemplate = QObject::tr("Every"); -const QString strYearTemplate = QObject::tr("%1 %2 every "); -const QString strMonthDateTemplate = QObject::tr("The %1 every "); -const QString strMonthDayTemplate = QObject::tr("The %1 %1 of every"); -const QString strWeekTemplate = QObject::tr("Every "); -const QString dayLabel[] = { QObject::tr("Monday"), - QObject::tr("Tuesday"), - QObject::tr("Wednesday"), - QObject::tr("Thursday"), - QObject::tr("Friday"), - QObject::tr("Saturday"), - QObject::tr("Sunday") }; +// the problem is these strings get initialized before QPEApplication can install the translator -zecke +namespace { +QString strDayTemplate; +QString strYearTemplate; +QString strMonthDateTemplate; +QString strMonthDayTemplate; +QString strWeekTemplate; +QString dayLabel[7]; +} +/* + * static linkage to not polute the symbol table... + * The problem is that const and static linkage are resolved prior to installing a translator + * leading to that the above strings are translted but to the original we delay the init of these strings... + * -zecke + */ +static void fillStrings() { + strDayTemplate = QObject::tr("Every"); + strYearTemplate = QObject::tr("%1 %2 every "); + strMonthDateTemplate = QObject::tr("The %1 every "); + strMonthDayTemplate = QObject::tr("The %1 %2 of every"); + strWeekTemplate = QObject::tr("Every "); + dayLabel[0] = QObject::tr("Monday"); + dayLabel[1] = QObject::tr("Tuesday"); + dayLabel[2] = QObject::tr("Wednesday"); + dayLabel[3] = QObject::tr("Thursday"); + dayLabel[4] = QObject::tr("Friday"); + dayLabel[5] = QObject::tr("Saturday"); + dayLabel[6] = QObject::tr("Sunday"); +} static QString numberPlacing( int x ); // return the proper word format for // x (1st, 2nd, etc) static int week( const QDate &dt ); // what week in the month is dt? /** * Constructs the Widget * @param startOnMonday Does the week start on monday * @param newStart The start date of the recurrence * @param parent The parent widget * @param name the name of object * @param modal if the dialog should be modal @@ -37,24 +54,27 @@ static int week( const QDate &dt ); // what week in the month is dt? */ ORecurranceWidget::ORecurranceWidget( bool startOnMonday, const QDate& newStart, QWidget* parent, const char* name, bool modal, WFlags fl ) : ORecurranceBase( parent, name, modal, fl ), start( newStart ), currInterval( None ), startWeekOnMonday( startOnMonday ) { + if (strDayTemplate.isEmpty() ) + fillStrings(); + init(); fraType->setButton( currInterval ); chkNoEnd->setChecked( TRUE ); setupNone(); } /** * Different constructor * @param startOnMonday Does the week start on monday? * @param rp Already set ORecur object * @param startDate The start date * @param parent The parent widget @@ -62,38 +82,39 @@ ORecurranceWidget::ORecurranceWidget( bool startOnMonday, * @param modal * @param fl The flags for window */ ORecurranceWidget::ORecurranceWidget( bool startOnMonday, const ORecur& rp, const QDate& startDate, QWidget* parent, const char* name, bool modal, WFlags fl) : ORecurranceBase( parent, name, modal, fl ), start( startDate ), end( rp.endDate() ), startWeekOnMonday( startOnMonday ) { + if (strDayTemplate.isEmpty() ) + fillStrings(); // do some stuff with the repeat pattern init(); setRecurrence( rp ); } ORecurranceWidget::~ORecurranceWidget() { } /** * set the start date * @param date the new start date */ void ORecurranceWidget::setStartDate( const QDate& date ) { - qWarning("ORecurranceWidget::setStartDate"); setRecurrence( recurrence(), date ); } /** * set the recurrence * @param rp The ORecur object with the new recurrence rules */ void ORecurranceWidget::setRecurrence( const ORecur& rp ) { setRecurrence( rp, start ); } /** * overloaded method taking ORecur and a new start date @@ -358,36 +379,37 @@ void ORecurranceWidget::slotWeekLabel() { if ( bNeedCarriage ) str += tr( ",\nand " ) + *itStr; else str += tr( ", and " ) + *itStr; } } else { if ( bNeedCarriage ) str += ",\n" + *itStr; else str += ", " + *itStr; } } - str = str.prepend( "on " ); + str = str.prepend( tr("on ") ); + lblWeekVar->setText( str ); } void ORecurranceWidget::slotMonthLabel(int type) { QString str; if ( currInterval != Month || type > 1 ) return; if ( type == 1 ) - str = strMonthDateTemplate.arg( numberPlacing(start.day()) ); + str = strMonthDateTemplate.arg( numberPlacing(start.day()) ); else - str = strMonthDayTemplate.arg( numberPlacing(week(start))) - .arg( dayLabel[start.dayOfWeek() - 1] ); + str = strMonthDayTemplate.arg( numberPlacing(week(start))) + .arg( dayLabel[start.dayOfWeek() - 1] ); lblRepeat->setText( str ); } void ORecurranceWidget::slotChangeStartOfWeek( bool onMonday ) { startWeekOnMonday = onMonday; // we need to make this unintrusive as possible... int saveSpin = spinFreq->value(); char days = 0; int day; QListIterator<QToolButton> itExtra( listExtra ); for ( day = 1; *itExtra; ++itExtra, day = day << 1 ) { if ( (*itExtra)->isOn() ) { if ( !startWeekOnMonday ) |