summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2013-07-13 22:44:29 +0000
committerStijn Buys <ingar@osirion.org>2013-07-13 22:44:29 +0000
commit924cfc4b9c0934afab62e4ab58bf4fb026308fd7 (patch)
treef53fed6c55d48096ab021805345b8cf74ade364f
parent56e536e4c2379e722fe4a9c8f83e64c45f41bd2a (diff)
Adds the files containing the Settings class.
-rw-r--r--src/settings.cc38
-rw-r--r--src/settings.h33
2 files changed, 71 insertions, 0 deletions
diff --git a/src/settings.cc b/src/settings.cc
new file mode 100644
index 0000000..94504d2
--- /dev/null
+++ b/src/settings.cc
@@ -0,0 +1,38 @@
+
+#ifdef _WIN32
+#include <windows.h>
+#include <shlobj.h>
+#endif
+
+#include "settings.h"
+
+Settings m_globalSettings;
+
+const Settings & globalSettings()
+{
+ return m_globalSettings;
+}
+Settings::Settings() :
+ m_homePath(),
+ m_colorInvalidValue(255, 0, 0),
+ m_colorInputError(195, 195, 195)
+{
+#ifdef _WIN32
+ // get the full path for "Applicaton Data"
+ TCHAR appdatapath[512];
+ memset(appdatapath, 0, sizeof(appdatapath));
+ SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, appdatapath);
+
+ // FIXME detect Unicode support
+ // m_homePath = QString::fromAscii(appdatapath);
+ m_homePath = QString::fromUtf16((const ushort *)appdatapath);
+ m_homePath += "\\Sudoku Solver";
+#else
+ m_homePath = QDir::homePath() + "/.sudokusolver";
+#endif
+ QDir directory;
+ if (!directory.exists(m_homePath)) {
+ // create home directory
+ directory.mkdir(m_homePath);
+ }
+}
diff --git a/src/settings.h b/src/settings.h
new file mode 100644
index 0000000..319bcb1
--- /dev/null
+++ b/src/settings.h
@@ -0,0 +1,33 @@
+#ifndef __INCLUDED_SUDOKUSOLVER_SETTINGS__
+#define __INCLUDED_SUDOKUSOLVER_SETTINGS__
+
+#include <QtGui>
+
+class Settings {
+public:
+ Settings();
+
+ inline const QString & homePath() const
+ {
+ return m_homePath;
+ }
+
+ inline const QColor & colorInvalidValue() const
+ {
+ return m_colorInvalidValue;
+ }
+
+ inline const QColor & colorInputError() const
+ {
+ return m_colorInputError;
+ }
+
+private:
+ QString m_homePath;
+ QColor m_colorInvalidValue;
+ QColor m_colorInputError;
+};
+
+const Settings & globalSettings();
+
+#endif // __INCLUDED_SUDOKUSOLVER_SETTINGS__