summaryrefslogtreecommitdiffstats
path: root/src/settings.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings.h')
-rw-r--r--src/settings.h392
1 files changed, 392 insertions, 0 deletions
diff --git a/src/settings.h b/src/settings.h
new file mode 100644
index 0000000..e731262
--- /dev/null
+++ b/src/settings.h
@@ -0,0 +1,392 @@
+/***************************************************************************
+ * Copyright (C) 2003 by Sébastien Laoût *
+ * slaout@linux62.org *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#ifndef SETTINGS_H
+#define SETTINGS_H
+
+#include <qstring.h>
+#include <kdialogbase.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qtooltip.h>
+#include <qcolor.h>
+#include <qpoint.h>
+#include <qsize.h>
+#include <kcmodule.h>
+#include <kaction.h>
+#include <kmainwindow.h>
+#include <qdatetime.h>
+
+#include "global.h"
+#include "bnpview.h"
+#include "systemtray.h"
+
+class QGroupBox;
+class QButtonGroup;
+class KColorCombo;
+class KIntNumInput;
+class KGlobalAccel;
+class QLabel;
+
+class Container;
+class SystemTray;
+class DebugWindow;
+class LinkLook;
+class LinkLookEditWidget;
+class RunCommandRequester;
+class IconSizeCombo;
+
+class GeneralPage : public KCModule
+{
+ Q_OBJECT
+ public:
+ GeneralPage(QWidget * parent=0, const char * name=0);
+ GeneralPage() {};
+ virtual ~GeneralPage() {}
+
+ virtual void load();
+ virtual void save();
+ virtual void defaults();
+
+ private:
+ // General
+ QComboBox *m_treeOnLeft;
+ QComboBox *m_filterOnTop;
+ QCheckBox *m_usePassivePopup;
+
+ // System Tray Icon
+ QCheckBox *m_useSystray;
+ QWidget *m_systray;
+ QCheckBox *m_showIconInSystray;
+ QCheckBox *m_hideOnMouseOut;
+ KIntNumInput *m_timeToHideOnMouseOut;
+ QCheckBox *m_showOnMouseIn;
+ KIntNumInput *m_timeToShowOnMouseIn;
+};
+
+class BasketsPage : public KCModule
+{
+ Q_OBJECT
+ public:
+ BasketsPage(QWidget * parent=0, const char * name=0);
+ BasketsPage() {};
+
+ virtual void load();
+ virtual void save();
+ virtual void defaults();
+
+ private:
+ // Appearance
+ QCheckBox *m_playAnimations;
+ QCheckBox *m_showNotesToolTip;
+ QCheckBox *m_bigNotes;
+
+ // Behavior
+ QCheckBox *m_autoBullet;
+ QCheckBox *m_confirmNoteDeletion;
+ QCheckBox *m_exportTextTags;
+ QWidget *m_groupOnInsertionLineWidget;
+ QCheckBox *m_groupOnInsertionLine;
+ QComboBox *m_middleAction;
+
+ // Protection
+ QCheckBox *m_useGnuPGAgent;
+ QCheckBox *m_enableReLockTimeoutMinutes;
+ KIntNumInput *m_reLockTimeoutMinutes;
+};
+
+class NewNotesPage : public KCModule
+{
+ Q_OBJECT
+ public:
+ NewNotesPage(QWidget * parent=0, const char * name=0);
+ NewNotesPage() {};
+
+ virtual void load();
+ virtual void save();
+ virtual void defaults();
+
+ private slots:
+ void visualize();
+
+ private:
+ // Notes Image Size
+ KIntNumInput *m_imgSizeX;
+ KIntNumInput *m_imgSizeY;
+ QPushButton *m_pushVisualize;
+
+ // Note Addition
+ QComboBox *m_newNotesPlace;
+ QCheckBox *m_viewTextFileContent;
+ QCheckBox *m_viewHtmlFileContent;
+ QCheckBox *m_viewImageFileContent;
+ QCheckBox *m_viewSoundFileContent;
+};
+
+class NotesAppearancePage : public KCModule
+{
+ Q_OBJECT
+ public:
+ NotesAppearancePage(QWidget * parent=0, const char * name=0);
+ NotesAppearancePage() {};
+
+ virtual void load();
+ virtual void save();
+ virtual void defaults();
+
+ private:
+ // Link Looks
+ LinkLookEditWidget *m_soundLook;
+ LinkLookEditWidget *m_fileLook;
+ LinkLookEditWidget *m_localLinkLook;
+ LinkLookEditWidget *m_networkLinkLook;
+ LinkLookEditWidget *m_launcherLook;
+};
+
+class ApplicationsPage : public KCModule
+{
+ Q_OBJECT
+ public:
+ ApplicationsPage(QWidget * parent=0, const char * name=0);
+ ApplicationsPage() {};
+
+ virtual void load();
+ virtual void save();
+ virtual void defaults();
+
+ private:
+ // Applications
+ QCheckBox *m_htmlUseProg;
+ QCheckBox *m_imageUseProg;
+ QCheckBox *m_animationUseProg;
+ QCheckBox *m_soundUseProg;
+ RunCommandRequester *m_htmlProg;
+ RunCommandRequester *m_imageProg;
+ RunCommandRequester *m_animationProg;
+ RunCommandRequester *m_soundProg;
+};
+
+/** Handle all global variables (to avoid lot of extern declarations)
+ * @author S�astien Laot
+ */
+class Settings // FIXME: Distaptch new config events ?
+{
+ protected:
+ /** Main window */
+ static bool s_treeOnLeft;
+ static bool s_filterOnTop;
+ static bool s_playAnimations;
+ static bool s_showNotesToolTip;
+ static bool s_confirmNoteDeletion;
+ static bool s_bigNotes;
+ static bool s_autoBullet;
+ static bool s_exportTextTags;
+ static bool s_useGnuPGAgent;
+ static bool s_usePassivePopup;
+ static int s_middleAction; // O:Nothing ; 1:Paste ; 2:Text ; 3:Html ; 4:Image ; 5:Link ; 6:Launcher ; 7:Color
+ static bool s_groupOnInsertionLine;
+ static bool s_spellCheckTextNotes;
+ static int s_basketTreeWidth;
+ static bool s_welcomeBasketsAdded;
+ static QString s_dataFolder;
+ static QDate s_lastBackup;
+ static QPoint s_mainWindowPosition;
+ static QSize s_mainWindowSize;
+ static bool s_showEmptyBasketInfo;
+ static bool s_blinkedFilter;
+ static bool s_enableReLockTimeout;
+ static int s_reLockTimeoutMinutes;
+ /** Note Addition */
+ static int s_newNotesPlace; // 0:OnTop ; 1:OnBottom ; 2:AtCurrentNote
+ static int s_viewTextFileContent;
+ static int s_viewHtmlFileContent;
+ static int s_viewImageFileContent;
+ static int s_viewSoundFileContent;
+ /** System tray Icon */
+ static bool s_useSystray;
+ static bool s_showIconInSystray;
+ static bool s_startDocked;
+ static bool s_hideOnMouseOut;
+ static int s_timeToHideOnMouseOut;
+ static bool s_showOnMouseIn;
+ static int s_timeToShowOnMouseIn;
+ /** Programs */
+ static bool s_htmlUseProg;
+ static bool s_imageUseProg;
+ static bool s_animationUseProg;
+ static bool s_soundUseProg;
+ static QString s_htmlProg;
+ static QString s_imageProg;
+ static QString s_animationProg;
+ static QString s_soundProg;
+ /** Insert Note Default Values */
+ static int s_defImageX;
+ static int s_defImageY;
+ static int s_defIconSize;
+ public: /* And the following methods are just getter / setters */
+ /** App settings GET */
+ static inline bool treeOnLeft() { return s_treeOnLeft; }
+ static inline bool filterOnTop() { return s_filterOnTop; }
+ static inline bool playAnimations() { return s_playAnimations; }
+ static inline bool showNotesToolTip() { return s_showNotesToolTip; }
+ static inline bool confirmNoteDeletion() { return s_confirmNoteDeletion; }
+ static inline bool bigNotes() { return s_bigNotes; }
+ static inline bool autoBullet() { return s_autoBullet; }
+ static inline bool exportTextTags() { return s_exportTextTags; }
+ static inline bool useGnuPGAgent() { return s_useGnuPGAgent; }
+ static inline bool blinkedFilter() { return s_blinkedFilter; }
+ static inline bool enableReLockTimeout() { return s_enableReLockTimeout; }
+ static inline int reLockTimeoutMinutes() { return s_reLockTimeoutMinutes; }
+ static inline bool useSystray() { return s_useSystray; }
+ static inline bool showIconInSystray() { return s_showIconInSystray; }
+ static inline bool startDocked() { return s_startDocked; }
+ static inline int middleAction() { return s_middleAction; }
+ static inline bool groupOnInsertionLine() { return s_groupOnInsertionLine; }
+ static inline bool spellCheckTextNotes() { return s_spellCheckTextNotes; }
+ static inline bool hideOnMouseOut() { return s_hideOnMouseOut; }
+ static inline int timeToHideOnMouseOut() { return s_timeToHideOnMouseOut; }
+ static inline bool showOnMouseIn() { return s_showOnMouseIn; }
+ static inline int timeToShowOnMouseIn() { return s_timeToShowOnMouseIn; }
+ static inline int basketTreeWidth() { return s_basketTreeWidth; }
+ static inline int dropTimeToShow() { return 7; } // TODO: 700 ; TODO: There is certainly a KGlobalConfig ???
+ static inline bool usePassivePopup() { return s_usePassivePopup; }
+ static inline bool welcomeBasketsAdded() { return s_welcomeBasketsAdded; }
+ static inline QString dataFolder() { return s_dataFolder; }
+ static inline QDate lastBackup() { return s_lastBackup; }
+ static inline QPoint mainWindowPosition() { return s_mainWindowPosition; }
+ static inline QSize mainWindowSize() { return s_mainWindowSize; }
+ static inline bool showEmptyBasketInfo() { return s_showEmptyBasketInfo; }
+ /** Programs */
+ static inline bool isHtmlUseProg() { return s_htmlUseProg; }
+ static inline bool isImageUseProg() { return s_imageUseProg; }
+ static inline bool isAnimationUseProg() { return s_animationUseProg; }
+ static inline bool isSoundUseProg() { return s_soundUseProg; }
+ static inline QString htmlProg() { return s_htmlProg; }
+ static inline QString imageProg() { return s_imageProg; }
+ static inline QString animationProg() { return s_animationProg; }
+ static inline QString soundProg() { return s_soundProg; }
+ /** Insert Note Default Values */
+ static inline int defImageX() { return s_defImageX; }
+ static inline int defImageY() { return s_defImageY; }
+ static inline int defIconSize() { return s_defIconSize; }
+ /** Note Addition */
+ static inline int newNotesPlace() { return s_newNotesPlace; }
+ static inline int viewTextFileContent() { return s_viewTextFileContent; }
+ static inline int viewHtmlFileContent() { return s_viewHtmlFileContent; }
+ static inline int viewImageFileContent() { return s_viewImageFileContent; }
+ static inline int viewSoundFileContent() { return s_viewSoundFileContent; }
+
+ /** App settings SET */
+ static void setTreeOnLeft(bool onLeft)
+ {
+ s_treeOnLeft = onLeft;
+ if (Global::bnpView)
+ Global::bnpView->setTreePlacement(onLeft);
+ }
+ static void setFilterOnTop(bool onTop)
+ {
+ if (s_filterOnTop != onTop) {
+ s_filterOnTop = onTop;
+ if (Global::bnpView)
+ Global::bnpView->filterPlacementChanged(onTop);
+ }
+ }
+ static void setShowNotesToolTip(bool show)
+ {
+ s_showNotesToolTip = show;
+ }
+ static void setUseSystray(bool useSystray)
+ {
+ if (s_useSystray != useSystray) {
+ s_useSystray = useSystray;
+ if (Global::systemTray != 0L) {
+ if (Settings::useSystray())
+ Global::systemTray->show();
+ else {
+ Global::systemTray->hide();
+ if(Global::mainWindow()) Global::mainWindow()->show();
+ }
+ }
+ if (Global::bnpView)
+ Global::bnpView->m_actHideWindow->setEnabled(useSystray);
+ }
+ }
+ static void setShowIconInSystray(bool show)
+ {
+ if (s_showIconInSystray != show) {
+ s_showIconInSystray = show;
+ if (Global::systemTray != 0L && Settings::useSystray())
+ Global::systemTray->updateToolTip();
+ }
+ }
+ static inline void setConfirmNoteDeletion(bool confirm) { s_confirmNoteDeletion = confirm; }
+ static void setBigNotes(bool big);
+ static void setAutoBullet(bool yes);
+ static inline void setExportTextTags(bool yes) { s_exportTextTags = yes; }
+ static inline void setUseGnuPGAgent(bool yes) { s_useGnuPGAgent = yes; }
+ static inline void setPlayAnimations(bool play) { s_playAnimations = play; }
+ static inline void setBlinkedFilter(bool blinked) { s_blinkedFilter = blinked; }
+ static inline void setEnableReLockTimeout(bool yes) { s_enableReLockTimeout = yes; }
+ static inline void setReLockTimeoutMinutes(int minutes) { s_reLockTimeoutMinutes = minutes; }
+ static inline void setStartDocked(bool docked) { s_startDocked = docked; }
+ static inline void setMiddleAction(int action) { s_middleAction = action; }
+ static inline void setGroupOnInsertionLine(bool yes) { s_groupOnInsertionLine = yes; }
+ static inline void setSpellCheckTextNotes(bool yes) { s_spellCheckTextNotes = yes; }
+ static inline void setHideOnMouseOut(bool hide) { s_hideOnMouseOut = hide; }
+ static inline void setTimeToHideOnMouseOut(int time) { s_timeToHideOnMouseOut = time; }
+ static inline void setShowOnMouseIn(bool show) { s_showOnMouseIn = show; }
+ static inline void setTimeToShowOnMouseIn(int time) { s_timeToShowOnMouseIn = time; }
+ static inline void setBasketTreeWidth(int width) { s_basketTreeWidth = width; }
+ static inline void setUsePassivePopup(bool enable) { s_usePassivePopup = enable; }
+ static inline void setWelcomeBasketsAdded(bool added) { s_welcomeBasketsAdded = added; }
+ static inline void setDataFolder(const QString &folder) { s_dataFolder = folder; }
+ static inline void setLastBackup(const QDate &date) { s_lastBackup = date; }
+ static inline void setMainWindowPosition(const QPoint &pos) { s_mainWindowPosition = pos; }
+ static inline void setMainWindowSize(const QSize &size) { s_mainWindowSize = size; }
+ static inline void setShowEmptyBasketInfo(bool show) { s_showEmptyBasketInfo = show; }
+ // Programs :
+ static inline void setIsHtmlUseProg(bool useProg) { s_htmlUseProg = useProg; }
+ static inline void setIsImageUseProg(bool useProg) { s_imageUseProg = useProg; }
+ static inline void setIsAnimationUseProg(bool useProg) { s_animationUseProg = useProg; }
+ static inline void setIsSoundUseProg(bool useProg) { s_soundUseProg = useProg; }
+ static inline void setHtmlProg(const QString &prog) { s_htmlProg = prog; }
+ static inline void setImageProg(const QString &prog) { s_imageProg = prog; }
+ static inline void setAnimationProg(const QString &prog) { s_animationProg = prog; }
+ static inline void setSoundProg(const QString &prog) { s_soundProg = prog; }
+ // Insert Note Default Values :
+ static inline void setDefImageX(int val) { s_defImageX = val; }
+ static inline void setDefImageY(int val) { s_defImageY = val; }
+ static inline void setDefIconSize(int val) { s_defIconSize = val; }
+ // Note Addition
+ static inline void setNewNotesPlace(int val) { s_newNotesPlace = val; }
+ static inline void setViewTextFileContent(bool view) { s_viewTextFileContent = view; }
+ static inline void setViewHtmlFileContent(bool view) { s_viewHtmlFileContent = view; }
+ static inline void setViewImageFileContent(bool view) { s_viewImageFileContent = view; }
+ static inline void setViewSoundFileContent(bool view) { s_viewSoundFileContent = view; }
+ public:
+ /* Save and load config */
+ static void loadConfig();
+ static void saveConfig();
+ protected:
+ static void loadLinkLook(LinkLook *look, const QString &name, const LinkLook &defaultLook);
+ static void saveLinkLook(LinkLook *look, const QString &name);
+};
+
+#endif // SETTINGS_H