aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.am2
-rw-r--r--src/app-menu-item.c3
-rw-r--r--src/launcher-menu-item.c33
-rw-r--r--src/messages-service.c4
-rw-r--r--src/seen-db.c177
-rw-r--r--src/seen-db.h31
-rw-r--r--test/Makefile.am2
7 files changed, 15 insertions, 237 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 0f923c7..8d48047 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -48,8 +48,6 @@ indicator_messages_service_SOURCES = \
app-menu-item.h \
launcher-menu-item.c \
launcher-menu-item.h \
- seen-db.c \
- seen-db.h \
dirs.h \
dbus-data.h \
\
diff --git a/src/app-menu-item.c b/src/app-menu-item.c
index 3fb3ab8..f7b1469 100644
--- a/src/app-menu-item.c
+++ b/src/app-menu-item.c
@@ -30,7 +30,6 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include <libdbusmenu-glib/menuitem-proxy.h>
#include "app-menu-item.h"
#include "dbus-data.h"
-#include "seen-db.h"
enum {
COUNT_CHANGED,
@@ -325,8 +324,6 @@ desktop_cb (IndicateListener * listener, IndicateListenerServer * server, const
return;
}
- seen_db_add(value);
-
priv->appinfo = G_APP_INFO(g_desktop_app_info_new_from_filename(value));
g_return_if_fail(priv->appinfo != NULL);
diff --git a/src/launcher-menu-item.c b/src/launcher-menu-item.c
index 5e10da4..fd04f52 100644
--- a/src/launcher-menu-item.c
+++ b/src/launcher-menu-item.c
@@ -30,7 +30,6 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include <libindicator/indicator-desktop-shortcuts.h>
#include "launcher-menu-item.h"
#include "dbus-data.h"
-#include "seen-db.h"
enum {
NAME_CHANGED,
@@ -184,23 +183,21 @@ launcher_menu_item_new (const gchar * desktop_file)
g_signal_connect(G_OBJECT(self), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(activate_cb), NULL);
/* Start to build static shortcuts */
- if (seen_db_seen(desktop_file)) {
- priv->ids = indicator_desktop_shortcuts_new(priv->desktop, "Messaging Menu");
- const gchar ** nicks = indicator_desktop_shortcuts_get_nicks(priv->ids);
- gint i;
- for (i = 0; nicks[i] != NULL; i++) {
- DbusmenuMenuitem * mi = dbusmenu_menuitem_new();
- dbusmenu_menuitem_property_set(mi, DBUSMENU_MENUITEM_PROP_TYPE, APPLICATION_MENUITEM_TYPE);
- g_object_set_data(G_OBJECT(mi), NICK_DATA, (gpointer)nicks[i]);
-
- gchar *name = indicator_desktop_shortcuts_nick_get_name(priv->ids, nicks[i]);
- dbusmenu_menuitem_property_set(mi, DBUSMENU_MENUITEM_PROP_LABEL, name);
- g_free(name);
-
- g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(nick_activate_cb), self);
-
- priv->shortcuts = g_list_append(priv->shortcuts, mi);
- }
+ priv->ids = indicator_desktop_shortcuts_new(priv->desktop, "Messaging Menu");
+ const gchar ** nicks = indicator_desktop_shortcuts_get_nicks(priv->ids);
+ gint i;
+ for (i = 0; nicks[i] != NULL; i++) {
+ DbusmenuMenuitem * mi = dbusmenu_menuitem_new();
+ dbusmenu_menuitem_property_set(mi, DBUSMENU_MENUITEM_PROP_TYPE, APPLICATION_MENUITEM_TYPE);
+ g_object_set_data(G_OBJECT(mi), NICK_DATA, (gpointer)nicks[i]);
+
+ gchar *name = indicator_desktop_shortcuts_nick_get_name(priv->ids, nicks[i]);
+ dbusmenu_menuitem_property_set(mi, DBUSMENU_MENUITEM_PROP_LABEL, name);
+ g_free(name);
+
+ g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(nick_activate_cb), self);
+
+ priv->shortcuts = g_list_append(priv->shortcuts, mi);
}
/* Check to see if we should be eclipsed */
diff --git a/src/messages-service.c b/src/messages-service.c
index 078cee3..2188ab0 100644
--- a/src/messages-service.c
+++ b/src/messages-service.c
@@ -39,7 +39,6 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
#include "dbus-data.h"
#include "dirs.h"
#include "messages-service-dbus.h"
-#include "seen-db.h"
#include "status-items.h"
static IndicatorService * service = NULL;
@@ -1533,9 +1532,6 @@ main (int argc, char ** argv)
bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
textdomain (GETTEXT_PACKAGE);
- /* Create the Seen DB */
- seen_db_init();
-
/* Bring up the service DBus interface */
dbus_interface = message_service_dbus_new();
diff --git a/src/seen-db.c b/src/seen-db.c
deleted file mode 100644
index 57765cc..0000000
--- a/src/seen-db.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
-A small database of which desktop files we've seen.
-
-Copyright 2010 Canonical Ltd.
-
-Authors:
- Ted Gould <ted@canonical.com>
-
-This program is free software: you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 3, as published
-by the Free Software Foundation.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranties of
-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "seen-db.h"
-
-#define GROUP_NAME "Seen Database"
-#define KEY_NAME "DesktopFiles"
-
-GHashTable * seendb = NULL;
-gchar * filename = NULL;
-gchar * dirname = NULL;
-guint write_process = 0;
-
-/* Build the hashtable and then see if we have a keyfile that
- we can get the history of desktop files we've seen. */
-void
-seen_db_init(void)
-{
- g_return_if_fail(seendb == NULL);
-
- seendb = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
-
- /* Build the filename for the seen database. We're putting
- it in the cache directory because it could get deleted and
- it really wouldn't be a big deal. */
- if (dirname == NULL) {
- dirname = g_build_filename(g_get_user_cache_dir(), "indicators", "messages", NULL);
- }
- if (filename == NULL) {
- filename = g_build_filename(dirname, "seen-db.keyfile", NULL);
- }
-
- if (g_file_test(filename, G_FILE_TEST_EXISTS)) {
- GKeyFile * keyfile = g_key_file_new();
-
- /* Load from file */
- if (!g_key_file_load_from_file(keyfile, filename, G_KEY_FILE_NONE, NULL)) {
- g_key_file_free(keyfile);
- keyfile = NULL;
- }
-
- /* Check for keys */
- if (keyfile != NULL && !g_key_file_has_key(keyfile, GROUP_NAME, KEY_NAME, NULL)) {
- g_warning("Seen DB '%s' does not have key '%s' in group '%s'", filename, KEY_NAME, GROUP_NAME);
- g_key_file_free(keyfile);
- keyfile = NULL;
- }
-
- /* Grab them and put in DB */
- if (keyfile != NULL) {
- gchar ** desktops = g_key_file_get_string_list(keyfile, GROUP_NAME, KEY_NAME, NULL, NULL);
- gint i = 0;
-
- while (desktops[i] != NULL) {
- g_hash_table_insert(seendb,
- g_strdup(desktops[i]),
- GINT_TO_POINTER(TRUE));
- i++;
- }
-
- g_strfreev(desktops);
- }
-
- /* Clean up our file */
- if (keyfile != NULL) {
- g_key_file_free(keyfile);
- }
- }
-
- return;
-}
-
-/* A function to write out the seen database after it's been
- modified for a while. */
-static gboolean
-write_seen_db (gpointer user_data)
-{
- write_process = 0;
-
- /* Build up the key file */
- GKeyFile * keyfile = g_key_file_new();
- GArray * desktops = g_array_new(FALSE, FALSE, sizeof(gchar *));
-
- /* Get the keys from the hashtable and make them
- into an array */
- if (keyfile != NULL) {
- GList * desktop_keys = g_hash_table_get_keys(seendb);
- GList * head = NULL;
-
- for (head = desktop_keys; head != NULL; head = g_list_next(head)) {
- g_array_append_val(desktops, head->data);
- }
-
- g_list_free(desktop_keys);
- }
-
- /* Use the array to dump the strings into the keyfile */
- g_key_file_set_string_list(keyfile,
- GROUP_NAME,
- KEY_NAME,
- (const gchar * const *)desktops->data,
- desktops->len);
- g_array_free(desktops, TRUE);
-
- /* Dump the key file to string */
- gchar * keydump = NULL;
- gsize keydumplen = 0;
- keydump = g_key_file_to_data(keyfile, &keydumplen, NULL);
- g_key_file_free(keyfile);
-
- /* Ensure the directory exists */
- if (g_mkdir_with_parents(dirname, 0700) != 0) {
- g_warning("Unable to make directory: %s", dirname);
- g_free(keydump);
- return FALSE;
- }
-
- /* Dump out the file */
- GError * error = NULL;
- if (!g_file_set_contents(filename, keydump, keydumplen, &error)) {
- g_warning("Unable to write out file '%s': %s", filename, error->message);
- g_error_free(error);
- }
-
- /* Clean up */
- g_free(keydump);
-
- return FALSE;
-}
-
-/* Add a new desktop file to the seen database. Also sets up a timer
- to do the write out. */
-void
-seen_db_add (const gchar * desktop)
-{
- /* If this is a new one, let's set up the timer. If
- there's already one clear it. */
- if (!seen_db_seen(desktop)) {
- if (write_process != 0) {
- g_source_remove(write_process);
- write_process = 0;
- }
-
- write_process = g_timeout_add_seconds(60, write_seen_db, NULL);
- }
-
- g_hash_table_insert(seendb,
- g_strdup(desktop),
- GINT_TO_POINTER(TRUE));
-
- return;
-}
-
-/* Checks to see if a desktop file has been seen. */
-gboolean
-seen_db_seen (const gchar * desktop)
-{
- return GPOINTER_TO_INT(g_hash_table_lookup(seendb, desktop));
-}
diff --git a/src/seen-db.h b/src/seen-db.h
deleted file mode 100644
index a998ff0..0000000
--- a/src/seen-db.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-A small database of which desktop files we've seen.
-
-Copyright 2010 Canonical Ltd.
-
-Authors:
- Ted Gould <ted@canonical.com>
-
-This program is free software: you can redistribute it and/or modify it
-under the terms of the GNU General Public License version 3, as published
-by the Free Software Foundation.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranties of
-MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
-PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef SEEN_DB_H__
-#define SEEN_DB_H__ 1
-
-#include <glib.h>
-
-void seen_db_init(void);
-void seen_db_add (const gchar * desktop);
-gboolean seen_db_seen (const gchar * desktop);
-
-#endif /* SEEN_DB_H__ */
diff --git a/test/Makefile.am b/test/Makefile.am
index 09bd861..466de1e 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -43,7 +43,6 @@ libindicator_messages_service_la_HEADERS = \
$(top_srcdir)/src/im-menu-item.h \
$(top_srcdir)/src/app-menu-item.h \
$(top_srcdir)/src/launcher-menu-item.h \
- $(top_srcdir)/src/seen-db.h \
$(top_srcdir)/src/dirs.h \
$(top_srcdir)/src/dbus-data.h \
$(top_srcdir)/src/status-items.h
@@ -55,7 +54,6 @@ libindicator_messages_service_la_SOURCES = \
$(top_srcdir)/src/im-menu-item.c \
$(top_srcdir)/src/app-menu-item.c \
$(top_srcdir)/src/launcher-menu-item.c \
- $(top_srcdir)/src/seen-db.c \
$(top_srcdir)/src/status-items.c
libindicator_messages_service_ladir = \