aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeandro A. F. Pereira <leandro@hardinfo.org>2007-10-21 15:36:04 +0000
committerLeandro A. F. Pereira <leandro@hardinfo.org>2007-10-21 15:36:04 +0000
commita1db645416cc1ce6a0e775fc2a508695d3608868 (patch)
tree763ee77b5e91cd056bdaa27fc4a1be7f1f6379be
parent90b5d774145be3f0929588b751c935e465cb5a44 (diff)
Disable Network Updater if there are no entries to be updated.
-rw-r--r--hardinfo2/iconcache.c2
-rw-r--r--hardinfo2/shell.c5
-rw-r--r--hardinfo2/syncmanager.c5
-rw-r--r--hardinfo2/syncmanager.h1
4 files changed, 12 insertions, 1 deletions
diff --git a/hardinfo2/iconcache.c b/hardinfo2/iconcache.c
index af4f98c0..ed7ce209 100644
--- a/hardinfo2/iconcache.c
+++ b/hardinfo2/iconcache.c
@@ -26,6 +26,8 @@ void icon_cache_init(void)
DEBUG("initializing icon cache");
if (!cache) {
cache = g_hash_table_new(g_str_hash, g_str_equal);
+ } else {
+ DEBUG("already initialized? huh?");
}
}
diff --git a/hardinfo2/shell.c b/hardinfo2/shell.c
index 180dcc0e..db3a6155 100644
--- a/hardinfo2/shell.c
+++ b/hardinfo2/shell.c
@@ -24,6 +24,7 @@
#include <hardinfo.h>
#include <shell.h>
+#include <syncmanager.h>
#include <iconcache.h>
#include <menu.h>
#include <stock.h>
@@ -104,7 +105,7 @@ void shell_action_set_property(const gchar * action_name,
void shell_action_set_enabled(const gchar * action_name, gboolean setting)
{
- if (params.gui_running) {
+ if (params.gui_running && shell->action_group) {
GtkAction *action;
action =
@@ -587,6 +588,8 @@ void shell_init(GSList * modules)
shell_action_set_enabled("SaveGraphAction", FALSE);
shell_action_set_active("SidePaneAction", TRUE);
shell_action_set_active("ToolbarAction", TRUE);
+
+ shell_action_set_enabled("SyncManagerAction", sync_manager_count_entries() > 0);
}
static gboolean update_field(gpointer data)
diff --git a/hardinfo2/syncmanager.c b/hardinfo2/syncmanager.c
index 1ba36377..ad075a1d 100644
--- a/hardinfo2/syncmanager.c
+++ b/hardinfo2/syncmanager.c
@@ -94,6 +94,11 @@ static void sync_dialog_netarea_start_actions(SyncDialog * sd,
#endif /* HAS_LIBSOUP */
+gint sync_manager_count_entries(void)
+{
+ return g_slist_length(entries);
+}
+
void sync_manager_add_entry(SyncEntry * entry)
{
#ifdef HAS_LIBSOUP
diff --git a/hardinfo2/syncmanager.h b/hardinfo2/syncmanager.h
index 78ca2153..93e238d7 100644
--- a/hardinfo2/syncmanager.h
+++ b/hardinfo2/syncmanager.h
@@ -36,5 +36,6 @@ struct _SyncEntry {
void sync_manager_add_entry(SyncEntry *entry);
void sync_manager_show(void);
+gint sync_manager_count_entries(void);
#endif /* __SYNCMANAGER_H__ */