summaryrefslogtreecommitdiff
path: root/library
Unidiff
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/alarmserver.cpp11
-rw-r--r--library/qpeapplication.cpp2
2 files changed, 2 insertions, 11 deletions
diff --git a/library/alarmserver.cpp b/library/alarmserver.cpp
index 7e6e515..5e4dd18 100644
--- a/library/alarmserver.cpp
+++ b/library/alarmserver.cpp
@@ -111,106 +111,97 @@ static void saveState()
111 ds << it.current()->message; 111 ds << it.current()->message;
112 ds << it.current()->data; 112 ds << it.current()->data;
113 } 113 }
114 114
115 115
116 savefile.close(); 116 savefile.close();
117 unlink( savefilename ); 117 unlink( savefilename );
118 QDir d; d.rename(savefilename+".new",savefilename); 118 QDir d; d.rename(savefilename+".new",savefilename);
119 119
120 } 120 }
121} 121}
122 122
123/*! 123/*!
124 Sets up the alarm server. Restoring to previous state (session management). 124 Sets up the alarm server. Restoring to previous state (session management).
125 */ 125 */
126void AlarmServer::initialize() 126void AlarmServer::initialize()
127{ 127{
128 //read autosave file and put events in timerEventList 128 //read autosave file and put events in timerEventList
129 129
130 QString savefilename = Global::applicationFileName( "AlarmServer", "saveFile" ); 130 QString savefilename = Global::applicationFileName( "AlarmServer", "saveFile" );
131 131
132 QFile savefile(savefilename); 132 QFile savefile(savefilename);
133 if ( savefile.open(IO_ReadOnly) ) { 133 if ( savefile.open(IO_ReadOnly) ) {
134 QDataStream ds( &savefile ); 134 QDataStream ds( &savefile );
135 while ( !ds.atEnd() ) { 135 while ( !ds.atEnd() ) {
136 timerEventItem *newTimerEventItem = new timerEventItem; 136 timerEventItem *newTimerEventItem = new timerEventItem;
137 ds >> newTimerEventItem->UTCtime; 137 ds >> newTimerEventItem->UTCtime;
138 ds >> newTimerEventItem->channel; 138 ds >> newTimerEventItem->channel;
139 ds >> newTimerEventItem->message; 139 ds >> newTimerEventItem->message;
140 ds >> newTimerEventItem->data; 140 ds >> newTimerEventItem->data;
141 timerEventList.append( newTimerEventItem ); 141 timerEventList.append( newTimerEventItem );
142 } 142 }
143 savefile.close(); 143 savefile.close();
144 if (!timerEventReceiver) 144 if (!timerEventReceiver)
145 timerEventReceiver = new TimerReceiverObject; 145 timerEventReceiver = new TimerReceiverObject;
146 setNearestTimerEvent(); 146 setNearestTimerEvent();
147 } 147 }
148} 148}
149 149
150 150
151 151
152 152
153static const char* atdir = "/var/spool/at/"; 153static const char* atdir = "/var/spool/at/";
154 154
155static bool triggerAtd( bool writeHWClock = FALSE ) 155static bool triggerAtd( bool writeHWClock = FALSE )
156{ 156{
157 QFile trigger(QString(atdir) + "trigger"); 157 QFile trigger(QString(atdir) + "trigger");
158 if ( trigger.open(IO_WriteOnly|IO_Raw) ) { 158 if ( trigger.open(IO_WriteOnly|IO_Raw) ) {
159 159 if ( trigger.writeBlock("\n",2) != 2 ) {
160 const char* data =
161#ifdef QT_QWS_SHARP
162 //custom atd only writes HW Clock if we write a 'W'
163 ( writeHWClock ) ? "W\n" :
164#endif
165 data = "\n";
166 int len = strlen(data);
167 int total_written = trigger.writeBlock(data,len);
168 if ( total_written != len ) {
169 QMessageBox::critical( 0, QObject::tr( "Out of Space" ), 160 QMessageBox::critical( 0, QObject::tr( "Out of Space" ),
170 QObject::tr( "Unable to schedule alarm.\nFree some memory and try again." ) ); 161 QObject::tr( "Unable to schedule alarm.\nFree some memory and try again." ) );
171 trigger.close(); 162 trigger.close();
172 QFile::remove( trigger.name() ); 163 QFile::remove( trigger.name() );
173 return FALSE; 164 return FALSE;
174 } 165 }
175 return TRUE; 166 return TRUE;
176 } 167 }
177 return FALSE; 168 return FALSE;
178} 169}
179 170
180void TimerReceiverObject::deleteTimer() 171void TimerReceiverObject::deleteTimer()
181{ 172{
182 if ( !atfilename.isEmpty() ) { 173 if ( !atfilename.isEmpty() ) {
183 unlink( atfilename ); 174 unlink( atfilename );
184 atfilename = QString::null; 175 atfilename = QString::null;
185 triggerAtd( FALSE ); 176 triggerAtd( FALSE );
186 } 177 }
187} 178}
188 179
189void TimerReceiverObject::resetTimer() 180void TimerReceiverObject::resetTimer()
190{ 181{
191 const int maxsecs = 2147000; 182 const int maxsecs = 2147000;
192 int total_written; 183 int total_written;
193 QDateTime nearest = TimeConversion::fromUTC(nearestTimerEvent->UTCtime); 184 QDateTime nearest = TimeConversion::fromUTC(nearestTimerEvent->UTCtime);
194 QDateTime now = QDateTime::currentDateTime(); 185 QDateTime now = QDateTime::currentDateTime();
195 if ( nearest < now ) 186 if ( nearest < now )
196 nearest = now; 187 nearest = now;
197 int secs = TimeConversion::secsTo( now, nearest ); 188 int secs = TimeConversion::secsTo( now, nearest );
198 if ( secs > maxsecs ) { 189 if ( secs > maxsecs ) {
199 // too far for millisecond timing 190 // too far for millisecond timing
200 secs = maxsecs; 191 secs = maxsecs;
201 } 192 }
202 193
203 // System timer (needed so that we wake from deep sleep), 194 // System timer (needed so that we wake from deep sleep),
204 // from the Epoch in seconds. 195 // from the Epoch in seconds.
205 // 196 //
206 int at_secs = TimeConversion::toUTC(nearest); 197 int at_secs = TimeConversion::toUTC(nearest);
207 // qDebug("reset timer to %d seconds from Epoch",at_secs); 198 // qDebug("reset timer to %d seconds from Epoch",at_secs);
208 QString fn = atdir + QString::number(at_secs) + "." 199 QString fn = atdir + QString::number(at_secs) + "."
209 + QString::number(getpid()); 200 + QString::number(getpid());
210 if ( fn != atfilename ) { 201 if ( fn != atfilename ) {
211 QFile atfile(fn+".new"); 202 QFile atfile(fn+".new");
212 if ( atfile.open(IO_WriteOnly|IO_Raw) ) { 203 if ( atfile.open(IO_WriteOnly|IO_Raw) ) {
213 // just wake up and delete the at file 204 // just wake up and delete the at file
214 QString cmd = "#!/bin/sh\nrm " + fn; 205 QString cmd = "#!/bin/sh\nrm " + fn;
215 total_written = atfile.writeBlock(cmd.latin1(),cmd.length()); 206 total_written = atfile.writeBlock(cmd.latin1(),cmd.length());
216 if ( total_written != int(cmd.length()) ) { 207 if ( total_written != int(cmd.length()) ) {
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp
index 65fac84..efa65bc 100644
--- a/library/qpeapplication.cpp
+++ b/library/qpeapplication.cpp
@@ -1592,97 +1592,97 @@ int QPEApplication::exec()
1592} 1592}
1593 1593
1594/*! 1594/*!
1595 \internal 1595 \internal
1596 External request for application to quit. Quits if possible without 1596 External request for application to quit. Quits if possible without
1597 loosing state. 1597 loosing state.
1598*/ 1598*/
1599void QPEApplication::tryQuit() 1599void QPEApplication::tryQuit()
1600{ 1600{
1601 if ( activeModalWidget() || strcmp( argv() [ 0 ], "embeddedkonsole" ) == 0 ) 1601 if ( activeModalWidget() || strcmp( argv() [ 0 ], "embeddedkonsole" ) == 0 )
1602 return ; // Inside modal loop or konsole. Too hard to save state. 1602 return ; // Inside modal loop or konsole. Too hard to save state.
1603#ifndef QT_NO_COP 1603#ifndef QT_NO_COP
1604 1604
1605 { 1605 {
1606 QCopEnvelope e( "QPE/System", "closing(QString)" ); 1606 QCopEnvelope e( "QPE/System", "closing(QString)" );
1607 e << d->appName; 1607 e << d->appName;
1608 } 1608 }
1609#endif 1609#endif
1610 processEvents(); 1610 processEvents();
1611 1611
1612 quit(); 1612 quit();
1613} 1613}
1614 1614
1615/*! 1615/*!
1616 \internal 1616 \internal
1617 User initiated quit. Makes the window 'Go Away'. If preloaded this means 1617 User initiated quit. Makes the window 'Go Away'. If preloaded this means
1618 hiding the window. If not it means quitting the application. 1618 hiding the window. If not it means quitting the application.
1619 As this is user initiated we don't need to check state. 1619 As this is user initiated we don't need to check state.
1620*/ 1620*/
1621void QPEApplication::hideOrQuit() 1621void QPEApplication::hideOrQuit()
1622{ 1622{
1623 processEvents(); 1623 processEvents();
1624 1624
1625 // If we are a preloaded application we don't actually quit, so emit 1625 // If we are a preloaded application we don't actually quit, so emit
1626 // a System message indicating we're quasi-closing. 1626 // a System message indicating we're quasi-closing.
1627 if ( d->preloaded && d->qpe_main_widget ) 1627 if ( d->preloaded && d->qpe_main_widget )
1628#ifndef QT_NO_COP 1628#ifndef QT_NO_COP
1629 1629
1630 { 1630 {
1631 QCopEnvelope e("QPE/System", "fastAppHiding(QString)" ); 1631 QCopEnvelope e("QPE/System", "fastAppHiding(QString)" );
1632 e << d->appName; 1632 e << d->appName;
1633 d->qpe_main_widget->hide(); 1633 d->qpe_main_widget->hide();
1634 } 1634 }
1635#endif 1635#endif
1636 else 1636 else
1637 quit(); 1637 quit();
1638} 1638}
1639 1639
1640#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) 1640#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SHARP)
1641 1641
1642// The libraries with the skiff package (and possibly others) have 1642// The libraries with the skiff package (and possibly others) have
1643// completely useless implementations of builtin new and delete that 1643// completely useless implementations of builtin new and delete that
1644// use about 50% of your CPU. Here we revert to the simple libc 1644// use about 50% of your CPU. Here we revert to the simple libc
1645// functions. 1645// functions.
1646 1646
1647void* operator new[]( size_t size ) 1647void* operator new[]( size_t size )
1648{ 1648{
1649 return malloc( size ); 1649 return malloc( size );
1650} 1650}
1651 1651
1652void* operator new( size_t size ) 1652void* operator new( size_t size )
1653{ 1653{
1654 return malloc( size ); 1654 return malloc( size );
1655} 1655}
1656 1656
1657void operator delete[]( void* p ) 1657void operator delete[]( void* p )
1658{ 1658{
1659 free( p ); 1659 free( p );
1660} 1660}
1661 1661
1662void operator delete[]( void* p, size_t /*size*/ ) 1662void operator delete[]( void* p, size_t /*size*/ )
1663{ 1663{
1664 free( p ); 1664 free( p );
1665} 1665}
1666 1666
1667void operator delete( void* p ) 1667void operator delete( void* p )
1668{ 1668{
1669 free( p ); 1669 free( p );
1670} 1670}
1671 1671
1672void operator delete( void* p, size_t /*size*/ ) 1672void operator delete( void* p, size_t /*size*/ )
1673{ 1673{
1674 free( p ); 1674 free( p );
1675} 1675}
1676 1676
1677#endif 1677#endif
1678 1678
1679#if ( QT_VERSION <= 230 ) && !defined(SINGLE_APP) 1679#if ( QT_VERSION <= 230 ) && !defined(SINGLE_APP)
1680#include <qwidgetlist.h> 1680#include <qwidgetlist.h>
1681#ifdef QWS 1681#ifdef QWS
1682#include <qgfx_qws.h> 1682#include <qgfx_qws.h>
1683extern QRect qt_maxWindowRect; 1683extern QRect qt_maxWindowRect;
1684void qt_setMaxWindowRect(const QRect& r ) 1684void qt_setMaxWindowRect(const QRect& r )
1685{ 1685{
1686 qt_maxWindowRect = qt_screen->mapFromDevice( r, 1686 qt_maxWindowRect = qt_screen->mapFromDevice( r,
1687 qt_screen->mapToDevice( QSize( qt_screen->width(), qt_screen->height() ) ) ); 1687 qt_screen->mapToDevice( QSize( qt_screen->width(), qt_screen->height() ) ) );
1688 // Re-resize any maximized windows 1688 // Re-resize any maximized windows