aboutsummaryrefslogtreecommitdiff
path: root/src/ClockTool.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/ClockTool.cc')
-rw-r--r--src/ClockTool.cc15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/ClockTool.cc b/src/ClockTool.cc
index 126e0dd..6252248 100644
--- a/src/ClockTool.cc
+++ b/src/ClockTool.cc
@@ -102,13 +102,13 @@ public:
102 102
103 void click(int button, int time, unsigned int mods) { 103 void click(int button, int time, unsigned int mods) {
104 104
105 std::string newformat = *m_tool.timeFormatResource();
105 // does the current format string contain something with 24/12h? 106 // does the current format string contain something with 24/12h?
106 size_t found; 107 size_t found;
107 size_t pos = FbTk::StringUtil::findCharFromAlphabetAfterTrigger( 108 size_t pos = FbTk::StringUtil::findCharFromAlphabetAfterTrigger(
108 m_tool.timeFormat(), '%', SWITCHES_24_12H, sizeof(SWITCHES_24_12H), &found); 109 newformat, '%', SWITCHES_24_12H, sizeof(SWITCHES_24_12H), &found);
109 110
110 if (pos != std::string::npos) { // if so, exchange it with 12/24h 111 if (pos != std::string::npos) { // if so, exchange it with 12/24h
111 std::string newformat = m_tool.timeFormat();
112 newformat[pos+1] = SWITCHES_12_24H[found]; 112 newformat[pos+1] = SWITCHES_12_24H[found];
113 113
114 if (found < 3) { // 24h? erase %P/%p (AM|PM / am|pm) 114 if (found < 3) { // 24h? erase %P/%p (AM|PM / am|pm)
@@ -119,7 +119,7 @@ public:
119 } 119 }
120 } 120 }
121 121
122 m_tool.setTimeFormat(newformat); 122 *m_tool.timeFormatResource() = newformat;
123 setClockModeLabel(); 123 setClockModeLabel();
124 124
125 } // else some other strange format...so we don't do anything 125 } // else some other strange format...so we don't do anything
@@ -130,7 +130,7 @@ private:
130 void setClockModeLabel() { 130 void setClockModeLabel() {
131 _FB_USES_NLS; 131 _FB_USES_NLS;
132 if (FbTk::StringUtil::findCharFromAlphabetAfterTrigger( 132 if (FbTk::StringUtil::findCharFromAlphabetAfterTrigger(
133 m_tool.timeFormat(), '%', SWITCHES_24_12H, 3, 0) != std::string::npos) { 133 *m_tool.timeFormatResource(), '%', SWITCHES_24_12H, 3, 0) != std::string::npos) {
134 setLabel( _FB_XTEXT(Toolbar, Clock24, "Clock: 24h", "set Clockmode to 24h") ); 134 setLabel( _FB_XTEXT(Toolbar, Clock24, "Clock: 24h", "set Clockmode to 24h") );
135 } else { 135 } else {
136 setLabel( _FB_XTEXT(Toolbar, Clock12, "Clock: 12h", "set Clockmode to 12h") ); 136 setLabel( _FB_XTEXT(Toolbar, Clock12, "Clock: 12h", "set Clockmode to 12h") );
@@ -170,6 +170,8 @@ ClockTool::ClockTool(const FbTk::FbWindow &parent,
170 m_stringconvertor(FbTk::StringConvertor::ToFbString) { 170 m_stringconvertor(FbTk::StringConvertor::ToFbString) {
171 // attach signals 171 // attach signals
172 m_tracker.join(theme.reconfigSig(), FbTk::MemFun(*this, &ClockTool::themeReconfigured)); 172 m_tracker.join(theme.reconfigSig(), FbTk::MemFun(*this, &ClockTool::themeReconfigured));
173 m_tracker.join(m_timeformat.modifiedSig(),
174 FbTk::MemFunIgnoreArgs(*this, &ClockTool::themeReconfigured));
173 175
174 std::string time_locale = setlocale(LC_TIME, NULL); 176 std::string time_locale = setlocale(LC_TIME, NULL);
175 size_t pos = time_locale.find('.'); 177 size_t pos = time_locale.find('.');
@@ -232,11 +234,6 @@ void ClockTool::hide() {
232 m_button.hide(); 234 m_button.hide();
233} 235}
234 236
235void ClockTool::setTimeFormat(const std::string &format) {
236 *m_timeformat = format;
237 themeReconfigured();
238}
239
240void ClockTool::themeReconfigured() { 237void ClockTool::themeReconfigured() {
241 updateTime(); 238 updateTime();
242 239