[Xfce4-commits] r23428 - in xarchiver/branches/xarchiver-psybsd: . src
Stephan Arts
stephan at xfce.org
Mon Oct 16 07:40:14 UTC 2006
Author: stephan
Date: 2006-10-16 07:40:11 +0000 (Mon, 16 Oct 2006)
New Revision: 23428
Modified:
xarchiver/branches/xarchiver-psybsd/TODO
xarchiver/branches/xarchiver-psybsd/configure.in.in
xarchiver/branches/xarchiver-psybsd/src/Makefile.am
xarchiver/branches/xarchiver-psybsd/src/main.c
xarchiver/branches/xarchiver-psybsd/src/main_window.c
xarchiver/branches/xarchiver-psybsd/src/main_window.h
xarchiver/branches/xarchiver-psybsd/src/settings.c
xarchiver/branches/xarchiver-psybsd/src/settings.h
Log:
Add Configuration stuff.
Modified: xarchiver/branches/xarchiver-psybsd/TODO
===================================================================
--- xarchiver/branches/xarchiver-psybsd/TODO 2006-10-15 22:30:37 UTC (rev 23427)
+++ xarchiver/branches/xarchiver-psybsd/TODO 2006-10-16 07:40:11 UTC (rev 23428)
@@ -9,10 +9,10 @@
---------------------------------------------------------------
Make thunar-vfs dependency optional.
- (Can be replaced by an internal libmime)
+ Make libxfce4-util dependency optional.
+-+-+-+
- Implement UnRar Support object.
+ Add Settings support
+-+-+-+
Comment library functions
Modified: xarchiver/branches/xarchiver-psybsd/configure.in.in
===================================================================
--- xarchiver/branches/xarchiver-psybsd/configure.in.in 2006-10-15 22:30:37 UTC (rev 23427)
+++ xarchiver/branches/xarchiver-psybsd/configure.in.in 2006-10-16 07:40:11 UTC (rev 23428)
@@ -57,8 +57,12 @@
XDT_CHECK_OPTIONAL_PACKAGE([THUNAR_VFS], [thunar-vfs-1], [0.4.0], [thunar-vfs],
AC_HELP_STRING([--disable-thunar-vfs],
- [Disable the use Thunar's VFS layer)]))
+ [Disable the use of Thunar's VFS layer)]))
+XDT_CHECK_OPTIONAL_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.3.99], [libxfce4util],
+ AC_HELP_STRING([--disable-libxfce4util],
+ [Disable the use of libxfce4util)]))
+
dnl check for debugging support
XDT_FEATURE_DEBUG
Modified: xarchiver/branches/xarchiver-psybsd/src/Makefile.am
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/Makefile.am 2006-10-15 22:30:37 UTC (rev 23427)
+++ xarchiver/branches/xarchiver-psybsd/src/Makefile.am 2006-10-16 07:40:11 UTC (rev 23428)
@@ -16,7 +16,8 @@
xarchiver_CFLAGS = \
@GTK_CFLAGS@ \
@GLIB_CFLAGS@ \
- @THUNAR_VFS_CFLAGS@ \
+ $(THUNAR_VFS_CFLAGS) \
+ $(XFCE4UTIL_CFLAGS) \
-DDATADIR=\"$(datadir)\" \
-DSRCDIR=\"$(top_srcdir)\" \
-DLOCALEDIR=\"$(localedir)\"
Modified: xarchiver/branches/xarchiver-psybsd/src/main.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main.c 2006-10-15 22:30:37 UTC (rev 23427)
+++ xarchiver/branches/xarchiver-psybsd/src/main.c 2006-10-16 07:40:11 UTC (rev 23428)
@@ -23,6 +23,7 @@
#include <gettext.h>
+#include "settings.h"
#include "new_dialog.h"
#include "add_dialog.h"
#include "extract_dialog.h"
Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c 2006-10-15 22:30:37 UTC (rev 23427)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c 2006-10-16 07:40:11 UTC (rev 23428)
@@ -28,6 +28,7 @@
#include <libxarchiver/mime.h>
#include <gettext.h>
+#include "settings.h"
#include "archive_store.h"
#include "navigation_bar.h"
#include "tool_bar.h"
@@ -52,6 +53,8 @@
xa_main_window_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void
xa_main_window_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
+static void
+xa_main_window_finalize(GObject *object);
gboolean
xa_main_window_add_item(LXAEntry *entry, gpointer data);
@@ -61,7 +64,6 @@
void
xa_main_window_reset_columns(XAMainWindow *window);
-
void
xa_main_window_archive_destroyed(LXAArchive *archive, XAMainWindow *window);
@@ -106,6 +108,7 @@
object_class->set_property = xa_main_window_set_property;
object_class->get_property = xa_main_window_get_property;
+ object_class->finalize = xa_main_window_finalize;
pspec = g_param_spec_boolean("show_icons",
_("Show icons"),
@@ -116,6 +119,20 @@
}
static void
+xa_main_window_finalize(GObject *object)
+{
+ XAMainWindow *window = XA_MAIN_WINDOW(object);
+ xa_settings_set_group(window->settings, "Global");
+ if(!window->navigationbar)
+ xa_settings_write_entry(window->settings, "NavigationBar", "None");
+ if(G_OBJECT_TYPE(window->navigationbar) == XA_TYPE_PATH_BAR)
+ xa_settings_write_entry(window->settings, "NavigationBar", "PathBar");
+ if(G_OBJECT_TYPE(window->navigationbar) == XA_TYPE_TOOL_BAR)
+ xa_settings_write_entry(window->settings, "NavigationBar", "ToolBar");
+ xa_settings_save(window->settings);
+}
+
+static void
xa_main_window_init(XAMainWindow *window)
{
GtkWidget *main_vbox;
@@ -124,12 +141,15 @@
GtkToolItem *tool_separator;
GtkWidget *tmp_image;
GtkAccelGroup *accel_group = gtk_accel_group_new();
+ const gchar *nav_bar;
window->working_node = NULL;
window->parent_node = g_new0(GValue, 1);
window->parent_node = g_value_init(window->parent_node, G_TYPE_STRING);
g_value_set_string(window->parent_node, "..");
+ window->settings = xa_settings_new(NULL);
+
main_vbox = gtk_vbox_new(FALSE, 0);
menubar = gtk_menu_bar_new();
@@ -255,10 +275,18 @@
g_signal_connect(G_OBJECT(window->toolbar.tool_item_stop), "clicked", G_CALLBACK(cb_xa_main_stop_archive), window);
- //window->navigationbar = xa_tool_bar_new(NULL);
- window->navigationbar = xa_path_bar_new(NULL);
- gtk_container_set_border_width(GTK_CONTAINER(window->navigationbar), 3);
+ xa_settings_set_group(window->settings, "Global");
+ nav_bar = xa_settings_read_entry(window->settings, "NavigationBar", "PathBar");
+ if(!strcmp(nav_bar, "ToolBar"))
+ window->navigationbar = xa_tool_bar_new(NULL);
+ if(!strcmp(nav_bar, "PathBar"))
+ window->navigationbar = xa_path_bar_new(NULL);
+ if(!strcmp(nav_bar, "None"))
+ window->navigationbar = NULL;
+ if(window->navigationbar)
+ gtk_container_set_border_width(GTK_CONTAINER(window->navigationbar), 3);
+
/* main view */
window->scrollwindow = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(window->scrollwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -294,10 +322,14 @@
gtk_container_add(GTK_CONTAINER(window), main_vbox);
/* archive model */
- window->treemodel = xa_archive_store_new(NULL, TRUE, TRUE, window->icon_theme);
+ if(window->navigationbar)
+ window->treemodel = xa_archive_store_new(NULL, TRUE, FALSE, window->icon_theme);
+ else
+ window->treemodel = xa_archive_store_new(NULL, TRUE, TRUE, window->icon_theme);
xa_archive_store_connect_treeview(XA_ARCHIVE_STORE(window->treemodel), GTK_TREE_VIEW(window->treeview));
gtk_tree_view_set_model(GTK_TREE_VIEW(window->treeview), GTK_TREE_MODEL(window->treemodel));
- xa_navigation_bar_set_store(window->navigationbar, XA_ARCHIVE_STORE(window->treemodel));
+ if(window->navigationbar)
+ xa_navigation_bar_set_store(window->navigationbar, XA_ARCHIVE_STORE(window->treemodel));
}
GtkWidget *
Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.h 2006-10-15 22:30:37 UTC (rev 23427)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.h 2006-10-16 07:40:11 UTC (rev 23428)
@@ -56,6 +56,7 @@
GtkWidget *scrollwindow;
GtkWidget *statusbar;
XANavigationBar *navigationbar;
+ XASettings *settings;
struct {
GtkWidget *menu_item_archive;
GtkWidget *menu_archive;
Modified: xarchiver/branches/xarchiver-psybsd/src/settings.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/settings.c 2006-10-15 22:30:37 UTC (rev 23427)
+++ xarchiver/branches/xarchiver-psybsd/src/settings.c 2006-10-16 07:40:11 UTC (rev 23428)
@@ -19,6 +19,10 @@
#include <glib.h>
#include <glib-object.h>
+#ifdef HAVE_LIBXFCE4UTIL
+#include <libxfce4util/libxfce4util.h>
+#endif
+
#include "settings.h"
static void
@@ -55,7 +59,11 @@
static void
xa_settings_init(XASettings *object)
{
+#ifdef HAVE_LIBXFCE4UTIL
+ object->xfce_rc = (GObject *)xfce_rc_config_open(XFCE_RESOURCE_CONFIG, "xarchiver/xarchiverrc", FALSE);
+#else
+#endif /* HAVE_LIBXFCE4UTIL */
}
static void
@@ -65,12 +73,9 @@
}
XASettings *
-xa_settings_new(gchar *config_dir)
+xa_settings_new()
{
XASettings *object = g_object_new(XA_TYPE_SETTINGS, NULL);
- if(!config_dir)
- config_dir = "~/.config/";
- object->config_file = g_strconcat(config_dir, "/xarchiver/config.xml", NULL);
return object;
}
@@ -78,6 +83,51 @@
gboolean
xa_settings_load(XASettings *settings)
{
-// gint fd = g_open(settings->config_file, O_RDONLY, 0);
- return FALSE;
+#ifdef HAVE_LIBXFCE4UTIL
+
+#else
+
+#endif /* HAVE_LIBXFCE4UTIL */
+ return TRUE;
}
+
+gboolean
+xa_settings_save(XASettings *settings)
+{
+#ifdef HAVE_LIBXFCE4UTIL
+ xfce_rc_flush(XFCE_RC(settings->xfce_rc));
+#else
+
+#endif /* HAVE_LIBXFCE4UTIL */
+ return TRUE;
+}
+
+void
+xa_settings_set_group(XASettings *settings, const gchar *group)
+{
+#ifdef HAVE_LIBXFCE4UTIL
+ xfce_rc_set_group(XFCE_RC(settings->xfce_rc), group);
+#else
+
+#endif /* HAVE_LIBXFCE4UTIL */
+}
+
+void
+xa_settings_write_entry(XASettings *settings, const gchar *key, const gchar *value)
+{
+#ifdef HAVE_LIBXFCE4UTIL
+ xfce_rc_write_entry(XFCE_RC(settings->xfce_rc), key, value);
+#else
+
+#endif /* HAVE_LIBXFCE4UTIL */
+}
+
+const gchar *
+xa_settings_read_entry(XASettings *settings, const gchar *key, const gchar *fallback)
+{
+#ifdef HAVE_LIBXFCE4UTIL
+ return xfce_rc_read_entry(XFCE_RC(settings->xfce_rc), key, fallback);
+#else
+
+#endif /* HAVE_LIBXFCE4UTIL */
+}
Modified: xarchiver/branches/xarchiver-psybsd/src/settings.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/settings.h 2006-10-15 22:30:37 UTC (rev 23427)
+++ xarchiver/branches/xarchiver-psybsd/src/settings.h 2006-10-16 07:40:11 UTC (rev 23428)
@@ -45,6 +45,7 @@
{
GObject parent;
gchar *config_file;
+ GObject *xfce_rc;
};
typedef struct _XASettingsClass XASettingsClass;
@@ -54,11 +55,16 @@
GObjectClass parent;
};
-XASettings *xa_settings_new(gchar *config_dir);
-GType xa_settings_get_type ();
+XASettings *xa_settings_new();
+GType xa_settings_get_type ();
-gboolean xa_settings_load(XASettings *);
+gboolean xa_settings_load(XASettings *);
+gboolean xa_settings_save(XASettings *);
+const gchar *xa_settings_read_entry(XASettings *settings, const gchar *key, const gchar *fallback);
+void xa_settings_write_entry(XASettings *settings, const gchar *key, const gchar *value);
+void xa_settings_set_group(XASettings *settings, const gchar *group);
+
G_END_DECLS
#endif /* __XA_SETTINGS_H__ */
More information about the Xfce4-commits
mailing list