diff options
Diffstat (limited to 'symedit.cpp')
| -rw-r--r-- | symedit.cpp | 81 |
1 files changed, 49 insertions, 32 deletions
diff --git a/symedit.cpp b/symedit.cpp index 0c9d831..56bcb39 100644 --- a/symedit.cpp +++ b/symedit.cpp @@ -8,9 +8,14 @@ // settings functions // //! Constructor. -SymEditSettings::SymEditSettings() : FillItem(0), Alignment(9), LineWidth(1), TextSize(1), SnapGrid(5), Tool(1) +SymEditSettings::SymEditSettings() { - + Values.emplace("FillItem", 0); + Values.emplace("Alignment", 9); + Values.emplace("LineWidth", 1); + Values.emplace("TextSize", 1); + Values.emplace("SnapGrid", 5); + Values.emplace("Tool", 1); } //! Load settings. @@ -23,12 +28,12 @@ void SymEditSettings::Load() Size.setWidth(settings.value("window/width", 500).toInt()); Size.setHeight(settings.value("window/height", 500).toInt()); - FillItem = settings.value("editor/fill", 0).toInt(); - Alignment = settings.value("editor/align", 9).toInt(); - LineWidth = settings.value("editor/width", 1).toInt(); - TextSize = settings.value("editor/size", 1).toInt(); - SnapGrid = settings.value("editor/snap", 5).toInt(); - Tool = settings.value("editor/tool", 1).toInt(); + Values.at("FillItem") = settings.value("editor/fill", 0).toInt(); + Values.at("Alignment") = settings.value("editor/align", 9).toInt(); + Values.at("LineWidth") = settings.value("editor/width", 1).toInt(); + Values.at("TextSize") = settings.value("editor/size", 1).toInt(); + Values.at("SnapGrid") = settings.value("editor/snap", 5).toInt(); + Values.at("Tool") = settings.value("editor/tool", 1).toInt(); } //! Save settings. @@ -41,12 +46,12 @@ void SymEditSettings::Save() const settings.setValue("window/width", Size.width()); settings.setValue("window/height", Size.height()); - settings.setValue("editor/fill", FillItem); - settings.setValue("editor/align", Alignment); - settings.setValue("editor/width", LineWidth); - settings.setValue("editor/size", TextSize); - settings.setValue("editor/snap", SnapGrid); - settings.setValue("editor/tool", Tool); + settings.setValue("editor/fill", Values.at("FillItem")); + settings.setValue("editor/align", Values.at("Alignment")); + settings.setValue("editor/width", Values.at("LineWidth")); + settings.setValue("editor/size", Values.at("TextSize")); + settings.setValue("editor/snap", Values.at("SnapGrid")); + settings.setValue("editor/tool", Values.at("Tool")); } // @@ -101,31 +106,28 @@ QSize SymEditManager::getWindowSize() const return Settings.Size; } -//@{ //! Set setting value. /*! + \param name Setting name. \param value Setting value. */ -void SymEditManager::setFillItem(int value) { Settings.FillItem = value; } -void SymEditManager::setAlignment(int value) { Settings.Alignment = value; } -void SymEditManager::setLineWidth(int value) { Settings.LineWidth = value; } -void SymEditManager::setTextSize(int value) { Settings.TextSize = value; } -void SymEditManager::setSnapGrid(int value) { Settings.SnapGrid = value; } -void SymEditManager::setTool(int value) { Settings.Tool = value; } -//@} - -//@{ +void SymEditManager::setIntSetting(QString name, int value) +{ + if ( Settings.Values.find(name) != Settings.Values.end() ) + Settings.Values.at(name) = value; +} + //! Get setting value. /*! + \param name Setting name. \return Setting value. */ -int SymEditManager::getFillItem() const { return Settings.FillItem; } -int SymEditManager::getAlignment() const { return Settings.Alignment; } -int SymEditManager::getLineWidth() const { return Settings.LineWidth; } -int SymEditManager::getTextSize() const { return Settings.TextSize; } -int SymEditManager::getSnapGrid() const { return Settings.SnapGrid; } -int SymEditManager::getTool() const { return Settings.Tool; } -//@} +int SymEditManager::getIntSetting(QString name) const +{ + if ( Settings.Values.find(name) != Settings.Values.end() ) + return Settings.Values.at(name); + return 0; +} //! Get symbol as string. /*! @@ -350,7 +352,7 @@ void SymEditManager::pasteClipboard() //! Rotate symbol. /*! - \param dir Positive value rotates right, negative left + \param dir Positive value rotates right, negative left. */ void SymEditManager::rotateSymbol(int dir) { @@ -358,6 +360,21 @@ void SymEditManager::rotateSymbol(int dir) Symbol.RotateSymbol(dir); } +//! Raise or lower item. +/*! + \param dir Positive value raises, negative lowers. + \return True for success. +*/ +bool SymEditManager::raiseItem(int dir) +{ + if ( Symbol.GetItemCount() ) + { + undosave(); + return Symbol.RaiseItem(dir); + } + return false; +} + //! Undo edit operation. /*! \param undo True undoes, false redoes. |
