Procházet zdrojové kódy

added windowconfig

Malte Veerman před 9 roky
rodič
revize
a67f8ace9d

+ 69 - 0
fancontrol-gui/src/windowconfig.cpp

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2015  Malte Veerman maldela@halloarsch.de
+ *
+ * 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) version 3 or any later version
+ * accepted by the membership of KDE e.V. (or its successor approved
+ * by the membership of KDE e.V.), which shall act as a proxy
+ * defined in Section 14 of version 3 of the license.
+ *
+ * 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, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+#include "windowconfig.h"
+
+#include <QtGui/QWindow>
+#include <QtCore/QDebug>
+#include <QScreen>
+
+#include <KConfigCore/KSharedConfig>
+#include <KConfigGui/KWindowConfig>
+
+
+#ifndef CONFIG_NAME
+#define CONFIG_NAME "fancontrol-gui"
+#endif
+
+   
+WindowConfig *WindowConfig::m_instance = Q_NULLPTR;
+
+WindowConfig::WindowConfig(QObject *parent) : QObject(parent)
+{
+}
+
+WindowConfig* WindowConfig::instance()
+{
+    if (!m_instance)
+        m_instance = new WindowConfig;
+    
+    return m_instance;
+}
+
+void WindowConfig::save(QWindow *window)
+{
+    if (!window)
+        return;
+    
+    KConfigGroup configGroup(KSharedConfig::openConfig(QStringLiteral(CONFIG_NAME)), "window");
+    KWindowConfig::saveWindowSize(window, configGroup);
+    configGroup.sync();
+}
+
+void WindowConfig::restore(QWindow *window)
+{
+    if (!window)
+        return;
+    
+    KConfigGroup configGroup(KSharedConfig::openConfig(QStringLiteral(CONFIG_NAME)), "window");
+    KWindowConfig::restoreWindowSize(window, configGroup);
+}

+ 51 - 0
fancontrol-gui/src/windowconfig.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2015  Malte Veerman <maldela@halloarsch.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser 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 Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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 WINDOWCONFIG_H
+#define WINDOWCONFIG_H
+
+
+#include <QtCore/QObject>
+
+
+class QWindow;
+
+class WindowConfig : public QObject
+{
+    Q_OBJECT
+    
+public:
+    
+    static WindowConfig *instance();
+    
+    Q_INVOKABLE void save(QWindow *window);
+    Q_INVOKABLE void restore(QWindow *window);
+    
+    
+private:
+    
+    WindowConfig(QObject *parent = Q_NULLPTR);
+    ~WindowConfig() {}
+    Q_DISABLE_COPY(WindowConfig)
+    
+    static WindowConfig *m_instance;
+};
+
+#endif //WINDOWCONFIG_H