gnome-utils r8256 - trunk/logview
- From: cosimoc svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-utils r8256 - trunk/logview
- Date: Tue, 23 Dec 2008 13:26:19 +0000 (UTC)
Author: cosimoc
Date: Tue Dec 23 13:26:19 2008
New Revision: 8256
URL: http://svn.gnome.org/viewvc/gnome-utils?rev=8256&view=rev
Log:
Add new API that loads LogviewLogs objects directly from a GFile.
Modified:
trunk/logview/logview-log.c
trunk/logview/logview-log.h
trunk/logview/logview-manager.c
Modified: trunk/logview/logview-log.c
==============================================================================
--- trunk/logview/logview-log.c (original)
+++ trunk/logview/logview-log.c Tue Dec 23 13:26:19 2008
@@ -430,6 +430,17 @@
log_setup_load (log, callback, user_data);
}
+void
+logview_log_create_from_gfile (GFile *file, LogviewCreateCallback callback,
+ gpointer user_data)
+{
+ LogviewLog *log = g_object_new (LOGVIEW_TYPE_LOG, NULL);
+
+ log->priv->file = g_object_ref (file);
+
+ log_setup_load (log, callback, user_data);
+}
+
const char *
logview_log_get_display_name (LogviewLog *log)
{
Modified: trunk/logview/logview-log.h
==============================================================================
--- trunk/logview/logview-log.h (original)
+++ trunk/logview/logview-log.h Tue Dec 23 13:26:19 2008
@@ -25,6 +25,7 @@
#define __LOGVIEW_LOG_H__
#include <glib-object.h>
+#include <gio/gio.h>
G_BEGIN_DECLS
@@ -81,6 +82,9 @@
void logview_log_create (const char *filename,
LogviewCreateCallback callback,
gpointer user_data);
+void logview_log_create_from_gfile (GFile *file,
+ LogviewCreateCallback callback,
+ gpointer user_data);
void logview_log_read_new_lines (LogviewLog *log,
LogviewNewLinesCallback callback,
gpointer user_data);
Modified: trunk/logview/logview-manager.c
==============================================================================
--- trunk/logview/logview-manager.c (original)
+++ trunk/logview/logview-manager.c Tue Dec 23 13:26:19 2008
@@ -198,6 +198,40 @@
}
void
+logview_manager_add_log_from_gfile (LogviewManager *manager,
+ GFile *file,
+ gboolean set_active)
+{
+ char *file_uri;
+ LogviewLog *log;
+ CreateCBData *data;
+
+ g_assert (LOGVIEW_IS_MANAGER (manager));
+
+ file_uri = g_file_get_uri (file);
+
+ if (set_active == FALSE) {
+ /* if it's the first log being added, set it as active anyway */
+ set_active = (manager->priv->logs == NULL);
+ }
+
+ if ((log = g_hash_table_lookup (manager->priv->logs, file_uri)) != NULL) {
+ /* log already exists, don't load it */
+ if (set_active) {
+ logview_manager_set_active_log (manager, log);
+ }
+ } else {
+ data = g_slice_new0 (CreateCBData);
+ data->manager = manager;
+ data->set_active = set_active;
+
+ logview_log_create_from_gfile (file, create_log_cb, data);
+ }
+
+ g_free (file_uri);
+}
+
+void
logview_manager_add_logs_from_names (LogviewManager *manager,
GSList *names,
const char *active)
@@ -208,7 +242,7 @@
for (l = names; l; l = l->next) {
logview_manager_add_log_from_name (manager, l->data,
- (g_ascii_strcasecmp (active, l->data) == 0));
+ (g_ascii_strcasecmp (active, l->data) == 0));
}
}
@@ -216,27 +250,15 @@
logview_manager_add_log_from_name (LogviewManager *manager,
const char *filename, gboolean set_active)
{
- CreateCBData *data = g_slice_new0 (CreateCBData);
- LogviewLog *log;
+ GFile *file;
g_assert (LOGVIEW_IS_MANAGER (manager));
- if (set_active == FALSE) {
- /* if it's the first log being added, set it as active anyway */
- set_active = (manager->priv->logs == NULL);
- }
+ file = g_file_new_for_path (filename);
- if ((log = g_hash_table_lookup (manager->priv->logs, filename)) != NULL) {
- /* log already exists, don't load it */
- if (set_active) {
- logview_manager_set_active_log (manager, log);
- }
- } else {
- data->manager = manager;
- data->set_active = set_active;
+ logview_manager_add_log_from_gfile (manager, file, set_active);
- logview_log_create (filename, create_log_cb, data);
- }
+ g_object_unref (file);
}
int
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]