summaryrefslogtreecommitdiffstats
path: root/src/gui-gtk
diff options
context:
space:
mode:
authorDenys Vlasenko <dvlasenk@redhat.com>2011-02-09 15:07:29 +0100
committerDenys Vlasenko <dvlasenk@redhat.com>2011-02-09 15:07:29 +0100
commitd3a3f8ccf0f226b0aab8b8aebb70ac4856dc6282 (patch)
tree4239fd00331803443f5565d2f5e01560d62266c0 /src/gui-gtk
parent57e6ab1d067c2a6ee7b6d6d9db41701817f02f5e (diff)
downloadabrt-d3a3f8ccf0f226b0aab8b8aebb70ac4856dc6282.tar.gz
abrt-d3a3f8ccf0f226b0aab8b8aebb70ac4856dc6282.tar.xz
abrt-d3a3f8ccf0f226b0aab8b8aebb70ac4856dc6282.zip
abrt-gtk: more cleanups
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src/gui-gtk')
-rw-r--r--src/gui-gtk/Makefile.am5
-rw-r--r--src/gui-gtk/abrt-gtk.c35
-rw-r--r--src/gui-gtk/abrt-gtk.h4
-rw-r--r--src/gui-gtk/list_dir.c29
-rw-r--r--src/gui-gtk/list_dir.h1
-rw-r--r--src/gui-gtk/main.c48
6 files changed, 61 insertions, 61 deletions
diff --git a/src/gui-gtk/Makefile.am b/src/gui-gtk/Makefile.am
index c8524183..4a77b3f3 100644
--- a/src/gui-gtk/Makefile.am
+++ b/src/gui-gtk/Makefile.am
@@ -1,10 +1,7 @@
bin_PROGRAMS = abrt-gtk
abrt_gtk_SOURCES = \
- list_dir.c \
- list_dir.h \
- abrt-gtk.h \
- abrt-gtk.c \
+ abrt-gtk.h abrt-gtk.c \
main.c
abrt_gtk_CFLAGS = \
-I$(srcdir)/../include/report -I$(srcdir)/../include \
diff --git a/src/gui-gtk/abrt-gtk.c b/src/gui-gtk/abrt-gtk.c
index c0df5ebf..313b6633 100644
--- a/src/gui-gtk/abrt-gtk.c
+++ b/src/gui-gtk/abrt-gtk.c
@@ -1,6 +1,6 @@
#include <gtk/gtk.h>
#include "abrtlib.h"
-#include "list_dir.h"
+#include "abrt-gtk.h"
static GtkListStore *dumps_list_store;
static GtkTreeIter iter___;
@@ -17,8 +17,7 @@ enum
};
/*
-
-void gtk_tree_model_get_value (GtkTreeModel *tree_model,
+void gtk_tree_model_get_value(GtkTreeModel *tree_model,
GtkTreeIter *iter,
gint column,
GValue *value);
@@ -26,13 +25,13 @@ void gtk_tree_model_get_value (GtkTreeModel *tree_model,
static void on_row_activated_cb(GtkTreeView *tree_view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer user_data)
{
- GtkTreeIter iter;
GtkTreeSelection *selection = gtk_tree_view_get_selection(tree_view);
- GtkTreeModel *dump_list_store = gtk_tree_view_get_model(tree_view);
- gtk_tree_model_get_iter(dump_list_store, &iter, path);
- GValue d_dir = {0};
- if (selection != NULL)
+ if (selection)
{
+ GtkTreeIter iter;
+ GtkTreeModel *dump_list_store = gtk_tree_view_get_model(tree_view);
+ gtk_tree_model_get_iter(dump_list_store, &iter, path);
+ GValue d_dir = { 0 };
if (gtk_tree_selection_get_selected(selection, &dump_list_store, &iter) == TRUE)
{
gtk_tree_model_get_value(dump_list_store, &iter, COLUMN_DUMP_DIR, &d_dir);
@@ -41,11 +40,9 @@ static void on_row_activated_cb(GtkTreeView *tree_view, GtkTreePath *path, GtkTr
}
}
-static void view_store_add_item(gpointer item, gpointer data)
+void add_directory_to_dirlist(const char *dirname)
{
- char *dir = (char *)item;
-
- struct dump_dir *dd = dd_opendir(dir, DD_OPEN_READONLY);
+ struct dump_dir *dd = dd_opendir(dirname, DD_OPEN_READONLY);
if (!dd)
return;
@@ -63,10 +60,10 @@ static void view_store_add_item(gpointer item, gpointer data)
//OPTION: time format
COLUMN_LATEST_CRASH_STR, time_buf,
COLUMN_LATEST_CRASH, (int)time,
- COLUMN_DUMP_DIR, dir,
+ COLUMN_DUMP_DIR, dirname,
-1);
dd_close(dd);
- VERB1 log("added: %s\n", dir);
+ VERB1 log("added: %s\n", dirname);
}
static void add_columns(GtkTreeView *treeview)
@@ -117,15 +114,7 @@ static void add_columns(GtkTreeView *treeview)
}
-int dump_list_hydrate(char *path)
-{
- GList *dumps = get_dump_list(path);
- g_list_foreach(dumps, view_store_add_item, NULL);
-
- return 0;
-}
-
-GtkWidget *main_window_create()
+GtkWidget *create_main_window(void)
{
/* main window */
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
diff --git a/src/gui-gtk/abrt-gtk.h b/src/gui-gtk/abrt-gtk.h
index a3c2cbf7..bf25cf71 100644
--- a/src/gui-gtk/abrt-gtk.h
+++ b/src/gui-gtk/abrt-gtk.h
@@ -1,2 +1,2 @@
-int dump_list_hydrate(char *path);
-GtkWidget *main_window_create();
+GtkWidget *create_main_window(void);
+void add_directory_to_dirlist(const char *dirname);
diff --git a/src/gui-gtk/list_dir.c b/src/gui-gtk/list_dir.c
deleted file mode 100644
index 0e471a84..00000000
--- a/src/gui-gtk/list_dir.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "abrtlib.h"
-
-GList *get_dump_list(const char *path)
-{
- DIR *dp = opendir(path);
- if (!dp)
- {
- perror_msg("Can't open directory '%s'", path);
- return NULL;
- }
-
- GList *dumps = NULL;
- struct dirent *dent;
- while ((dent = readdir(dp)) != NULL)
- {
- if (dot_or_dotdot(dent->d_name))
- continue; /* skip "." and ".." */
-
- char *current_dir_path = concat_path_file(path, dent->d_name);
- //FIXME: should be int ret = access(current_dir_path, R_OK|W_OK);
- int ret = access(current_dir_path, R_OK);
- if (ret == 0)
- dumps = g_list_prepend(dumps, current_dir_path);
- else
- free(current_dir_path);
- }
- closedir(dp);
- return dumps;
-}
diff --git a/src/gui-gtk/list_dir.h b/src/gui-gtk/list_dir.h
deleted file mode 100644
index cd3ef7c4..00000000
--- a/src/gui-gtk/list_dir.h
+++ /dev/null
@@ -1 +0,0 @@
-GList *get_dump_list(const char *path);
diff --git a/src/gui-gtk/main.c b/src/gui-gtk/main.c
index dfb3b04d..b18f854f 100644
--- a/src/gui-gtk/main.c
+++ b/src/gui-gtk/main.c
@@ -1,15 +1,59 @@
#include <gtk/gtk.h>
#include "abrtlib.h"
+#include "parse_options.h"
#include "abrt-gtk.h"
+#define PROGNAME "abrt-gtk"
+
+static void scan_directory_and_add_to_dirlist(const char *path)
+{
+ DIR *dp = opendir(path);
+ if (!dp)
+ {
+ /* We don't want to yell if, say, $HOME/.abrt/spool doesn't exist */
+ //perror_msg("Can't open directory '%s'", path);
+ return;
+ }
+
+ struct dirent *dent;
+ while ((dent = readdir(dp)) != NULL)
+ {
+ if (dot_or_dotdot(dent->d_name))
+ continue; /* skip "." and ".." */
+
+ char *full_name = concat_path_file(path, dent->d_name);
+ struct stat statbuf;
+ if (stat(full_name, &statbuf) == 0 && S_ISDIR(statbuf.st_mode))
+ add_directory_to_dirlist(full_name);
+ free(full_name);
+ }
+ closedir(dp);
+}
+
int main(int argc, char **argv)
{
/* I18n */
setlocale(LC_ALL, "");
+ /* Can't keep these strings/structs static: _() doesn't support that */
+ const char *program_usage_string = _(
+ PROGNAME" [-v] [DIR]...\n\n"
+ "Shows list of ABRT dump directories in specified DIR(s)\n"
+ "(default DIRs: "DEBUG_DUMPS_DIR" $HOME/.abrt/spool)"
+ );
+ enum {
+ OPT_v = 1 << 0,
+ };
+ /* Keep enum above and order of options below in sync! */
+ struct options program_options[] = {
+ OPT__VERBOSE(&g_verbose),
+ OPT_END()
+ };
+ /*unsigned opts =*/ parse_opts(argc, argv, program_options, program_usage_string);
+
gtk_init(&argc, &argv);
- GtkWidget *main_window = main_window_create();
+ GtkWidget *main_window = create_main_window();
const char *default_dirs[] = {
"/var/spool/abrt",
@@ -25,7 +69,7 @@ int main(int argc, char **argv)
argv = (char**)default_dirs;
}
while (*argv)
- dump_list_hydrate(*argv++);
+ scan_directory_and_add_to_dirlist(*argv++);
gtk_widget_show_all(main_window);