paused : false, // on!
xtype : Gtk.StatusIcon,
title : 'gitlive',
- stock : Gtk.STOCK_MEDIA_PLAY,
+ stock : Gtk.STOCK_REFRESH,
tooltip_text : 'GitLive',
init : function() {
XObject.prototype.init.call(this);
menu.el.show_all();
this.get(!this.paused ? 'resume' : 'pause' ).el.hide();
+ print("MENU EL: " + menu.el);
+ print("POPUP: " + typeof(menu.el.popup));
+
menu.el.popup(null, null,Gtk.StatusIcon.position_menu , this.el , 1, Gtk.get_current_event_time());
//menu.el.popup(null, null,null, null, 1, Gtk.get_current_event_time());
imports.GitMonitor.GitMonitor.start();
//var status = this.el.label == 'Pause' ? 1 : 0
// this.el.label = status ? 'Resume' : 'Pause';
- this.parent.parent.el.set_from_stock( Gtk.STOCK_MEDIA_PLAY);
+
}
}
listeners : {
activate : function () {
imports.GitMonitor.GitMonitor.stop();
+
- var f = Gio.file_new_for_path(imports.GitMonitor.GitMonitor.gitlive);
- var file_enum = f.enumerate_children(
- Gio.FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, Gio.FileQueryInfoFlags.NONE, null);
-
- var next_file = null;
-
- while ((next_file = file_enum.next_file(null)) != null) {
+ var tr = imports.Scm.Repo.Repo.list();
+ for (var i= 0; i< tr.length;i++) {
+ this.parent.parent.el.set_from_stock( i%2 ? Gtk.STOCK_FULLSCREEN : Gtk.STOCK_LEAVE_FULLSCREEN );
- var fn = imports.GitMonitor.GitMonitor.gitlive + '/' + next_file.get_display_name();
- if (! GLib.file_test(fn + '/.git', GLib.FileTest.IS_DIR)) {
+ var repo = tr[i];
+ if (!repo.autocommit()) {
+ //??? should we ignore ones not on autocommit..
continue;
}
-
- var repo = new imports.Scm.Git.Repo.Repo({
- repopath : fn
- });
- try {
- var str = repo.pull();
+ try {
+ this.parent.parent.el.set_tooltip_text("pull: " + repo.name);
+
+ var str = repo.pull();
+ // do not care if it's already in sycn..
+ if (str.match(/Already up-to-date/)) {
+ continue;
+ }
var notification = new Notify.Notification({
- summary: "Updated " + fn,
+ summary: "Updated " + repo.name,
body : str
});
notification.set_timeout(20);
notification.show();
} catch(e) {
+ this.parent.parent.el.set_from_stock( Gtk.STOCK_MEDIA_RECORD );
print(JSON.stringify(e));
print("notification or push errror- probably to many in queue..");
imports.gitlive.errorDialog(e.message);
}
-
- // should also update modules ideally.
-
}
+ this.parent.parent.el.set_tooltip_text(this.parent.parent.tooltip_text);
+
-
- file_enum.close(null);
-
-
+
+
imports.GitMonitor.GitMonitor.start();
-
- }
+ }
}
},
{