summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-03-31 02:40:44 +0000
committerDavid Robillard <d@drobilla.net>2014-03-31 02:40:44 +0000
commit88b95838210411669973d956a5e84ead2c680d35 (patch)
treedb591bdf6d99aa0abaa941183c3ef876043bcaaf /src
parent1f22a1e6dce27a9ce1b4ccd434be371994ae14e6 (diff)
downloadpatchage-88b95838210411669973d956a5e84ead2c680d35.tar.gz
patchage-88b95838210411669973d956a5e84ead2c680d35.tar.bz2
patchage-88b95838210411669973d956a5e84ead2c680d35.zip
Save zoom and font size in configuration.
git-svn-id: http://svn.drobilla.net/lad/trunk/patchage@5351 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src')
-rw-r--r--src/Configuration.cpp4
-rw-r--r--src/Configuration.hpp7
-rw-r--r--src/Patchage.cpp22
3 files changed, 27 insertions, 6 deletions
diff --git a/src/Configuration.cpp b/src/Configuration.cpp
index 78a66d8..3c4b5f0 100644
--- a/src/Configuration.cpp
+++ b/src/Configuration.cpp
@@ -37,6 +37,7 @@ Configuration::Configuration()
: _window_location(0, 0)
, _window_size(640, 480)
, _zoom(1.0)
+ , _font_size(12.0)
{
_port_colors[JACK_AUDIO] = _default_port_colors[JACK_AUDIO] = 0x244678FF;
_port_colors[JACK_MIDI] = _default_port_colors[JACK_MIDI] = 0x960909FF;
@@ -176,6 +177,8 @@ Configuration::load()
file >> _window_size.x >> _window_size.y;
} else if (key == "zoom_level") {
file >> _zoom;
+ } else if (key == "font_size") {
+ file >> _font_size;
} else if (key == "port_color") {
std::string type_name;
uint32_t rgba;
@@ -271,6 +274,7 @@ Configuration::save()
file << "window_location " << _window_location.x << " " << _window_location.y << std::endl;
file << "window_size " << _window_size.x << " " << _window_size.y << std::endl;
file << "zoom_level " << _zoom << std::endl;
+ file << "font_size " << _font_size << std::endl;
file << std::hex << std::uppercase;
for (int i = 0; i < N_PORT_TYPES; ++i) {
diff --git a/src/Configuration.hpp b/src/Configuration.hpp
index 34b1595..1fc786b 100644
--- a/src/Configuration.hpp
+++ b/src/Configuration.hpp
@@ -51,8 +51,10 @@ public:
void set_module_split(const std::string& name, bool split);
bool get_module_split(const std::string& name, bool default_val) const;
- float get_zoom() { return _zoom; }
- void set_zoom(float zoom) { _zoom = zoom; }
+ float get_zoom() const { return _zoom; }
+ void set_zoom(float zoom) { _zoom = zoom; }
+ float get_font_size() const { return _font_size; }
+ void set_font_size(float font_size) { _font_size = font_size; }
uint32_t get_port_color(PortType type) const { return _port_colors[type]; }
void set_port_color(PortType type, uint32_t rgba) {
@@ -81,6 +83,7 @@ private:
Coord _window_location;
Coord _window_size;
float _zoom;
+ float _font_size;
};
#endif // PATCHAGE_CONFIGURATION_HPP
diff --git a/src/Patchage.cpp b/src/Patchage.cpp
index 10acaed..570e979 100644
--- a/src/Patchage.cpp
+++ b/src/Patchage.cpp
@@ -226,7 +226,10 @@ Patchage::Patchage(int argc, char** argv)
_canvas->widget().show();
_main_win->present();
+ _conf->set_font_size(_canvas->get_default_font_size());
_conf->load();
+ _canvas->set_zoom(_conf->get_zoom());
+ _canvas->set_font_size(_conf->get_font_size());
_main_win->resize(
static_cast<int>(_conf->get_window_size().x),
@@ -283,6 +286,7 @@ Patchage::Patchage(int argc, char** argv)
Patchage::~Patchage()
{
store_window_location();
+ _conf->set_zoom(_canvas->get_zoom()); // Can be changed by ganv
_conf->save();
#if defined(PATCHAGE_LIBJACK) || defined(HAVE_JACK_DBUS)
@@ -626,37 +630,47 @@ Patchage::on_help_about()
void
Patchage::on_zoom_in()
{
- _canvas->set_zoom(_canvas->get_zoom() + 0.1);
+ const float zoom = _canvas->get_zoom() * 1.25;
+ _canvas->set_zoom(zoom);
+ _conf->set_zoom(zoom);
}
void
Patchage::on_zoom_out()
{
- _canvas->set_zoom(_canvas->get_zoom() - 0.1);
+ const float zoom = _canvas->get_zoom() * 0.75;
+ _canvas->set_zoom(zoom);
+ _conf->set_zoom(zoom);
}
void
Patchage::on_zoom_normal()
{
_canvas->set_zoom(1.0);
+ _conf->set_zoom(1.0);
}
void
Patchage::on_increase_font_size()
{
- _canvas->set_font_size(_canvas->get_font_size() + 1.0);
+ const float points = _canvas->get_font_size() + 1.0;
+ _canvas->set_font_size(points);
+ _conf->set_font_size(points);
}
void
Patchage::on_decrease_font_size()
{
- _canvas->set_font_size(_canvas->get_font_size() - 1.0);
+ const float points = _canvas->get_font_size() - 1.0;
+ _canvas->set_font_size(points);
+ _conf->set_font_size(points);
}
void
Patchage::on_normal_font_size()
{
_canvas->set_font_size(_canvas->get_default_font_size());
+ _conf->set_font_size(_canvas->get_default_font_size());
}
static inline guint