summaryrefslogtreecommitdiffstats
path: root/karm/preferences.h
diff options
context:
space:
mode:
Diffstat (limited to 'karm/preferences.h')
-rw-r--r--karm/preferences.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/karm/preferences.h b/karm/preferences.h
new file mode 100644
index 00000000..e917d70b
--- /dev/null
+++ b/karm/preferences.h
@@ -0,0 +1,90 @@
+#ifndef KARM_PREFERENCES_H
+#define KARM_PREFERENCES_H
+
+#include <kdialogbase.h>
+
+class QCheckBox;
+class QLabel;
+class QSpinBox;
+class QString;
+class KURLRequester;
+
+/**
+ * Provide an interface to the configuration options for the program.
+ */
+
+class Preferences :public KDialogBase
+{
+ Q_OBJECT
+
+ public:
+ static Preferences *instance( const QString& icsfile = "" );
+ void disableIdleDetection();
+
+ // Retrive information about settings
+ bool detectIdleness() const;
+ int idlenessTimeout() const;
+ QString iCalFile() const;
+ QString activeCalendarFile() const;
+ bool autoSave() const;
+ bool logging() const;
+ int autoSavePeriod() const;
+ bool promptDelete() const;
+ QString setPromptDelete( bool prompt );
+ bool displayColumn(int n) const;
+ QString userRealName() const;
+
+ void emitSignals();
+ bool readBoolEntry( const QString& uid );
+ void writeEntry( const QString &key, bool value );
+ void deleteEntry( const QString &key );
+
+ public slots:
+ void showDialog();
+ void load();
+ void save();
+
+ signals:
+ void detectIdleness(bool on);
+ void idlenessTimeout(int minutes);
+ void iCalFile(QString);
+ void autoSave(bool on);
+ void autoSavePeriod(int minutes);
+ void setupChanged();
+
+ protected slots:
+ virtual void slotOk();
+ virtual void slotCancel();
+ void idleDetectCheckBoxChanged();
+ void autoSaveCheckBoxChanged();
+
+ private:
+ void makeDisplayPage();
+ void makeBehaviorPage();
+ void makeStoragePage();
+
+ Preferences( const QString& icsfile = "" );
+ static Preferences *_instance;
+ bool _unsavedChanges;
+
+ // Widgets
+ QCheckBox *_doIdleDetectionW, *_doAutoSaveW, *_promptDeleteW;
+ QCheckBox *_displayTimeW, *_displaySessionW,
+ *_displayTotalTimeW, *_displayTotalSessionW;
+ QCheckBox *_loggingW;
+ QLabel *_idleDetectLabelW, *_displayColumnsLabelW;
+ QSpinBox *_idleDetectValueW, *_autoSaveValueW;
+ KURLRequester *_iCalFileW ;
+
+ // Values
+ bool _doIdleDetectionV, _doAutoSaveV, _promptDeleteV, _loggingV;
+ bool _displayColumnV[4];
+ int _idleDetectValueV, _autoSaveValueV;
+ QString _iCalFileV;
+
+ /** real name of the user, used during ICAL saving */
+ QString _userRealName;
+};
+
+#endif // KARM_PREFERENCES_H
+