[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace/plasma/applets
From: Teemu Rytilahti <tpr () d5k ! net>
Date: 2008-08-07 16:49:05
Message-ID: 1218127745.000210.10086.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 843702 by rytilahti:
Add support to digital-clock for changing the timezone by using a mouse wheel.
M +3 -5 digital-clock/clock.cpp
M +0 -1 digital-clock/clock.h
M +47 -5 libplasmaclock/clockapplet.cpp
M +1 -0 libplasmaclock/clockapplet.h
M +3 -0 libplasmaclock/timezonesConfig.ui
--- trunk/KDE/kdebase/workspace/plasma/applets/digital-clock/clock.cpp #843701:843702
@@ -56,7 +56,6 @@
m_showDay(false),
m_showSeconds(false),
m_showTimezone(false),
- m_timeZones(),
m_layout(0)
{
KGlobal::locale()->insertCatalog("libplasmaclock");
@@ -75,7 +74,6 @@
KConfigGroup cg = config();
setCurrentTimezone(cg.readEntry("currentTimezone", localTimezone()));
- m_timeZones = cg.readEntry("timeZones", QStringList());
m_showTimezone = cg.readEntry("showTimezone", !isLocalTimezone());
@@ -179,7 +177,7 @@
}
void Clock::clockConfigAccepted()
-{
+{
KConfigGroup cg = config();
m_showTimezone = ui.showTimezone->isChecked();
@@ -218,7 +216,7 @@
cg.writeEntry("plainClockFont", m_plainClockFont);
cg.writeEntry("useCustomColor", m_useCustomColor);
cg.writeEntry("plainClockColor", m_plainClockColor);
-
+
constraintsEvent(Plasma::SizeConstraint);
update();
emit sizeHintChanged(Qt::PreferredSize);
@@ -285,7 +283,7 @@
"%1 day of the week with date, %2 currentTimezone",
"%1 %2", dateString, currentTimezone);
}
- } else if (m_showTimezone) {
+ } else if (m_showTimezone && !isLocalTimezone()) {
dateString = m_prettyTimezone;
}
--- trunk/KDE/kdebase/workspace/plasma/applets/digital-clock/clock.h #843701:843702
@@ -73,7 +73,6 @@
int updateInterval() const;
Plasma::IntervalAlignment intervalAlignment() const;
- QStringList m_timeZones;
QString m_prettyTimezone;
QTime m_time;
QDate m_date;
--- trunk/KDE/kdebase/workspace/plasma/applets/libplasmaclock/clockapplet.cpp #843701:843702
@@ -102,7 +102,9 @@
parent->addPage(widget, i18n("Time Zones"), icon());
d->ui.localTimeZone->setChecked(isLocalTimezone());
- d->ui.timeZones->setSelected(currentTimezone(), true);
+ foreach(QString tz, d->m_timeZones) {
+ d->ui.timeZones->setSelected(tz, true);
+ }
d->ui.timeZones->setEnabled(!isLocalTimezone());
parent->setButtons( KDialog::Ok | KDialog::Cancel | KDialog::Apply );
@@ -137,11 +139,14 @@
d->m_timeZones = d->ui.timeZones->selection();
cg.writeEntry("timeZones", d->m_timeZones);
- QString newTimezone = localTimezone();
-
- if (!d->ui.localTimeZone->isChecked() && !d->m_timeZones.isEmpty()) {
+ QString newTimezone;
+
+ if(d->ui.localTimeZone->isChecked())
+ newTimezone = localTimezone();
+ else if(d->m_timeZones.contains(currentTimezone()))
+ newTimezone = currentTimezone();
+ else
newTimezone = d->m_timeZones.at(0);
- }
changeEngineTimezone(currentTimezone(), newTimezone);
@@ -187,6 +192,40 @@
}
}
+void ClockApplet::wheelEvent(QGraphicsSceneWheelEvent *event)
+{
+ if(d->m_timeZones.count() <= 1 || isLocalTimezone())
+ return;
+
+ QString newTimezone;
+ int current = d->m_timeZones.indexOf(currentTimezone());
+
+ if(event->delta() > 0) {
+ int previous = current - 1;
+ if(previous < 0)
+ newTimezone = d->m_timeZones.last();
+ else
+ newTimezone = d->m_timeZones.at(previous);
+ }
+ else {
+ int next = current + 1;
+ if(next > d->m_timeZones.count() - 1)
+ newTimezone = d->m_timeZones.first();
+ else
+ newTimezone = d->m_timeZones.at(next);
+ }
+
+ changeEngineTimezone(currentTimezone(), newTimezone);
+ setCurrentTimezone(newTimezone);
+
+ // let's save our current timezone to be used per default
+ KConfigGroup cg = config();
+ cg.writeEntry("currentTimezone", newTimezone);
+ emit configNeedsSaving();
+
+ update();
+}
+
void ClockApplet::initExtenderItem(Plasma::ExtenderItem *item)
{
d->calendar = new KDatePicker;
@@ -199,6 +238,9 @@
void ClockApplet::init()
{
+ KConfigGroup cg = config();
+ d->m_timeZones = cg.readEntry("timeZones", QStringList());
+
Plasma::Extender *extender = new Plasma::Extender(this);
containment()->corona()->addOffscreenWidget(extender);
}
--- trunk/KDE/kdebase/workspace/plasma/applets/libplasmaclock/clockapplet.h #843701:843702
@@ -56,6 +56,7 @@
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
+ void wheelEvent(QGraphicsSceneWheelEvent *event);
void createConfigurationInterface(KConfigDialog *parent);
virtual void createClockConfigurationInterface(KConfigDialog *parent);
virtual void clockConfigAccepted();
--- trunk/KDE/kdebase/workspace/plasma/applets/libplasmaclock/timezonesConfig.ui #843701:843702
@@ -25,6 +25,9 @@
<height>150</height>
</size>
</property>
+ <property name="selectionMode" >
+ <enum>QAbstractItemView::MultiSelection</enum>
+ </property>
<column>
<property name="text" >
<string>Area</string>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic