summaryrefslogtreecommitdiffstats
path: root/src/ui/widget/preferences-widget.cpp
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2007-09-26 07:44:18 +0000
committerjoncruz <joncruz@users.sourceforge.net>2007-09-26 07:44:18 +0000
commit05745991b3fd17634af5c2001c381b950be6a99a (patch)
tree9c316452326d7ee7403c6396b6b85dc5a536b5f1 /src/ui/widget/preferences-widget.cpp
parentfix 1802374, 1736088 (diff)
downloadinkscape-05745991b3fd17634af5c2001c381b950be6a99a.tar.gz
inkscape-05745991b3fd17634af5c2001c381b950be6a99a.zip
Changed preference to use file chooser button
(bzr r3806)
Diffstat (limited to 'src/ui/widget/preferences-widget.cpp')
-rw-r--r--src/ui/widget/preferences-widget.cpp56
1 files changed, 35 insertions, 21 deletions
diff --git a/src/ui/widget/preferences-widget.cpp b/src/ui/widget/preferences-widget.cpp
index 4de42f36f..243fe029d 100644
--- a/src/ui/widget/preferences-widget.cpp
+++ b/src/ui/widget/preferences-widget.cpp
@@ -8,7 +8,7 @@
* Copyright (C) 2004, 2006, 2007 Authors
*
* Released under GNU GPL. Read the file 'COPYING' for more information.
- */
+ */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -47,11 +47,11 @@ DialogPage::DialogPage()
void DialogPage::add_line(bool indent, const Glib::ustring label, Gtk::Widget& widget, const Glib::ustring suffix, const Glib::ustring& tip, bool expand_widget)
{
- int start_col;
+ int start_col;
int row = this->property_n_rows();
Gtk::Widget* w;
if (expand_widget)
- {
+ {
w = &widget;
}
else
@@ -86,7 +86,7 @@ void DialogPage::add_line(bool indent, const Glib::ustring label, Gtk::Widget& w
alignment->set_padding(0, 0, 12, 0);
alignment->add(*w);
this->attach(*alignment, start_col, 2, row, row + 1, Gtk::FILL | Gtk::EXPAND, Gtk::AttachOptions(), 0, 0);
- }
+ }
else
{
this->attach(*w, start_col, 2, row, row + 1, Gtk::FILL | Gtk::EXPAND, Gtk::AttachOptions(), 0, 0);
@@ -100,7 +100,7 @@ void DialogPage::add_line(bool indent, const Glib::ustring label, Gtk::Widget& w
else
((Gtk::HBox*)w)->pack_start(*suffix_widget,false,false);
}
-
+
if (tip != "")
{
_tooltips.set_tip (widget, tip);
@@ -113,11 +113,11 @@ void DialogPage::add_group_header(Glib::ustring name)
int row = this->property_n_rows();
if (name != "")
{
- Gtk::Label* label_widget = Gtk::manage(new Gtk::Label(Glib::ustring(/*"<span size='large'>*/"<b>") + name +
+ Gtk::Label* label_widget = Gtk::manage(new Gtk::Label(Glib::ustring(/*"<span size='large'>*/"<b>") + name +
Glib::ustring("</b>"/*</span>"*/) , Gtk::ALIGN_LEFT , Gtk::ALIGN_CENTER, true));
label_widget->set_use_markup(true);
this->attach(*label_widget , 0, 4, row, row + 1, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
- if (row != 1)
+ if (row != 1)
this->set_row_spacing(row - 1, 18);
}
}
@@ -127,7 +127,7 @@ void DialogPage::set_tip(Gtk::Widget& widget, const Glib::ustring& tip)
_tooltips.set_tip (widget, tip);
}
-void PrefCheckButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
+void PrefCheckButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
bool default_value)
{
_prefs_path = prefs_path;
@@ -139,21 +139,22 @@ void PrefCheckButton::init(const Glib::ustring& label, const std::string& prefs_
void PrefCheckButton::on_toggled()
{
if (this->is_visible()) //only take action if the user toggled it
- {
+ {
prefs_set_int_attribute (_prefs_path.c_str(), _attr.c_str(), (int) this->get_active());
}
}
-void PrefRadioButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
+void PrefRadioButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
const std::string& string_value, bool default_value, PrefRadioButton* group_member)
{
+ (void)default_value;
_value_type = VAL_STRING;
_prefs_path = prefs_path;
_attr = attr;
_string_value = string_value;
this->set_label(label);
if (group_member)
- {
+ {
Gtk::RadioButtonGroup rbg = group_member->get_group();
this->set_group(rbg);
}
@@ -164,7 +165,7 @@ void PrefRadioButton::init(const Glib::ustring& label, const std::string& prefs_
this->set_active( false );
}
-void PrefRadioButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
+void PrefRadioButton::init(const Glib::ustring& label, const std::string& prefs_path, const std::string& attr,
int int_value, bool default_value, PrefRadioButton* group_member)
{
_value_type = VAL_INT;
@@ -173,7 +174,7 @@ void PrefRadioButton::init(const Glib::ustring& label, const std::string& prefs_
_int_value = int_value;
this->set_label(label);
if (group_member)
- {
+ {
Gtk::RadioButtonGroup rbg = group_member->get_group();
this->set_group(rbg);
}
@@ -187,16 +188,16 @@ void PrefRadioButton::on_toggled()
{
this->changed_signal.emit(this->get_active());
if (this->is_visible() && this->get_active() ) //only take action if toggled by user (to active)
- {
+ {
if ( _value_type == VAL_STRING )
- prefs_set_string_attribute ( _prefs_path.c_str(), _attr.c_str(), _string_value.c_str());
+ prefs_set_string_attribute ( _prefs_path.c_str(), _attr.c_str(), _string_value.c_str());
else if ( _value_type == VAL_INT )
- prefs_set_int_attribute ( _prefs_path.c_str(), _attr.c_str(), _int_value);
+ prefs_set_int_attribute ( _prefs_path.c_str(), _attr.c_str(), _int_value);
}
}
void PrefSpinButton::init(const std::string& prefs_path, const std::string& attr,
- double lower, double upper, double step_increment, double page_increment,
+ double lower, double upper, double step_increment, double page_increment,
double default_value, bool is_int, bool is_percent)
{
_prefs_path = prefs_path;
@@ -204,7 +205,7 @@ void PrefSpinButton::init(const std::string& prefs_path, const std::string& attr
_is_int = is_int;
_is_percent = is_percent;
- double value;
+ double value;
if (is_int)
if (is_percent)
value = 100 * prefs_get_double_attribute_limited (prefs_path.c_str(), attr.c_str(), default_value, lower/100.0, upper/100.0);
@@ -218,7 +219,7 @@ void PrefSpinButton::init(const std::string& prefs_path, const std::string& attr
this->set_numeric();
this->set_value (value);
this->set_width_chars(6);
- if (is_int)
+ if (is_int)
this->set_digits(0);
else if (step_increment < 0.1)
this->set_digits(4);
@@ -230,7 +231,7 @@ void PrefSpinButton::init(const std::string& prefs_path, const std::string& attr
void PrefSpinButton::on_value_changed()
{
if (this->is_visible()) //only take action if user changed value
- {
+ {
if (_is_int)
if (_is_percent)
prefs_set_double_attribute(_prefs_path.c_str(), _attr.c_str(), this->get_value()/100.0);
@@ -262,7 +263,7 @@ void PrefCombo::init(const std::string& prefs_path, const std::string& attr,
void PrefCombo::on_changed()
{
if (this->is_visible()) //only take action if user changed value
- {
+ {
prefs_set_int_attribute (_prefs_path.c_str(), _attr.c_str(), _values[this->get_active_row_number()]);
}
}
@@ -306,6 +307,19 @@ void PrefEntryButtonHBox::onRelatedButtonClickedCallback()
}
+void PrefFileButton::init(const std::string& prefs_path, const std::string& attr)
+{
+ _prefs_path = prefs_path;
+ _attr = attr;
+ select_filename(Glib::filename_from_utf8(prefs_get_string_attribute(_prefs_path.c_str(), _attr.c_str())));
+
+ signal_selection_changed().connect(sigc::mem_fun(*this, &PrefFileButton::onFileChanged));
+}
+
+void PrefFileButton::onFileChanged()
+{
+ prefs_set_string_attribute(_prefs_path.c_str(), _attr.c_str(), Glib::filename_to_utf8(get_filename()).c_str());
+}
void PrefEntry::init(const std::string& prefs_path, const std::string& attr,
bool visibility)