gnome-commander r2318 - in branches/gcmd-1-3: . doc/C po src
- From: epiotr svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-commander r2318 - in branches/gcmd-1-3: . doc/C po src
- Date: Thu, 27 Nov 2008 18:16:36 +0000 (UTC)
Author: epiotr
Date: Thu Nov 27 18:16:35 2008
New Revision: 2318
URL: http://svn.gnome.org/viewvc/gnome-commander?rev=2318&view=rev
Log:
Use XML cfg for storing advrename settings
Modified:
branches/gcmd-1-3/ChangeLog
branches/gcmd-1-3/doc/C/gnome-commander.xml
branches/gcmd-1-3/po/POTFILES.in
branches/gcmd-1-3/src/Makefile.am
branches/gcmd-1-3/src/gnome-cmd-advrename-dialog.cc
branches/gcmd-1-3/src/gnome-cmd-data.cc
branches/gcmd-1-3/src/gnome-cmd-data.h
Modified: branches/gcmd-1-3/doc/C/gnome-commander.xml
==============================================================================
--- branches/gcmd-1-3/doc/C/gnome-commander.xml (original)
+++ branches/gcmd-1-3/doc/C/gnome-commander.xml Thu Nov 27 18:16:35 2008
@@ -5163,13 +5163,6 @@
</row>
<row valign="top">
<entry><para></para></entry>
- <entry><para>rename-history-size</para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
<entry><para>right_mouse_button_mode</para></entry>
<entry><para></para></entry>
<entry><para></para></entry>
@@ -5511,41 +5504,6 @@
<entry><para></para></entry>
</row>
<row valign="top">
- <entry><para>[advrename]</para></entry>
- <entry><para>height</para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para><xref linkend="gnome-commander-advanced-rename"/></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
- <entry><para>width</para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
- <entry><para>counter_start</para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
- <entry><para>counter_precision</para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
- <entry><para>counter_increment</para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
<entry><para>[local_bookmarks]</para></entry>
<entry><para>count</para></entry>
<entry><para></para></entry>
@@ -5588,55 +5546,6 @@
<entry><para></para></entry>
</row>
<row valign="top">
- <entry><para>[template-history]</para></entry>
- <entry><para>size</para></entry>
- <entry><para>integer</para></entry>
- <entry><para>Number of template<emphasis><subscript>n</subscript></emphasis> entries</para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
- <entry><para>template<emphasis><subscript>n</subscript></emphasis></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para>[rename-history]</para></entry>
- <entry><para>size</para></entry>
- <entry><para>integer</para></entry>
- <entry><para>Number of from/to/csens<emphasis><subscript>n</subscript></emphasis> entries</para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
- <entry><para>from<emphasis><subscript>n</subscript></emphasis></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
- <entry><para>to<emphasis><subscript>n</subscript></emphasis></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para></para></entry>
- <entry><para>csens<emphasis><subscript>n</subscript></emphasis></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
- <entry><para>[cmdline-history]</para></entry>
- <entry><para>line<emphasis><subscript>n</subscript></emphasis></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- <entry><para></para></entry>
- </row>
- <row valign="top">
<entry><para>[key-bindings]</para></entry>
<entry><para>[<shift>][<control>][<alt>][<win>]<emphasis>key_name</emphasis></para></entry>
<entry><para>string</para></entry>
Modified: branches/gcmd-1-3/po/POTFILES.in
==============================================================================
--- branches/gcmd-1-3/po/POTFILES.in (original)
+++ branches/gcmd-1-3/po/POTFILES.in Thu Nov 27 18:16:35 2008
@@ -48,8 +48,9 @@
src/gnome-cmd-smb-auth.cc
src/gnome-cmd-smb-path.cc
src/gnome-cmd-user-actions.cc
-src/gnome-cmd-xfer-progress-win.cc
src/gnome-cmd-xfer.cc
+src/gnome-cmd-xfer-progress-win.cc
+src/gnome-cmd-xml-config.cc
src/imageloader.cc
src/intviewer/cp437.cc
src/intviewer/datapresentation.cc
Modified: branches/gcmd-1-3/src/Makefile.am
==============================================================================
--- branches/gcmd-1-3/src/Makefile.am (original)
+++ branches/gcmd-1-3/src/Makefile.am Thu Nov 27 18:16:35 2008
@@ -77,8 +77,9 @@
gnome-cmd-treeview.h gnome-cmd-treeview.cc \
gnome-cmd-types.h \
gnome-cmd-user-actions.h gnome-cmd-user-actions.cc \
- gnome-cmd-xfer-progress-win.h gnome-cmd-xfer-progress-win.cc \
gnome-cmd-xfer.h gnome-cmd-xfer.cc \
+ gnome-cmd-xfer-progress-win.h gnome-cmd-xfer-progress-win.cc \
+ gnome-cmd-xml-config.h gnome-cmd-xml-config.cc \
handle.h \
history.h history.cc \
imageloader.cc imageloader.h \
Modified: branches/gcmd-1-3/src/gnome-cmd-advrename-dialog.cc
==============================================================================
--- branches/gcmd-1-3/src/gnome-cmd-advrename-dialog.cc (original)
+++ branches/gcmd-1-3/src/gnome-cmd-advrename-dialog.cc Thu Nov 27 18:16:35 2008
@@ -561,7 +561,7 @@
void GnomeCmdAdvrenameDialog::Private::on_counter_start_spin_value_changed (GtkWidget *spin, GnomeCmdAdvrenameDialog *dialog)
{
- dialog->defaults.counter_start = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
+ dialog->defaults.default_profile.counter_start = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
if (dialog->priv->template_has_counters)
dialog->update_new_filenames();
}
@@ -569,7 +569,7 @@
void GnomeCmdAdvrenameDialog::Private::on_counter_step_spin_value_changed (GtkWidget *spin, GnomeCmdAdvrenameDialog *dialog)
{
- dialog->defaults.counter_increment = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
+ dialog->defaults.default_profile.counter_step = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
if (dialog->priv->template_has_counters)
dialog->update_new_filenames();
}
@@ -577,7 +577,7 @@
void GnomeCmdAdvrenameDialog::Private::on_counter_digits_spin_value_changed (GtkWidget *spin, GnomeCmdAdvrenameDialog *dialog)
{
- dialog->defaults.counter_precision = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
+ dialog->defaults.default_profile.counter_width = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
if (dialog->priv->template_has_counters)
dialog->update_new_filenames();
}
@@ -699,7 +699,9 @@
void GnomeCmdAdvrenameDialog::Private::on_case_combo_changed (GtkComboBox *combo, GnomeCmdAdvrenameDialog *dialog)
{
- switch (gtk_combo_box_get_active (combo))
+ gint item = gtk_combo_box_get_active (combo);
+
+ switch (item)
{
case 0: dialog->priv->convert_case = gcmd_convert_unchanged; break;
case 1: dialog->priv->convert_case = gcmd_convert_lowercase; break;
@@ -712,13 +714,16 @@
return;
}
+ dialog->defaults.default_profile.case_conversion = item;
dialog->update_new_filenames();
}
void GnomeCmdAdvrenameDialog::Private::on_trim_combo_changed (GtkComboBox *combo, GnomeCmdAdvrenameDialog *dialog)
{
- switch (gtk_combo_box_get_active (combo))
+ gint item = gtk_combo_box_get_active (combo);
+
+ switch (item)
{
case 0: dialog->priv->trim_blanks = gcmd_convert_unchanged; break;
case 1: dialog->priv->trim_blanks = gcmd_convert_ltrim; break;
@@ -729,6 +734,7 @@
return;
}
+ dialog->defaults.default_profile.trim_blanks = item;
dialog->update_new_filenames();
}
@@ -1348,7 +1354,9 @@
void GnomeCmdAdvrenameDialog::update_new_filenames()
{
- gnome_cmd_advrename_reset_counter (defaults.counter_start, defaults.counter_precision, defaults.counter_increment);
+ gnome_cmd_advrename_reset_counter (defaults.default_profile.counter_start,
+ defaults.default_profile.counter_width,
+ defaults.default_profile.counter_step);
char buff[256];
GtkTreeIter i;
@@ -1441,9 +1449,9 @@
g_signal_connect (priv->template_combo, "changed", G_CALLBACK (Private::on_template_entry_changed), this);
// Counter
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->counter_start_spin), defaults.counter_start);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->counter_step_spin), defaults.counter_increment);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->counter_digits_spin), defaults.counter_precision);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->counter_start_spin), defaults.default_profile.counter_start);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->counter_step_spin), defaults.default_profile.counter_step);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->counter_digits_spin), defaults.default_profile.counter_width);
g_signal_connect (priv->counter_start_spin, "value-changed", G_CALLBACK (Private::on_counter_start_spin_value_changed), this);
g_signal_connect (priv->counter_step_spin, "value-changed", G_CALLBACK (Private::on_counter_step_spin_value_changed), this);
g_signal_connect (priv->counter_digits_spin, "value-changed", G_CALLBACK (Private::on_counter_digits_spin_value_changed), this);
@@ -1459,8 +1467,8 @@
g_signal_connect (priv->regex_remove_all_button, "clicked", G_CALLBACK (Private::on_regex_remove_all_btn_clicked), this);
// Case conversion & blank triming
- gtk_combo_box_set_active (GTK_COMBO_BOX (priv->case_combo), 0);
- gtk_combo_box_set_active (GTK_COMBO_BOX (priv->trim_combo), 3);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->case_combo), defaults.default_profile.case_conversion);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->trim_combo), defaults.default_profile.trim_blanks);
g_signal_connect (priv->case_combo, "changed", G_CALLBACK (Private::on_case_combo_changed), this);
g_signal_connect (priv->trim_combo, "changed", G_CALLBACK (Private::on_trim_combo_changed), this);
Modified: branches/gcmd-1-3/src/gnome-cmd-data.cc
==============================================================================
--- branches/gcmd-1-3/src/gnome-cmd-data.cc (original)
+++ branches/gcmd-1-3/src/gnome-cmd-data.cc Thu Nov 27 18:16:35 2008
@@ -33,6 +33,7 @@
#include "gnome-cmd-main-win.h"
#include "gnome-cmd-advrename-dialog.h"
#include "gnome-cmd-bookmark-dialog.h"
+#include "gnome-cmd-xml-config.h"
#include "filter.h"
#include "utils.h"
@@ -89,6 +90,17 @@
DICT<guint> gdk_modifiers_names;
+void GnomeCmdData::AdvrenameConfig::Profile::reset()
+{
+ name.clear();
+ template_string.clear();
+ regexes.clear();
+ counter_start = counter_width = counter_step = 1;
+ case_conversion = 0;
+ trim_blanks = 3;
+}
+
+
inline gint get_int (const gchar *path, int def)
{
gboolean b = FALSE;
@@ -831,57 +843,6 @@
}
-inline void GnomeCmdData::save_rename_history()
-{
- GList *from = NULL;
- GList *to = NULL;
- GList *csens = NULL;
-
- GtkTreeIter i;
-
- for (gboolean valid_iter=gtk_tree_model_get_iter_first (advrename_defaults.regexes, &i); valid_iter; valid_iter=gtk_tree_model_iter_next (advrename_defaults.regexes, &i))
- {
- GnomeCmdAdvrenameDialog::Regex *rx;
-
- gtk_tree_model_get (advrename_defaults.regexes, &i,
- GnomeCmdAdvrenameDialog::COL_REGEX, &rx,
- -1);
- if (!rx)
- continue;
-
- from = g_list_append (from, const_cast <char *> (rx->from.c_str()));
- to = g_list_append (to, const_cast <char *> (rx->to.c_str()));
- csens = g_list_append (csens, (gpointer) (rx->case_sensitive ? "T" : "F"));
- }
-
- gnome_cmd_data_set_int ("/advrename/width", advrename_defaults.width);
- gnome_cmd_data_set_int ("/advrename/height", advrename_defaults.height);
-
- gnome_cmd_data_set_int ("/template-history/size", advrename_defaults.templates.size());
- gnome_cmd_data_set_string_history ("/template-history/template%d", advrename_defaults.templates.ents);
-
- gnome_cmd_data_set_int ("/advrename/counter_start", advrename_defaults.counter_start);
- gnome_cmd_data_set_int ("/advrename/counter_precision", advrename_defaults.counter_precision);
- gnome_cmd_data_set_int ("/advrename/counter_increment", advrename_defaults.counter_increment);
-
- gnome_cmd_data_set_int ("/rename-history/size", g_list_length (from));
- gnome_cmd_data_set_string_history ("/rename-history/from%d", from);
- gnome_cmd_data_set_string_history ("/rename-history/to%d", to);
- gnome_cmd_data_set_string_history ("/rename-history/csens%d", csens);
-
- // removing config data used by gcmd < 1.2.5
-
- gnome_config_clean_key (G_DIR_SEPARATOR_S PACKAGE "/options/template-auto-update");
- gnome_config_clean_key (G_DIR_SEPARATOR_S PACKAGE "/options/counter_start");
- gnome_config_clean_key (G_DIR_SEPARATOR_S PACKAGE "/options/counter_precision");
- gnome_config_clean_key (G_DIR_SEPARATOR_S PACKAGE "/options/counter_increment");
- gnome_config_clean_key (G_DIR_SEPARATOR_S PACKAGE "/options/rename-history-size");
- gnome_config_clean_section (G_DIR_SEPARATOR_S PACKAGE "/rename-history-from");
- gnome_config_clean_section (G_DIR_SEPARATOR_S PACKAGE "/rename-history-to");
- gnome_config_clean_section (G_DIR_SEPARATOR_S PACKAGE "/rename-history-csens");
-}
-
-
inline void GnomeCmdData::save_local_bookmarks()
{
GnomeCmdCon *con = gnome_cmd_con_list_get_home (priv->con_list);
@@ -1015,9 +976,9 @@
advrename_defaults.templates.ents = templates;
advrename_defaults.templates.pos = templates;
- advrename_defaults.counter_start = gnome_cmd_data_get_int ("/advrename/counter_start", 1);
- advrename_defaults.counter_precision = gnome_cmd_data_get_int ("/advrename/counter_precision", 1);
- advrename_defaults.counter_increment = gnome_cmd_data_get_int ("/advrename/counter_increment", 1);
+ advrename_defaults.default_profile.counter_start = gnome_cmd_data_get_int ("/advrename/counter_start", 1);
+ advrename_defaults.default_profile.counter_width = gnome_cmd_data_get_int ("/advrename/counter_precision", 1);
+ advrename_defaults.default_profile.counter_step = gnome_cmd_data_get_int ("/advrename/counter_increment", 1);
size = gnome_cmd_data_get_int ("/rename-history/size", 0);
@@ -1025,13 +986,6 @@
GList *tmp_to = to = load_string_history ("/rename-history/to%d", size);
GList *tmp_csens = csens = load_string_history ("/rename-history/csens%d", size);
- advrename_defaults.regexes = GTK_TREE_MODEL (gtk_list_store_new (GnomeCmdAdvrenameDialog::NUM_REGEX_COLS,
- G_TYPE_POINTER,
- G_TYPE_BOOLEAN,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_STRING));
-
for (GtkTreeIter iter; tmp_from && size > 0; --size)
{
GnomeCmdAdvrenameDialog::Regex *rx = new GnomeCmdAdvrenameDialog::Regex((gchar *) tmp_from->data,
@@ -1196,6 +1150,8 @@
void GnomeCmdData::load()
{
+ gchar *xml_cfg_path = g_build_path (G_DIR_SEPARATOR_S, g_get_home_dir (), "." PACKAGE, PACKAGE ".xml", NULL);
+
gchar *document_icon_dir = g_strdup_printf ("%s/share/pixmaps/document-icons/", GNOME_PREFIX);
gchar *theme_icon_dir = g_strdup_printf ("%s/mime-icons", PIXMAPS_DIR);
@@ -1401,7 +1357,31 @@
load_cmdline_history();
//load_dir_history ();
load_search_defaults();
- load_rename_history();
+
+ // FIXME: the regex list definitely needs to be created in GnomeCmdData::AdvrenameConfig::AdvrenameConfig() constructor
+ // Unfortunately, this can't be done now, as gnome_cmd_data is global and is constructed before main() - causing gcmd crash
+ // To be moved, when gnome_cmd_data is part of GnomeCmdMainWindow
+ advrename_defaults.regexes = GTK_TREE_MODEL (gtk_list_store_new (GnomeCmdAdvrenameDialog::NUM_REGEX_COLS,
+ G_TYPE_POINTER,
+ G_TYPE_BOOLEAN,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING));
+ if (!gnome_cmd_xml_config_load (xml_cfg_path, *this))
+ {
+ load_rename_history();
+
+ // add a few default templates here - for new users
+ AdvrenameConfig::Profile p;
+
+ p.name = "CamelCase";
+ p.template_string = "$N";
+ p.regexes.push_back(AdvrenameConfig::Profile::Regex("\\s*\\b(\\w)(\\w*)\\b", "\\u\\1\\L\\2\\E", FALSE));
+ p.regexes.push_back(AdvrenameConfig::Profile::Regex("\\.(.+)$", "\\L\\1", FALSE));
+
+ advrename_defaults.profiles.push_back(p);
+ }
+
load_intviewer_defaults();
load_auto_load_plugins();
@@ -1606,6 +1586,8 @@
};
load_data (gdk_modifiers_names, gdk_mod_names_data, G_N_ELEMENTS(gdk_mod_names_data));
+
+ g_free (xml_cfg_path);
}
@@ -1625,6 +1607,8 @@
void GnomeCmdData::save()
{
+ gchar *xml_cfg_path = g_build_path (G_DIR_SEPARATOR_S, g_get_home_dir (), "." PACKAGE, PACKAGE ".xml", NULL);
+
for (gint i=0; i<BOOKMARK_DIALOG_NUM_COLUMNS; i++)
{
gchar *tmp = g_strdup_printf ("/gnome-commander-size/column-widths/bookmark_dialog_col_width%d", i);
@@ -1756,13 +1740,15 @@
save_devices ("devices");
save_fav_apps ("fav-apps");
save_search_defaults();
- save_rename_history();
save_intviewer_defaults();
+ gnome_cmd_xml_config_save (xml_cfg_path, *this);
save_local_bookmarks();
save_smb_bookmarks();
save_auto_load_plugins();
gnome_config_sync ();
+
+ g_free (xml_cfg_path);
}
Modified: branches/gcmd-1-3/src/gnome-cmd-data.h
==============================================================================
--- branches/gcmd-1-3/src/gnome-cmd-data.h (original)
+++ branches/gcmd-1-3/src/gnome-cmd-data.h Thu Nov 27 18:16:35 2008
@@ -21,6 +21,9 @@
#ifndef __GNOME_CMD_DATA_H__
#define __GNOME_CMD_DATA_H__
+#include <vector>
+#include <string>
+
#include "gnome-cmd-app.h"
#include "gnome-cmd-types.h"
#include "gnome-cmd-file-list.h"
@@ -58,18 +61,48 @@
struct AdvrenameConfig
{
- History templates;
- GtkTreeModel *regexes;
+ struct Profile
+ {
+ struct Regex
+ {
+ std::string pattern;
+ std::string replace;
+ gboolean match_case;
+
+ Regex(): match_case(FALSE) {}
+ Regex(const gchar *from, const gchar *to, gboolean _match_case): pattern(from),
+ replace(to),
+ match_case(_match_case) {}
+ };
+
+ std::string name;
+ std::string template_string;
+ guint counter_start;
+ guint counter_width;
+ gint counter_step;
+
+ std::vector<Regex> regexes;
+
+ guint case_conversion;
+ guint trim_blanks;
+
+ void reset();
+
+ Profile(): counter_start(1), counter_width(1), counter_step(1),
+ case_conversion(0), trim_blanks(3) {}
+ };
- guint counter_start;
- gint counter_increment;
- guint counter_precision;
gint width, height;
- AdvrenameConfig(): templates(ADVRENAME_HISTORY_SIZE), regexes(NULL),
- counter_start(1), counter_increment(1), counter_precision(1), // defaults for
- width(600), height(400) {} // advrename settings
- ~AdvrenameConfig() { if (regexes) g_object_unref (regexes); }
+ Profile default_profile;
+ std::vector<Profile> profiles;
+
+ History templates;
+ GtkTreeModel *regexes;
+
+ AdvrenameConfig(): width(600), height(400),
+ templates(ADVRENAME_HISTORY_SIZE), regexes(NULL) {}
+ ~AdvrenameConfig() { if (regexes) g_object_unref (regexes); }
};
struct IntViewerConfig
@@ -112,7 +145,6 @@
void save_auto_load_plugins();
void save_cmdline_history();
void save_local_bookmarks();
- void save_rename_history();
void save_search_defaults();
void save_intviewer_defaults();
void save_smb_bookmarks();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]