1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-23 21:35:11 +03:00

systemadm: add libgee as dependency and use it for a unit map

This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2011-03-03 20:54:01 +01:00
parent 0dd27daff4
commit 11216eb0bd
3 changed files with 16 additions and 1 deletions

View File

@ -1432,6 +1432,7 @@ systemadm_CFLAGS = \
systemadm_VALAFLAGS = \
--pkg=posix \
--pkg=gtk+-2.0 \
--pkg=gee-1.0 \
-g
systemadm_LDADD = \

View File

@ -327,7 +327,7 @@ AM_CONDITIONAL(ENABLE_LOCALED, [test "$have_localed" = "yes"])
have_gtk=no
AC_ARG_ENABLE(gtk, AS_HELP_STRING([--disable-gtk], [disable GTK tools]))
if test "x$enable_gtk" != "xno"; then
PKG_CHECK_MODULES(GTK, [ gtk+-2.0 glib-2.0 > 2.26 gio-unix-2.0 ],
PKG_CHECK_MODULES(GTK, [ gtk+-2.0 glib-2.0 > 2.26 gio-unix-2.0 gee-1.0],
[AC_DEFINE(HAVE_GTK, 1, [Define if GTK is available]) have_gtk=yes], have_gtk=no)
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)

View File

@ -79,6 +79,8 @@ public class MainWindow : Window {
private ListStore unit_model;
private ListStore job_model;
private Gee.HashMap<string, Unit> unit_map;
private Button start_button;
private Button stop_button;
private Button restart_button;
@ -180,6 +182,8 @@ public class MainWindow : Window {
unit_model = new ListStore(7, typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(Unit));
job_model = new ListStore(6, typeof(string), typeof(string), typeof(string), typeof(string), typeof(Job), typeof(uint32));
unit_map = new Gee.HashMap<string, Unit>();
TreeModelFilter unit_model_filter;
unit_model_filter = new TreeModelFilter(unit_model, null);
unit_model_filter.set_visible_func(unit_filter);
@ -355,6 +359,8 @@ public class MainWindow : Window {
"org.freedesktop.systemd1",
i.unit_path);
unit_map[i.id] = u;
unit_model.append(out iter);
unit_model.set(iter,
0, i.id,
@ -415,6 +421,10 @@ public class MainWindow : Window {
return u;
}
public Unit? get_unit(string id) {
return this.unit_map[id];
}
public void unit_changed() {
Unit u = get_current_unit();
@ -712,6 +722,8 @@ public class MainWindow : Window {
"org.freedesktop.systemd1",
path);
unit_map[id] = u;
update_unit_iter(iter, id, u);
} catch (IOError e) {
show_error(e.message);
@ -773,6 +785,8 @@ public class MainWindow : Window {
}
} while (unit_model.iter_next(ref iter));
unit_map.unset(id);
}
public void on_job_removed(uint32 id, ObjectPath path, string res) {