[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdebase/workspace
From: Trever Fischer <wm161 () wm161 ! net>
Date: 2009-03-22 20:51:29
Message-ID: 1237755089.102656.10179.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 942893 by tdfischer:
FEATURE: Clock applets can now announce the current time every N minutes via KTTS.
M +1 -1 libs/plasmaclock/CMakeLists.txt
D libs/plasmaclock/calendarConfig.ui
M +37 -16 libs/plasmaclock/clockapplet.cpp
M +1 -0 libs/plasmaclock/clockapplet.h
A libs/plasmaclock/generalConfig.ui
M +3 -1 plasma/applets/analog-clock/clock.cpp
M +2 -1 plasma/applets/digital-clock/clock.cpp
--- trunk/KDE/kdebase/workspace/libs/plasmaclock/CMakeLists.txt #942892:942893
@@ -5,7 +5,7 @@
dateextenderwidget.cpp
)
-kde4_add_ui_files(plasmaclock_LIB_SRCS timezonesConfig.ui calendarConfig.ui)
+kde4_add_ui_files(plasmaclock_LIB_SRCS timezonesConfig.ui generalConfig.ui)
kde4_add_library(plasmaclock SHARED ${plasmaclock_LIB_SRCS})
--- trunk/KDE/kdebase/workspace/libs/plasmaclock/clockapplet.cpp #942892:942893
@@ -30,6 +30,8 @@
#include <QtGui/QGraphicsProxyWidget>
#include <QtGui/QGraphicsSceneMouseEvent>
#include <QtGui/QGraphicsView>
+#include <QtDBus/QDBusInterface>
+#include <QtDBus/QDBusPendingCall>
#include <QtCore/QDate>
#include <QtCore/QTimer>
@@ -56,7 +58,7 @@
#include "dateextenderwidget.h"
#include "ui_timezonesConfig.h"
-#include "ui_calendarConfig.h"
+#include "ui_generalConfig.h"
class ClockApplet::Private
{
@@ -69,7 +71,7 @@
ClockApplet *q;
Ui::timezonesConfig ui;
- Ui::calendarConfig calendarUi;
+ Ui::generalConfig generalUi;
QString timezone;
QString defaultTimezone;
QPoint clicked;
@@ -78,6 +80,9 @@
bool forceTzDisplay;
Plasma::Label *label;
QString holidaysRegion;
+ int announceInterval;
+ int prevHour;
+ int prevMinute;
void addTzToTipText(QString &subText, QString tz)
{
@@ -166,6 +171,16 @@
delete d;
}
+void ClockApplet::speakTime(const QTime &time)
+{
+ if (time.minute() != d->prevMinute && d->announceInterval>0 && (time.minute() % \
d->announceInterval) == 0) { + d->prevHour = time.hour();
+ d->prevMinute = time.minute();
+ QDBusInterface ktts("org.kde.kttsd", "/KSpeech", "org.kde.KSpeech");
+ ktts.asyncCall("say", i18nc("Sent to KTTSD to be read aloud as the current \
time", "It is %1", time.toString("h:m AP")), 0); + }
+}
+
void ClockApplet::toolTipAboutToShow()
{
updateTipContent();
@@ -234,10 +249,23 @@
{
createClockConfigurationInterface(parent);
+ QWidget *generalWidget = new QWidget();
+ d->generalUi.setupUi(generalWidget);
+
+ parent->addPage(generalWidget, i18n("General"), Applet::icon());
+
+ QStringList regions = \
dataEngine("calendar")->query("holidaysRegions").value("holidaysRegions").toStringList();
+ for (int i = 0; i < regions.size(); i++){
+ d->generalUi.regionComboBox->addItem(regions[i]);
+ if (regions[i] == d->holidaysRegion) \
d->generalUi.regionComboBox->setCurrentIndex(i); + }
+
+ d->generalUi.interval->setValue(d->announceInterval);
+
QWidget *widget = new QWidget();
d->ui.setupUi(widget);
- parent->addPage(widget, i18n("Time Zones"), Applet::icon());
+ parent->addPage(widget, i18n("Time Zones"), "preferences-desktop-locale");
foreach (const QString &tz, d->selectedTimezones) {
d->ui.timeZones->setSelected(tz, true);
@@ -251,18 +279,6 @@
}
d->ui.clockDefaultsTo->setCurrentIndex(defaultSelection);
-
- QWidget *calendarWidget = new QWidget();
- d->calendarUi.setupUi(calendarWidget);
-
- parent->addPage(calendarWidget, i18n("Calendar"), "view-pim-calendar");
-
- QStringList regions = \
dataEngine("calendar")->query("holidaysRegions").value("holidaysRegions").toStringList();
- for (int i = 0; i < regions.size(); i++){
- d->calendarUi.regionComboBox->addItem(regions[i]);
- if (regions[i] == d->holidaysRegion) \
d->calendarUi.regionComboBox->setCurrentIndex(i);
- }
-
parent->setButtons( KDialog::Ok | KDialog::Cancel | KDialog::Apply );
connect(parent, SIGNAL(applyClicked()), this, SLOT(configAccepted()));
connect(parent, SIGNAL(okClicked()), this, SLOT(configAccepted()));
@@ -307,9 +323,12 @@
changeEngineTimezone(currentTimezone(), d->defaultTimezone);
setCurrentTimezone(d->defaultTimezone);
- d->holidaysRegion = d->calendarUi.regionComboBox->currentText();
+ d->holidaysRegion = d->generalUi.regionComboBox->currentText();
cg.writeEntry("holidaysRegion", d->holidaysRegion);
+ d->announceInterval = d->generalUi.interval->value();
+ cg.writeEntry("announceInterval", d->announceInterval);
+
clockConfigAccepted();
constraintsEvent(Plasma::SizeConstraint);
update();
@@ -444,6 +463,8 @@
}
d->holidaysRegion = cg.readEntry("holidaysRegion", tmpRegion);
+ d->announceInterval = cg.readEntry("announceInterval", 0);
+
Plasma::ToolTipManager::self()->registerWidget(this);
extender();
--- trunk/KDE/kdebase/workspace/libs/plasmaclock/clockapplet.h #942892:942893
@@ -77,6 +77,7 @@
void configAccepted();
void updateClockDefaultsTo();
void dateChanged(const QDate &);
+ void speakTime(const QTime &);
private:
class Private;
--- trunk/KDE/kdebase/workspace/plasma/applets/analog-clock/clock.cpp #942892:942893
@@ -160,6 +160,8 @@
m_lastTimeSeen = m_time;
update();
+
+ speakTime(m_time);
}
void Clock::createClockConfigurationInterface(KConfigDialog *parent)
@@ -167,7 +169,7 @@
//TODO: Make the size settable
QWidget *widget = new QWidget();
ui.setupUi(widget);
- parent->addPage(widget, i18n("General"), icon());
+ parent->addPage(widget, i18n("Appearance"), "view-media-visualization");
ui.showSecondHandCheckBox->setChecked(m_showSecondHand);
ui.showTimezoneStringCheckBox->setChecked(m_showTimezoneString);
--- trunk/KDE/kdebase/workspace/plasma/applets/digital-clock/clock.cpp #942892:942893
@@ -190,6 +190,7 @@
m_lastTimeSeen = m_time;
update();
}
+ speakTime(m_time);
}
void Clock::createClockConfigurationInterface(KConfigDialog *parent)
@@ -197,7 +198,7 @@
//TODO: Make the size settable
QWidget *widget = new QWidget();
ui.setupUi(widget);
- parent->addPage(widget, i18n("General"), icon());
+ parent->addPage(widget, i18n("Appearance"), "view-media-visualization");
ui.showDate->setChecked(m_showDate);
ui.showYear->setChecked(m_showYear);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic