saving and restoring chart options (QWT)
authorAlexey Chernobaev <achernobaev@dev.rtsoft.ru>
Tue, 27 Mar 2018 13:17:30 +0000 (16:17 +0300)
committerAlexey Chernobaev <achernobaev@dev.rtsoft.ru>
Tue, 27 Mar 2018 13:17:30 +0000 (16:17 +0300)
src/analyze/gui/aboutdata.cpp
src/analyze/gui/aboutdata.h
src/analyze/gui/mainwindow.cpp
src/heaptrack_gui.pro

index dd5c863..a3fe52c 100644 (file)
@@ -6,6 +6,22 @@
 #include <KLocalizedString>
 #endif
 
+#ifdef SAMSUNG_TIZEN_BRANCH
+const QString& AboutData::Organization = "Samsung";
+
+const QString& AboutData::CopyrightStatement =
+        i18n("Copyright 2015, Milian Wolff <mail@milianw.de>. " \
+             "Copyright 2018, Samsung.");
+
+const QString& AboutData::BugAddress = "TODO"; // TODO!!
+#else
+const QString& AboutData::Organization = "Milian Wolff";
+
+const QString& AboutData::CopyrightStatement = i18n("Copyright 2015, Milian Wolff <mail@milianw.de>");
+
+const QString& AboutData::BugAddress = QStringLiteral("mail@milianw.de");
+#endif
+
 const QString& AboutData::ComponentName = QStringLiteral("heaptrack_gui");
 
 const QString& AboutData::DisplayName = i18n("Heaptrack GUI");
@@ -13,7 +29,3 @@ const QString& AboutData::DisplayName = i18n("Heaptrack GUI");
 const QString& AboutData::Version = QStringLiteral("0.1");
 
 const QString& AboutData::ShortDescription = i18n("A visualizer for heaptrack data files.");
-
-const QString& AboutData::CopyrightStatement = i18n("Copyright 2015, Milian Wolff <mail@milianw.de>");
-
-const QString& AboutData::BugAddress = QStringLiteral("mail@milianw.de");
index d1e08a4..fd68065 100644 (file)
@@ -6,12 +6,18 @@
 class AboutData
 {
 public:
+    const static QString& Organization;
     const static QString& ComponentName;
     const static QString& DisplayName;
     const static QString& Version;
     const static QString& ShortDescription;
     const static QString& CopyrightStatement;
     const static QString& BugAddress;
+
+    static QString applicationName()
+    {
+        return ComponentName + '_' + Version;
+    }
 };
 
 #endif // ABOUTDATA_H
index 6c5f616..6650160 100644 (file)
 #include "chartwidget.h"
 #include "histogrammodel.h"
 #include "histogramwidget.h"
+#if QWT_FOUND
+#include "aboutdata.h"
+#include <QSettings>
+#endif
 #endif
 
 using namespace std;
@@ -240,10 +244,22 @@ MainWindow::MainWindow(QWidget* parent)
     , m_config(KSharedConfig::openConfig(QStringLiteral("heaptrack_gui")))
 #endif
 {
-#if defined(QWT_FOUND) && (QT_VERSION >= 0x050A00)
+#ifdef QWT_FOUND
+    QSettings settings(QSettings::UserScope, AboutData::Organization, AboutData::applicationName());
+    settings.beginGroup("Charts");
+    QVariant value = settings.value("Options");
+    bool ok;
+    int options = value.toInt(&ok);
+    if (ok)
+    {
+        ChartOptions::GlobalOptions = ChartOptions::Options(options);
+    }
+    settings.endGroup();
+#if QT_VERSION >= 0x050A00
     // seems it doesn't help under Windows (Qt 5.10.0)
     QCoreApplication::setAttribute(Qt::AA_DontShowShortcutsInContextMenus, false);
 #endif
+#endif // QWT_FOUND
 
     m_ui->setupUi(this);
 
@@ -617,11 +633,18 @@ MainWindow::MainWindow(QWidget* parent)
 
 MainWindow::~MainWindow()
 {
-#ifndef NO_K_LIB // TODO!! find a replacement for KSharedConfig
+#ifdef NO_K_LIB
+#ifdef QWT_FOUND
+    QSettings settings(QSettings::UserScope, AboutData::Organization, AboutData::applicationName());
+    settings.beginGroup("Charts");
+    settings.setValue("Options", ChartOptions::GlobalOptions);
+    settings.endGroup();
+#endif // QWT_FOUND
+#else
     auto state = saveState(MAINWINDOW_VERSION);
     auto group = m_config->group(Config::Groups::MainWindow);
     group.writeEntry(Config::Entries::State, state);
-#endif
+#endif // NO_K_LIB
 }
 
 void MainWindow::loadFile(const QString& file, const QString& diffBase)
index 0725168..783ef9b 100644 (file)
@@ -9,6 +9,9 @@ DEFINES += QT_DEPRECATED_WARNINGS
 
 INCLUDEPATH += $$PWD/analyze/gui
 
+# build heaptrack for Samsung Tizen OS
+DEFINES += SAMSUNG_TIZEN_BRANCH
+
 win32 {
     CONFIG += NO_K_LIB NO_K_CHART
 
@@ -43,6 +46,7 @@ unix {
 
 SOURCES += \
     analyze/accumulatedtracedata.cpp \
+    analyze/gui/aboutdata.cpp \
     analyze/gui/gui.cpp \
     analyze/gui/callercalleemodel.cpp \
     analyze/gui/costdelegate.cpp \
@@ -55,11 +59,11 @@ SOURCES += \
     analyze/gui/topproxy.cpp \
     analyze/gui/treemodel.cpp \
     analyze/gui/treeproxy.cpp \
-    analyze/gui/util.cpp \
-    analyze/gui/aboutdata.cpp
+    analyze/gui/util.cpp
 
 HEADERS += \
     analyze/accumulatedtracedata.h \
+    analyze/gui/aboutdata.h \
     analyze/gui/callercalleemodel.h \
     analyze/gui/costdelegate.h \
     analyze/gui/flamegraph.h \
@@ -75,8 +79,7 @@ HEADERS += \
     analyze/gui/treemodel.h \
     analyze/gui/treeproxy.h \
     analyze/gui/util.h \
-    util/config.h \
-    analyze/gui/aboutdata.h
+    util/config.h
 
 QWT_CHART {
     # QMAKEFEATURES and QWT_ROOT environment variables must be set (e.g. to d:\Qwt\Qwt-6.2).