summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/korganizer/germantranslation.txt8
-rw-r--r--korganizer/mainwindow.cpp75
-rw-r--r--korganizer/mainwindow.h4
3 files changed, 70 insertions, 17 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt
index ea653b2..e8b54fd 100644
--- a/bin/kdepim/korganizer/germantranslation.txt
+++ b/bin/kdepim/korganizer/germantranslation.txt
@@ -1564,6 +1564,14 @@
{ "You can save all data\nto another file via\nFile->Export->Export All Data","Sie können alle Daten in\neine andere Datei speichern unter\nDatei->Exportiere->Exportiere alle Daten" },
{ "<p><b>Duration:</b> %1 days</p>","<p><b>Dauer:</b> %1 Tage</p>" },
{ " (Duration: %1 days)"," (Dauer: %1 Tage)" },
+{ "Autosave enabled!","Auto-Speichern angeschaltet!" },
+{ "Autosave disabled! Save timer stopped!","Auto-Speichern ausgeschaltet! Speicher Timer gestoppt!" },
+{ "Autosave disabled!","Auto-Speichern ist ausgeschaltet!" },
+{ "Yes, Save!","Ja, Speichern!" },
+{ "Calendar is modified\nbut Autosave is disabled!\nDo you want\nto save the data?","Der Kalender wurde verändert,\naber Auto-Speichern ist\nabgeschaltet. Möchten Sie\ndie Daten speichern?" },
+{ "<p><b>C+ctrl</b>: Dis/enable automatic saving</p>\n","<p><b>C+ctrl</b>: Auto-Speichern ab/anschalten</p>\n" },
+{ "","" },
+{ "","" },
{ "","" },
{ "","" },
{ "","" },
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index c597138..66bb19b 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -170,6 +170,7 @@ MainWindow::MainWindow( QWidget *parent, const char *name ) :
p.drawLine( 2,7,6,7);
}
}
+ mAutoSaveDisabled = false;
mClosed = false;
//QString confFile = KStandardDirs::appDir() + "config/korganizerrc";
QString confFile = locateLocal("config","korganizerrc");
@@ -537,17 +538,33 @@ bool MainWindow::askForQuitOnSaveError()
}
return retval;
}
-
+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;
+ }
}
mClosed = true;
ce->accept();
@@ -559,11 +576,13 @@ void MainWindow::closeEvent( QCloseEvent* ce )
i18n("Do you really want\nto close KO/Pi?"),
i18n("Close"), i18n("No"),
0, 0 ) ) {
- case 0:
- saveOnClose();
- if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) {
- ce->ignore();
- return;
+ case 0:
+ if ( checkAutosave() ) {
+ saveOnClose();
+ if ( mCalendarModifiedFlag && !askForQuitOnSaveError() ) {
+ ce->ignore();
+ return;
+ }
}
mClosed = true;
ce->accept();
@@ -1657,6 +1676,7 @@ void MainWindow::keyBindings()
i18n("<p><b>H</b>: This help dialog | <b>S</b>: Search dialog</p>\n")+
i18n("<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n") +
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") +
i18n("<p><b>Space</b>: Toggle fullscreen | <b>P</b>: Date picker</p>\n")+
i18n("<p><b>R</b>: Toggle Resource View |<b>F</b>: Edit filter </p>\n")+
@@ -1972,10 +1992,18 @@ void MainWindow::slotModifiedChanged( bool )
return;
int msec;
+ if ( mAutoSaveDisabled ) {
+ QTimer::singleShot( 0, this , SLOT ( autoSaveWarning() ) );
+ qDebug("KO: Autosave disabled (data change deteced)!");
+ }
if ( mCalendarModifiedFlag ) {
//qDebug(" MainWindow timer is running ");
return;
}
+ mCalendarModifiedFlag = true;
+ if ( mAutoSaveDisabled ) {
+ return;
+ }
// we store the changes after 1 minute,
// and for safety reasons after 10 minutes again
if ( !mSyncManager->blockSave() )
@@ -1986,11 +2014,15 @@ void MainWindow::slotModifiedChanged( bool )
mSaveTimerStart = QDateTime::currentDateTime();
mSaveDelay = msec/1000;
qDebug("KO: Saving File in %d secs!", msec/1000);
- mCalendarModifiedFlag = true;
+}
+void MainWindow::autoSaveWarning()
+{
+ setCaption(i18n("Autosave disabled!" ));
}
void MainWindow::saveStopTimer()
{
mSaveTimer.stop();
+ mSaveDelay = 0;
}
void MainWindow::backupAllFiles()
{
@@ -2207,8 +2239,19 @@ void MainWindow::keyPressEvent ( QKeyEvent * e )
case Qt::Key_V:
mView->viewManager()->showTodoView();
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;
case Qt::Key_P:
mView->showDatePicker( );
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index 71c069b..d8018b6 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -52,6 +52,7 @@ class MainWindow : public QMainWindow
void recieve( const QCString& msg, const QByteArray& data );
void receiveStart( const QCString& msg, const QByteArray& data );
protected slots:
+ void autoSaveWarning();
void loadDataAfterStart();
void calHint();
void startMultiSync();
@@ -121,7 +122,8 @@ class MainWindow : public QMainWindow
bool askForQuitOnSaveError();
private:
-
+ bool mAutoSaveDisabled;
+ bool checkAutosave();
QCString mCStringMess;
QByteArray mByteData;