1 // This file is part of Heimer. 2 // Copyright (C) 2020 Jussi Lind <jussi.lind@iki.fi> 3 // 4 // Heimer is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // Heimer is distributed in the hope that it will be useful, 9 // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 // GNU General Public License for more details. 12 // 13 // You should have received a copy of the GNU General Public License 14 // along with Heimer. If not, see <http://www.gnu.org/licenses/>. 15 16 #ifndef SETTINGS_PROXY_HPP 17 #define SETTINGS_PROXY_HPP 18 19 #include "edge.hpp" 20 21 #include <memory> 22 23 class SettingsProxy 24 { 25 public: 26 SettingsProxy(); 27 28 static SettingsProxy & instance(); 29 30 bool autosave() const; 31 32 void setAutosave(bool autosave); 33 34 Edge::ArrowMode edgeArrowMode() const; 35 36 void setEdgeArrowMode(Edge::ArrowMode mode); 37 38 bool reversedEdgeDirection() const; 39 40 void setReversedEdgeDirection(bool reversedEdgeDirection); 41 42 bool selectNodeGroupByIntersection() const; 43 44 void setSelectNodeGroupByIntersection(bool selectNodeGroupByIntersection); 45 46 private: 47 bool m_autosave = false; 48 49 Edge::ArrowMode m_edgeArrowMode; 50 51 bool m_reversedEdgeDirection = false; 52 53 bool m_selectNodeGroupByIntersection = false; 54 55 static std::unique_ptr<SettingsProxy> m_instance; 56 }; 57 58 #endif // SETTINGS_PROXY_HPP 59