summaryrefslogtreecommitdiff
authortille <tille>2002-11-16 16:43:02 (UTC)
committer tille <tille>2002-11-16 16:43:02 (UTC)
commit0633fb26123857509c9eb0e0a013b654667ca9ce (patch) (side-by-side diff)
tree9187213cc22830c65dcba1923be9a8355c673b5a
parent88435a3192f09453e035a7f1cf73bbc8c24245c9 (diff)
downloadopie-0633fb26123857509c9eb0e0a013b654667ca9ce.zip
opie-0633fb26123857509c9eb0e0a013b654667ca9ce.tar.gz
opie-0633fb26123857509c9eb0e0a013b654667ca9ce.tar.bz2
usability:
made it a dialog that saves when exiting clock now running
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/TODO3
-rw-r--r--noncore/settings/netsystemtime/main.cpp2
-rw-r--r--noncore/settings/netsystemtime/ntp.cpp56
-rw-r--r--noncore/settings/netsystemtime/ntp.h2
-rw-r--r--noncore/settings/netsystemtime/ntpbase.cpp12
-rw-r--r--noncore/settings/netsystemtime/ntpbase.h9
-rw-r--r--noncore/settings/netsystemtime/ntpbase.ui2
-rw-r--r--noncore/settings/netsystemtime/settime.cpp122
-rw-r--r--noncore/settings/netsystemtime/settime.h8
9 files changed, 134 insertions, 82 deletions
diff --git a/noncore/settings/netsystemtime/TODO b/noncore/settings/netsystemtime/TODO
new file mode 100644
index 0000000..fb003a2
--- a/dev/null
+++ b/noncore/settings/netsystemtime/TODO
@@ -0,0 +1,3 @@
+- handle hour > 24 in SetTime::slotClockTick
+- improve tz setting
+ atm the tz gets written to the system as soon as changed...
diff --git a/noncore/settings/netsystemtime/main.cpp b/noncore/settings/netsystemtime/main.cpp
index c6d5f9a..80fbcb8 100644
--- a/noncore/settings/netsystemtime/main.cpp
+++ b/noncore/settings/netsystemtime/main.cpp
@@ -3,9 +3,9 @@
#include <qpe/qpeapplication.h>
int main( int argc, char ** argv )
{
- printf("This is netsystemtime\n");
+ printf("This is netsystemtime ");
printf("$Id$\n");
QPEApplication a( argc, argv );
diff --git a/noncore/settings/netsystemtime/ntp.cpp b/noncore/settings/netsystemtime/ntp.cpp
index c7e3b52..53dbe46 100644
--- a/noncore/settings/netsystemtime/ntp.cpp
+++ b/noncore/settings/netsystemtime/ntp.cpp
@@ -47,17 +47,16 @@ Ntp::Ntp( QWidget* parent, const char* name, WFlags fl )
SpinBoxNtpDelay->setValue( cfg.readNumEntry("ntpRefreshFreq",1440) );
ComboNtpSrv->setCurrentItem( cfg.readNumEntry("ntpServer", 0) );
//make tab order
-
+
TabWidgetMain->removePage( tabMain );
TabWidgetMain->removePage( tabManualSetTime );
TabWidgetMain->removePage( TabSettings );
TabWidgetMain->removePage( tabPredict );
TabWidgetMain->removePage( tabNtp );
TabWidgetMain->insertTab( tabMain, tr( "Main" ) );
- TabWidgetMain->insertTab( tabManualSetTime, tr( "Manual" ) );
TabWidgetMain->insertTab( TabSettings, tr( "Settings" ) );
TabWidgetMain->insertTab( tabPredict, tr( "Predict" ) );
TabWidgetMain->insertTab( tabNtp, tr( "NTP" ) );
NtpBaseLayout->addWidget( TabWidgetMain, 0, 0 );
@@ -95,8 +94,11 @@ Ntp::Ntp( QWidget* parent, const char* name, WFlags fl )
Ntp::~Ntp()
{
delete ntpProcess;
+}
+
+void Ntp::saveConfig(){
int srvCount = ComboNtpSrv->count();
bool serversChanged = true;
QString edit = ComboNtpSrv->currentText();
for (int i = 0; i < srvCount; i++){
@@ -198,22 +200,12 @@ void Ntp::ntpFinished(OProcess *p)
if (p->exitStatus()!=0 || !p->normalExit())
{
if ( isVisible() && _interactive ){
QMessageBox::critical(this, tr("ntp error"),tr("Error while getting time form\n server")+getNtpServer()+"\n"+_ntpOutput );
- TabWidgetMain->showPage( tabManualSetTime );
}
-
+// slotCheckNtp(-1);
return;
}
-
- Global::writeHWClock();
- // since time has changed quickly load in the datebookdb
- // to allow the alarm server to get a better grip on itself
- // (example re-trigger alarms for when we travel back in time)
- DateBookDB db;
-
- // QCopEnvelope timeApplet( "QPE/TaskBar", "reloadApplets()" );
- // timeApplet << "";
Config cfg("ntp",Config::User);
cfg.setGroup("lookups");
int lastLookup = cfg.readNumEntry("time",0);
@@ -305,34 +297,36 @@ void Ntp::preditctTime()
int corr = int((now - lastTime) * _shiftPerSec);
TextLabelEstimatedShift->setText(QString::number(corr)+tr(" seconds"));
predictedTime = QDateTime::currentDateTime().addSecs(corr);
TextLabelPredTime->setText(predictedTime.toString());
- TextLabelMainPredTime->setText(tr("Predicted time:")+"<br><b>"+predictedTime.toString()+"</b>");
+// TextLabelMainPredTime->setText(tr("Predicted time:")+"<br><b>"+predictedTime.toString()+"</b>");
}
void Ntp::setPredictTime()
{
+ qDebug("Ntp::setPredictTime");
preditctTime();
- setTime( predictedTime );
+ timeButton->setTime( predictedTime );
}
void Ntp::slotCheckNtp(int i)
{
+ qDebug(" Ntp::slotCheckNtp(%i)",i);
if (i == 0)
{
- TextLabelMainPredTime->hide();
+// TextLabelMainPredTime->hide();
ButtonSetTime->setText( tr("Get time from network") );
connect( ButtonSetTime, SIGNAL(clicked()), SLOT(slotButtonRunNtp()) );
if ( ntpDelayElapsed() )
- {
- slotRunNtp();
- disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotProbeNtpServer()) );
- connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotTimerRunNtp()) );
- }else{
- disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotTimerRunNtp()) );
- connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) );
- }
- }else{
+ {
+ slotRunNtp();
+ disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotProbeNtpServer()) );
+ connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotTimerRunNtp()) );
+ }else{
+ disconnect(ntpTimer, SIGNAL( timeout() ), this, SLOT(slotTimerRunNtp()) );
+ connect(ntpTimer, SIGNAL( timeout() ), SLOT(slotProbeNtpServer()) );
+ }
+ }else{
preditctTime();
ButtonSetTime->setText( tr("Set predicted time: ")+predictedTime.toString() );
if (i>0)ntpOutPut(tr("Could not connect to server ")+getNtpServer());
connect( ButtonSetTime, SIGNAL(clicked()), SLOT(setPredictTime()) );
@@ -417,4 +411,16 @@ void Ntp::showAdvancedFeatures(bool advMode)
Line1->hide();
};
TabWidgetMain->show();
}
+
+
+void Ntp::accept( ){
+ qDebug("accepted");
+ //SetTimeDate
+ commitTime();
+ writeSettings();
+ updateSystem();
+ // Ntp
+ saveConfig();
+ qApp->quit();
+} \ No newline at end of file
diff --git a/noncore/settings/netsystemtime/ntp.h b/noncore/settings/netsystemtime/ntp.h
index 15cddbd..a4573f8 100644
--- a/noncore/settings/netsystemtime/ntp.h
+++ b/noncore/settings/netsystemtime/ntp.h
@@ -19,8 +19,9 @@ public:
public slots:
void setDocument (const QString &);
protected:
+ virtual void accept( );
QDateTime predictedTime;
void makeChannel();
protected slots:
void receive(const QCString &msg, const QByteArray &arg);
@@ -37,8 +38,9 @@ private:
void readLookups();
void ntpOutPut(QString);
bool ntpDelayElapsed();
QString getNtpServer();
+ void saveConfig();
private slots:
void slotTimerRunNtp();
void slotButtonRunNtp();
void slotRunNtp();
diff --git a/noncore/settings/netsystemtime/ntpbase.cpp b/noncore/settings/netsystemtime/ntpbase.cpp
index 0a7a57e..878c158 100644
--- a/noncore/settings/netsystemtime/ntpbase.cpp
+++ b/noncore/settings/netsystemtime/ntpbase.cpp
@@ -1,8 +1,8 @@
/****************************************************************************
** Form implementation generated from reading ui file 'ntpbase.ui'
**
-** Created: Sun Nov 10 17:59:14 2002
+** Created: Sat Nov 16 15:49:54 2002
** by: The User Interface Compiler (uic)
**
** WARNING! All changes made in this file will be lost!
****************************************************************************/
@@ -16,19 +16,23 @@
#include <qpushbutton.h>
#include <qspinbox.h>
#include <qtable.h>
#include <qtabwidget.h>
+#include <qwidget.h>
#include <qlayout.h>
#include <qvariant.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
/*
* Constructs a NtpBase which is a child of 'parent', with the
* name 'name' and widget flags set to 'f'
+ *
+ * The dialog will by default be modeless, unless you set 'modal' to
+ * TRUE to construct a modal dialog.
*/
-NtpBase::NtpBase( QWidget* parent, const char* name, WFlags fl )
- : QWidget( parent, name, fl )
+NtpBase::NtpBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+ : QDialog( parent, name, modal, fl )
{
if ( !name )
setName( "NtpBase" );
resize( 317, 411 );
@@ -316,9 +320,9 @@ NtpBase::~NtpBase()
* font changes
*/
bool NtpBase::event( QEvent* ev )
{
- bool ret = QWidget::event( ev );
+ bool ret = QDialog::event( ev );
if ( ev->type() == QEvent::ApplicationFontChange ) {
QFont MultiLineEditntpOutPut_font( MultiLineEditntpOutPut->font() );
MultiLineEditntpOutPut_font.setPointSize( 7 );
MultiLineEditntpOutPut->setFont( MultiLineEditntpOutPut_font );
diff --git a/noncore/settings/netsystemtime/ntpbase.h b/noncore/settings/netsystemtime/ntpbase.h
index 543cac1..68599c9 100644
--- a/noncore/settings/netsystemtime/ntpbase.h
+++ b/noncore/settings/netsystemtime/ntpbase.h
@@ -1,17 +1,17 @@
/****************************************************************************
** Form interface generated from reading ui file 'ntpbase.ui'
**
-** Created: Sun Nov 10 17:58:48 2002
+** Created: Sat Nov 16 15:49:32 2002
** by: The User Interface Compiler (uic)
**
** WARNING! All changes made in this file will be lost!
****************************************************************************/
#ifndef NTPBASE_H
#define NTPBASE_H
#include <qvariant.h>
-#include <qwidget.h>
+#include <qdialog.h>
class QVBoxLayout;
class QHBoxLayout;
class QGridLayout;
class QCheckBox;
@@ -22,15 +22,16 @@ class QMultiLineEdit;
class QPushButton;
class QSpinBox;
class QTabWidget;
class QTable;
+class QWidget;
-class NtpBase : public QWidget
+class NtpBase : public QDialog
{
Q_OBJECT
public:
- NtpBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+ NtpBase( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
~NtpBase();
QTabWidget* TabWidgetMain;
QWidget* tabMain;
diff --git a/noncore/settings/netsystemtime/ntpbase.ui b/noncore/settings/netsystemtime/ntpbase.ui
index 6c38588..8c106be 100644
--- a/noncore/settings/netsystemtime/ntpbase.ui
+++ b/noncore/settings/netsystemtime/ntpbase.ui
@@ -1,8 +1,8 @@
<!DOCTYPE UI><UI>
<class>NtpBase</class>
<widget>
- <class>QWidget</class>
+ <class>QDialog</class>
<property stdset="1">
<name>name</name>
<cstring>NtpBase</cstring>
</property>
diff --git a/noncore/settings/netsystemtime/settime.cpp b/noncore/settings/netsystemtime/settime.cpp
index 949fcb3..36166ae 100644
--- a/noncore/settings/netsystemtime/settime.cpp
+++ b/noncore/settings/netsystemtime/settime.cpp
@@ -34,8 +34,9 @@
#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP)
#include <qpe/qcopenvelope_qws.h>
#endif
+#include <qtimer.h>
#include <qbuttongroup.h>
#include <qcheckbox.h>
#include <qlabel.h>
#include <qlayout.h>
@@ -51,44 +52,49 @@
#include <stdio.h>
SetDateTime::SetDateTime(QWidget *parent, const char *name, WFlags f )
- : NtpBase( parent, name, f )
+ : NtpBase( parent, name, true, f )
{
- // setCaption( tr("Set System Time") );
+ setCaption( tr("System Time") );
-// QVBoxLayout *vb = new QVBoxLayout( this, 5 );
QVBoxLayout *vb = new QVBoxLayout( FrameSystemTime, 5 );
- QVBoxLayout *vb2 = new QVBoxLayout( FrameSetTime, 5 );
- TextLabelMainPredTime = new QLabel( FrameSystemTime );
- vb->addWidget( TextLabelMainPredTime, 1, 0 );
+// TextLabelMainPredTime = new QLabel( FrameSystemTime );
+// vb->addWidget( TextLabelMainPredTime, 1, 0 );
- QHBoxLayout *hb = new QHBoxLayout( vb, -1, "timezone layout" );
+ timeButton = new SetTime( FrameSystemTime );
+ vb->addWidget( timeButton );
+
+ QHBoxLayout *db = new QHBoxLayout( vb );
+ QLabel *dateLabel = new QLabel( tr("Date"), FrameSystemTime );
+ db->addWidget( dateLabel, 1 );
+ dateButton = new DateButton( TRUE, FrameSystemTime );
+ db->addWidget( dateButton, 2 );
+ ButtonSetTime = new QPushButton( FrameSystemTime );
+ vb->addWidget( ButtonSetTime, 1, 0 );
+
+ QFrame *hline = new QFrame( FrameSystemTime );
+ hline->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+ vb->addWidget( hline );
+
+ QHBoxLayout *hb = new QHBoxLayout( vb, -1, "timezone layout" );
+
QLabel *lblZone = new QLabel( tr( "Time Zone" ), FrameSystemTime, "timezone label" );
lblZone->setMaximumSize( lblZone->sizeHint() );
hb->addWidget( lblZone );
tz = new TimeZoneSelector( FrameSystemTime, "Timezone choices" );
tz->setMinimumSize( tz->sizeHint() );
- hb->addWidget( tz );
-
- timeButton = new SetTime( FrameSetTime );
- vb2->addWidget( timeButton );
-
- QHBoxLayout *db = new QHBoxLayout( vb2 );
- QLabel *dateLabel = new QLabel( tr("Date"), FrameSetTime );
- db->addWidget( dateLabel, 1 );
- dateButton = new DateButton( TRUE, FrameSetTime );
- db->addWidget( dateButton, 2 );
-
- QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
- vb2->addItem( spacer );
+ hb->addWidget( tz );
- QFrame *hline = new QFrame( FrameSystemTime );
+ hline = new QFrame( FrameSystemTime );
hline->setFrameStyle( QFrame::HLine | QFrame::Sunken );
vb->addWidget( hline );
+
+ QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
+ vb->addItem( spacer );
Config config("qpe");
config.setGroup( "Time" );
@@ -178,37 +184,33 @@ SetDateTime::SetDateTime(QWidget *parent, const char *name, WFlags f )
clockAppletCombo->setCurrentItem( clockApplet );
vb->addStretch( 0 );
- hline = new QFrame( FrameSystemTime );
- hline->setFrameStyle( QFrame::HLine | QFrame::Sunken );
- vb->addWidget( hline );
+// hline = new QFrame( FrameSystemTime );
+// hline->setFrameStyle( QFrame::HLine | QFrame::Sunken );
+// vb->addWidget( hline );
+//
+// ButtonSetTime = new QPushButton( FrameSystemTime );
+// vb->addWidget( ButtonSetTime, 1, 0 );
- ButtonSetTime = new QPushButton( FrameSystemTime );
- vb->addWidget( ButtonSetTime, 1, 0 );
-
- QObject::connect( PushButtonSetManualTime, SIGNAL(clicked()),
- this, SLOT(commitTime()));
QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ),
timeButton, SLOT( slotTzChange( const QString& ) ) );
QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ),
SLOT( tzChange( const QString& ) ) );
- QObject::connect( weekStartCombo, SIGNAL( activated ( int )),
- SLOT(updateSystem(int ) ));
- QObject::connect( ampmCombo, SIGNAL( activated ( int )),
- SLOT(updateSystem(int ) ));
- QObject::connect( dateFormatCombo, SIGNAL( activated ( int )),
- SLOT(updateSystem(int ) ));
- QObject::connect( clockAppletCombo, SIGNAL( activated ( int )),
- SLOT(updateSystem(int ) ));
+// QObject::connect( weekStartCombo, SIGNAL( activated ( int )),
+// SLOT(updateSystem(int ) ));
+// QObject::connect( ampmCombo, SIGNAL( activated ( int )),
+// SLOT(updateSystem(int ) ));
+// QObject::connect( dateFormatCombo, SIGNAL( activated ( int )),
+// SLOT(updateSystem(int ) ));
+// QObject::connect( clockAppletCombo, SIGNAL( activated ( int )),
+// SLOT(updateSystem(int ) ));
}
SetDateTime::~SetDateTime()
{
- writeSettings();
-
}
void SetDateTime::writeSettings()
{
@@ -275,17 +277,17 @@ void SetDateTime::setTime(QDateTime dt)
QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" );
enableScreenSaver << -1 << -1 << -1;
}
-void SetDateTime::updateSystem(int i)
+void SetDateTime::updateSystem()
{
// really turn off the screensaver before doing anything
{
// Needs to be encased in { } so that it deconstructs and sends
QCopEnvelope disableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" );
disableScreenSaver << 0 << 0 << 0;
}
- qDebug("SetDateTime::updateSystem(int %i)",i);
+ qDebug("SetDateTime::updateSystem()");
writeSettings();
// set the timezone for everyone else...
QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" );
@@ -322,9 +324,9 @@ void SetDateTime::tzChange( const QString &tz )
QDate d = QDate::currentDate();
// reset the time.
if ( !strSave.isNull() ) {
- setenv( "TZ", strSave, 1 );
+ setenv( "TZ", strSave, 1 );
}
dateButton->setDate( d );
updateSystem();
}
@@ -341,13 +343,17 @@ static const int ValuePM = 1;
SetTime::SetTime( QWidget *parent, const char *name )
: QWidget( parent, name )
{
+ clock = new QTimer(this, "clock" );
+ connect(clock, SIGNAL( timeout() ), SLOT(slotClockTick()) );
+ clock->start( 1000 * 60 );
+
use12hourTime = FALSE;
- QTime currTime = QTime::currentTime();
- hour = currTime.hour();
- minute = currTime.minute();
+ _time = QDateTime::currentDateTime();
+ hour = _time.time().hour();
+ minute = _time.time().minute();
QHBoxLayout *hb2 = new QHBoxLayout( this );
hb2->setSpacing( 3 );
@@ -498,5 +504,31 @@ void SetTime::slotTzChange( const QString &tz )
}
sbMin->setValue( t.minute() );
}
+void SetTime::setTime( QDateTime dt )
+{
+ _time = dt;
+ QTime t = dt.time();
+ // just set the spinboxes and let it propage through
+ if(use12hourTime) {
+ int show_hour = t.hour();
+ if (t.hour() >= 12) {
+ show_hour -= 12;
+ ampm->setCurrentItem( ValuePM );
+ } else {
+ ampm->setCurrentItem( ValueAM );
+ }
+ if (show_hour == 0)
+ show_hour = 12;
+ sbHour->setValue( show_hour );
+ } else {
+ sbHour->setValue( t.hour() );
+ }
+ sbMin->setValue( t.minute() );
+}
+void SetTime::slotClockTick()
+{
+ setTime( _time.addSecs(60) );
+ qDebug("SetTime::slotClockTick %s",_time.toString().latin1());
+}
diff --git a/noncore/settings/netsystemtime/settime.h b/noncore/settings/netsystemtime/settime.h
index 778cb9c..3c3a162 100644
--- a/noncore/settings/netsystemtime/settime.h
+++ b/noncore/settings/netsystemtime/settime.h
@@ -40,14 +40,16 @@ class SetTime : public QWidget
public:
SetTime( QWidget *parent=0, const char *name=0 );
QTime time() const;
+ void setTime( QDateTime );
public slots:
void slotTzChange( const QString& tz );
void show12hourTime( int );
protected slots:
+ void slotClockTick();
void hourChanged( int value );
void minuteChanged( int value );
void checkedPM( int );
@@ -55,8 +57,10 @@ protected slots:
protected:
int hour;
int minute;
bool use12hourTime;
+ QDateTime _time;
+ QTimer *clock;
QComboBox *ampm;
QSpinBox *sbHour;
QSpinBox *sbMin;
};
@@ -73,9 +77,9 @@ public:
protected slots:
void commitTime();
void tzChange( const QString &tz );
void formatChanged(int);
- void updateSystem(int i=0);
+ void updateSystem();
protected:
void setTime(QDateTime dt);
void writeSettings();
@@ -87,9 +91,9 @@ protected:
QComboBox *ampmCombo;
QComboBox *dateFormatCombo;
QComboBox *clockAppletCombo;
QPushButton *ButtonSetTime;
- QLabel *TextLabelMainPredTime;
+ // QLabel *TextLabelMainPredTime;
DateFormat date_formats[4];
};