summaryrefslogtreecommitdiffabout
path: root/korganizer
authorzautrix <zautrix>2005-10-12 11:14:13 (UTC)
committer zautrix <zautrix>2005-10-12 11:14:13 (UTC)
commita72f3f3acfac791715a1c512fc4cc4c3facdbb62 (patch) (side-by-side diff)
tree202c588777f8d4585a8c57164b1b412d7ad73e8a /korganizer
parent3ecfc912f657a710ed35c93dc6eb2991cce06835 (diff)
downloadkdepimpi-a72f3f3acfac791715a1c512fc4cc4c3facdbb62.zip
kdepimpi-a72f3f3acfac791715a1c512fc4cc4c3facdbb62.tar.gz
kdepimpi-a72f3f3acfac791715a1c512fc4cc4c3facdbb62.tar.bz2
fix
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/mainwindow.cpp75
-rw-r--r--korganizer/mainwindow.h4
2 files changed, 62 insertions, 17 deletions
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index c597138..66bb19b 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -172,2 +172,3 @@ MainWindow::MainWindow( QWidget *parent, const char *name ) :
}
+ mAutoSaveDisabled = false;
mClosed = false;
@@ -539,13 +540,29 @@ bool MainWindow::askForQuitOnSaveError()
}
-
+bool MainWindow::checkAutosave()
+{
+ bool savedata = true;
+ if ( mAutoSaveDisabled && mCalendarModifiedFlag ) {
+ switch( QMessageBox::information( this, "KO/Pi",
+ i18n("Calendar is modified\nbut Autosave is disabled!\nDo you want\nto save the data?"),
+ i18n("Yes, Save!"), i18n("No"),
+ 0, 0 ) ) {
+ case 1:
+ case 2:
+ savedata = false;
+ break;
+ default:
+ break;
+ }
+ }
+ return savedata;
+}
void MainWindow::closeEvent( QCloseEvent* ce )
{
-
-
-
if ( ! KOPrefs::instance()->mAskForQuit ) {
- saveOnClose();
- if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) {
- ce->ignore();
- return;
+ if ( checkAutosave() ) {
+ saveOnClose();
+ if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) {
+ ce->ignore();
+ return;
+ }
}
@@ -561,7 +578,9 @@ void MainWindow::closeEvent( QCloseEvent* ce )
0, 0 ) ) {
- case 0:
- saveOnClose();
- if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) {
- ce->ignore();
- return;
+ case 0:
+ if ( checkAutosave() ) {
+ saveOnClose();
+ if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) {
+ ce->ignore();
+ return;
+ }
}
@@ -1659,2 +1678,3 @@ void MainWindow::keyBindings()
i18n("<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n") +
+ i18n("<p><b>C+ctrl</b>: Dis/enable automatic saving</p>\n") +
i18n("<p><b>I</b>: Show info for selected event/todo</p>\n") +
@@ -1974,2 +1994,6 @@ void MainWindow::slotModifiedChanged( bool )
int msec;
+ if ( mAutoSaveDisabled ) {
+ QTimer::singleShot( 0, this , SLOT ( autoSaveWarning() ) );
+ qDebug("KO: Autosave disabled (data change deteced)!");
+ }
if ( mCalendarModifiedFlag ) {
@@ -1978,2 +2002,6 @@ void MainWindow::slotModifiedChanged( bool )
}
+ mCalendarModifiedFlag = true;
+ if ( mAutoSaveDisabled ) {
+ return;
+ }
// we store the changes after 1 minute,
@@ -1988,3 +2016,6 @@ void MainWindow::slotModifiedChanged( bool )
qDebug("KO: Saving File in %d secs!", msec/1000);
- mCalendarModifiedFlag = true;
+}
+void MainWindow::autoSaveWarning()
+{
+ setCaption(i18n("Autosave disabled!" ));
}
@@ -1993,2 +2024,3 @@ void MainWindow::saveStopTimer()
mSaveTimer.stop();
+ mSaveDelay = 0;
}
@@ -2209,4 +2241,15 @@ void MainWindow::keyPressEvent ( QKeyEvent * e )
break;
- case Qt::Key_C:
- mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
+ case Qt::Key_C:
+ if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) {
+ if ( mAutoSaveDisabled ) {
+ mAutoSaveDisabled = false;
+ setCaption(i18n("Autosave enabled!" ));
+ return;
+ } else {
+ mAutoSaveDisabled = true;
+ saveStopTimer();
+ setCaption(i18n("Autosave disabled! Save timer stopped!" ));
+ }
+ } else
+ mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() );
break;
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 71c069b..d8018b6 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -54,2 +54,3 @@ class MainWindow : public QMainWindow
protected slots:
+ void autoSaveWarning();
void loadDataAfterStart();
@@ -123,3 +124,4 @@ class MainWindow : public QMainWindow
private:
-
+ bool mAutoSaveDisabled;
+ bool checkAutosave();
QCString mCStringMess;