Changeset - 020e7830b9d2
[Not reviewed]
default
0 5 0
Hasan Yavuz Ă–ZDERYA - 8 years ago 2017-04-30 07:24:07
hy@ozderya.net
save/load symbol setting
5 files changed with 62 insertions and 21 deletions:
0 comments (0 inline, 0 general)
src/plot.cpp
Show inline comments
 
@@ -39,7 +39,7 @@ Plot::Plot(QWidget* parent) :
 
    isAutoScaled = true;
 
    symbolSize = 0;
 
    numOfSamples = 1;
 
    showSymbols = ShowSymbolsAuto;
 
    showSymbols = Plot::Auto;
 

	
 
    QObject::connect(&zoomer, &Zoomer::unzoomed, this, &Plot::unzoomed);
 

	
 
@@ -252,11 +252,11 @@ void Plot::setSymbols(ShowSymbols shown)
 
{
 
    showSymbols = shown;
 

	
 
    if (showSymbols == ShowSymbolsAuto)
 
    if (showSymbols == Plot::Auto)
 
    {
 
        calcSymbolSize();
 
    }
 
    else if (showSymbols == ShowSymbolsAlways)
 
    else if (showSymbols == Plot::Show)
 
    {
 
        symbolSize = SYMBOL_SIZE_MAX;
 
    }
 
@@ -271,7 +271,7 @@ void Plot::setSymbols(ShowSymbols shown)
 

	
 
void Plot::onXScaleChanged()
 
{
 
    if (showSymbols == ShowSymbolsAuto)
 
    if (showSymbols == Plot::Auto)
 
    {
 
        calcSymbolSize();
 
        updateSymbols();
src/plot.h
Show inline comments
 
@@ -33,13 +33,6 @@
 
#include "scalezoomer.h"
 
#include "plotsnapshotoverlay.h"
 

	
 
enum ShowSymbols
 
{
 
    ShowSymbolsAuto,
 
    ShowSymbolsAlways,
 
    ShowSymbolsNever
 
};
 

	
 
class Plot : public QwtPlot
 
{
 
    Q_OBJECT
 
@@ -47,6 +40,15 @@ class Plot : public QwtPlot
 
    friend class PlotManager;
 

	
 
public:
 
    // Note: this naming is also used as setting values
 
    enum ShowSymbols
 
    {
 
        Auto,
 
        Show,
 
        Hide
 
    };
 
    Q_ENUM(ShowSymbols);
 

	
 
    Plot(QWidget* parent = 0);
 
    ~Plot();
 

	
src/plotmanager.cpp
Show inline comments
 
@@ -18,6 +18,8 @@
 
*/
 

	
 
#include <QActionGroup>
 
#include <QMetaEnum>
 
#include <QtDebug>
 
#include "qwt_symbol.h"
 

	
 
#include "plot.h"
 
@@ -42,7 +44,7 @@ PlotManager::PlotManager(QWidget* plotAr
 
    isDemoShown = false;
 
    _infoModel = infoModel;
 
    _numOfSamples = 1;
 
    showSymbols = ShowSymbolsAuto;
 
    showSymbols = Plot::Auto;
 

	
 
    // initalize layout and single widget
 
    isMulti = false;
 
@@ -77,27 +79,27 @@ PlotManager::PlotManager(QWidget* plotAr
 
    showMinorGridAction.setEnabled(false);
 

	
 
    // setup symbols menu
 
    auto setSymbolAutoAct = setSymbolsMenu.addAction("Show When Zoomed");
 
    setSymbolAutoAct = setSymbolsMenu.addAction("Show When Zoomed");
 
    setSymbolAutoAct->setCheckable(true);
 
    setSymbolAutoAct->setChecked(true);
 
    connect(setSymbolAutoAct, SELECT<bool>::OVERLOAD_OF(&QAction::triggered),
 
            [this](bool checked)
 
            {
 
                if (checked) setSymbols(ShowSymbolsAuto);
 
                if (checked) setSymbols(Plot::Auto);
 
            });
 
    auto setSymbolAlwaysAct = setSymbolsMenu.addAction("Always Show");
 
    setSymbolAlwaysAct = setSymbolsMenu.addAction("Always Show");
 
    setSymbolAlwaysAct->setCheckable(true);
 
    connect(setSymbolAlwaysAct, SELECT<bool>::OVERLOAD_OF(&QAction::triggered),
 
            [this](bool checked)
 
            {
 
                if (checked) setSymbols(ShowSymbolsAlways);
 
                if (checked) setSymbols(Plot::Show);
 
            });
 
    auto setSymbolHideAct = setSymbolsMenu.addAction("Always Hide");
 
    setSymbolHideAct = setSymbolsMenu.addAction("Always Hide");
 
    setSymbolHideAct->setCheckable(true);
 
    connect(setSymbolHideAct, SELECT<bool>::OVERLOAD_OF(&QAction::triggered),
 
            [this](bool checked)
 
            {
 
                if (checked) setSymbols(ShowSymbolsNever);
 
                if (checked) setSymbols(Plot::Hide);
 
            });
 
    setSymbolsAction.setMenu(&setSymbolsMenu);
 

	
 
@@ -453,7 +455,7 @@ void PlotManager::darkBackground(bool en
 
    }
 
}
 

	
 
void PlotManager::setSymbols(ShowSymbols shown)
 
void PlotManager::setSymbols(Plot::ShowSymbols shown)
 
{
 
    showSymbols = shown;
 
    for (auto plot : plotWidgets)
 
@@ -524,6 +526,8 @@ void PlotManager::saveSettings(QSettings
 
    settings->setValue(SG_Plot_MinorGrid, showMinorGridAction.isChecked());
 
    settings->setValue(SG_Plot_Legend, showLegendAction.isChecked());
 
    settings->setValue(SG_Plot_MultiPlot, showMultiAction.isChecked());
 
    settings->setValue(SG_Plot_Symbols,
 
                       QMetaEnum::fromType<Plot::ShowSymbols>().valueToKey(showSymbols));
 
    settings->endGroup();
 
}
 

	
 
@@ -546,5 +550,36 @@ void PlotManager::loadSettings(QSettings
 
    showMultiAction.setChecked(
 
        settings->value(SG_Plot_MultiPlot, showMultiAction.isChecked()).toBool());
 
    setMulti(showMultiAction.isChecked());
 

	
 
    // symbol setting
 
    {
 
        bool ok = false;
 
        QString curStr = QMetaEnum::fromType<Plot::ShowSymbols>().valueToKey(showSymbols);
 
        QString settStr = settings->value(SG_Plot_Symbols, curStr).toString();
 
        Plot::ShowSymbols settValue =
 
            (Plot::ShowSymbols) QMetaEnum::fromType<Plot::ShowSymbols>().\
 
            keyToValue(settStr.toLatin1().constData(), &ok);
 
        if (ok)
 
        {
 
            if (settValue == Plot::Auto)
 
            {
 
                setSymbolAutoAct->setChecked(true);
 
            }
 
            else if (settValue == Plot::Show)
 
            {
 
                setSymbolAlwaysAct->setChecked(true);
 
            }
 
            else
 
            {
 
                setSymbolHideAct->setChecked(true);
 
            }
 
            setSymbols(settValue);
 
        }
 
        else
 
        {
 
            qCritical() << "Invalid symbol setting:" << settStr;
 
        }
 
    }
 

	
 
    settings->endGroup();
 
}
src/plotmanager.h
Show inline comments
 
@@ -91,7 +91,7 @@ private:
 
    double _xMin;
 
    double _xMax;
 
    unsigned _numOfSamples;
 
    ShowSymbols showSymbols;
 
    Plot::ShowSymbols showSymbols;
 

	
 
    // menu actions
 
    QAction showGridAction;
 
@@ -102,6 +102,9 @@ private:
 
    QAction showMultiAction;
 
    QAction setSymbolsAction;
 
    QMenu   setSymbolsMenu;
 
    QAction* setSymbolAutoAct;
 
    QAction* setSymbolAlwaysAct;
 
    QAction* setSymbolHideAct;
 

	
 
    void setupLayout(bool multiPlot);
 
    /// Inserts a new plot widget to the current layout.
 
@@ -110,7 +113,7 @@ private:
 
    Plot* plotWidget(unsigned curveIndex);
 
    /// Common part of overloaded `addCurve` functions
 
    void _addCurve(QwtPlotCurve* curve);
 
    void setSymbols(ShowSymbols shown);
 
    void setSymbols(Plot::ShowSymbols shown);
 

	
 
private slots:
 
    void showGrid(bool show = true);
src/setting_defines.h
Show inline comments
 
@@ -87,6 +87,7 @@ const char SG_Plot_Grid[] = "grid";
 
const char SG_Plot_MinorGrid[] = "minorGrid";
 
const char SG_Plot_Legend[] = "legend";
 
const char SG_Plot_MultiPlot[] = "multiPlot";
 
const char SG_Plot_Symbols[] = "symbols";
 

	
 
// command setting keys
 
const char SG_Commands_Command[] = "command";
0 comments (0 inline, 0 general)