Author: Carlos Lopez <genet...@gmail.com>
Date:   Sun Feb 17 13:41:38 2013 +0100

Add option at Setup dialog to choose Cairo render on Navigator

---

 synfig-studio/src/gui/app.cpp                  |   15 +++++++++++++++
 synfig-studio/src/gui/app.h                    |    1 +
 synfig-studio/src/gui/dialogs/dialog_setup.cpp |    8 ++++++++
 synfig-studio/src/gui/dialogs/dialog_setup.h   |    1 +
 4 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/synfig-studio/src/gui/app.cpp b/synfig-studio/src/gui/app.cpp
index 4de6c99..27a94dc 100644
--- a/synfig-studio/src/gui/app.cpp
+++ b/synfig-studio/src/gui/app.cpp
@@ -291,6 +291,7 @@ String studio::App::browser_command("open"); // MacOS only
 String studio::App::browser_command("xdg-open"); // Linux XDG standard
 #endif
 String studio::App::sequence_separator(".");
+bool studio::App::navigator_uses_cairo(false);
 
 static int max_recent_files_=25;
 int studio::App::get_max_recent_files() { return max_recent_files_; }
@@ -594,6 +595,11 @@ public:
                                value=App::sequence_separator;
                                return true;
                        }
+                       if(key=="navigator_uses_cairo")
+                       {
+                               value=App::navigator_uses_cairo;
+                               return true;
+                       }
                }
                catch(...)
                {
@@ -712,6 +718,13 @@ public:
                        if(key=="sequence_separator")
                        {
                                App::sequence_separator=value;
+                               return true;
+                       }
+                       if(key=="navigator_uses_cairo")
+                       {
+                               int i(atoi(value.c_str()));
+                               App::navigator_uses_cairo=i;
+                               return true;
                        }
                }
                catch(...)
@@ -743,6 +756,7 @@ public:
                ret.push_back("preferred_fps");
                ret.push_back("predefined_fps");
                ret.push_back("sequence_separator");
+               ret.push_back("navigator_uses_cairo");
                return ret;
        }
 };
@@ -1861,6 +1875,7 @@ App::reset_initial_preferences()
        synfigapp::Main::settings().set_value("pref.preferred_fps","24.0");
        
synfigapp::Main::settings().set_value("pref.predefined_fps",DEFAULT_PREDEFINED_FPS);
        synfigapp::Main::settings().set_value("sequence_separator", ".");
+       synfigapp::Main::settings().set_value("navigator_uses_cairo", "0");
 }
 
 bool
diff --git a/synfig-studio/src/gui/app.h b/synfig-studio/src/gui/app.h
index 8261808..a41dd1f 100644
--- a/synfig-studio/src/gui/app.h
+++ b/synfig-studio/src/gui/app.h
@@ -207,6 +207,7 @@ public:
        static synfig::String predefined_fps;
        static float preferred_fps;
        static synfig::String sequence_separator;
+       static bool navigator_uses_cairo;
        /*
  -- ** -- S I G N A L S -------------------------------------------------------
        */
diff --git a/synfig-studio/src/gui/dialogs/dialog_setup.cpp 
b/synfig-studio/src/gui/dialogs/dialog_setup.cpp
index c3f346a..5be5a6c 100644
--- a/synfig-studio/src/gui/dialogs/dialog_setup.cpp
+++ b/synfig-studio/src/gui/dialogs/dialog_setup.cpp
@@ -298,6 +298,8 @@ Dialog_Setup::Dialog_Setup():
        // Render - Image sequence separator
        attach_label(render_table, _("Image Sequence Separator String"), 0, 
xpadding, ypadding);
        render_table->attach(image_sequence_separator, 1, 2, 0, 1, 
Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, xpadding, ypadding);
+       attach_label(render_table, _("Use Cairo render on NAvigator"), 1, 
xpadding, ypadding);
+       render_table->attach(toggle_navigator_uses_cairo, 1, 2, 1, 2, 
Gtk::EXPAND|Gtk::FILL, Gtk::SHRINK|Gtk::FILL, xpadding, ypadding);
 
        show_all_children();
 }
@@ -366,6 +368,9 @@ Dialog_Setup::on_apply_pressed()
        // Set the preferred image sequence separator
        App::sequence_separator=image_sequence_separator.get_text();
 
+       // Set the navigator uses cairo flag
+       App::navigator_uses_cairo=toggle_navigator_uses_cairo.get_active();
+
        App::save_settings();
 
        App::setup_changed();
@@ -516,6 +521,9 @@ Dialog_Setup::refresh()
 
        //Refresh the sequence separator
        image_sequence_separator.set_text(App::sequence_separator);
+
+       // Refresh the status of the navigator_uses_cairo flag
+       toggle_navigator_uses_cairo.set_active(App::navigator_uses_cairo);
 }
 
 GammaPattern::GammaPattern():
diff --git a/synfig-studio/src/gui/dialogs/dialog_setup.h 
b/synfig-studio/src/gui/dialogs/dialog_setup.h
index 519ec38..b4af059 100644
--- a/synfig-studio/src/gui/dialogs/dialog_setup.h
+++ b/synfig-studio/src/gui/dialogs/dialog_setup.h
@@ -203,6 +203,7 @@ class Dialog_Setup : public Gtk::Dialog
        Gtk::SpinButton* pref_x_size_spinbutton;
 
        Gtk::Entry image_sequence_separator;
+       Gtk::CheckButton toggle_navigator_uses_cairo;
 public:
 
        void set_time_format(synfig::Time::Format time_format);


------------------------------------------------------------------------------
The Go Parallel Website, sponsored by Intel - in partnership with Geeknet, 
is your hub for all things parallel software development, from weekly thought 
leadership blogs to news, videos, case studies, tutorials, tech docs, 
whitepapers, evaluation guides, and opinion stories. Check out the most 
recent posts - join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Synfig-devl mailing list
Synfig-devl@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to