Fix #5623 - reset, pull, create ticket on popover
authorAlan Knowles <alan@roojs.com>
Wed, 19 Dec 2018 05:46:42 +0000 (13:46 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 19 Dec 2018 05:46:42 +0000 (13:46 +0800)
Clones.bjs
RepoStatusPopover.bjs
RepoStatusPopover.vala
StatusIcon.vala

index 78d1cb2..36a6091 100644 (file)
@@ -30,8 +30,8 @@
      "items" : [
       {
        "bool homogeneous" : true,
-       "* pack" : "pack_start,false,false,0",
        "xtype" : "Box",
+       "* pack" : "pack_start,false,false,0",
        "$ xns" : "Gtk",
        "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
        "items" : [
@@ -49,8 +49,8 @@
       },
       {
        "* init" : "  {\n  \n   this.el.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);\n}\n",
-       "bool hexpand" : true,
        "bool expand" : true,
+       "bool hexpand" : true,
        "xtype" : "ScrolledWindow",
        "* pack" : "pack_end,true,true,0",
        "Gtk.ShadowType shadow_type" : "Gtk.ShadowType.IN",
@@ -62,8 +62,8 @@
           "cursor_changed" : "()  => {\n  // SEE SELECTION.CHANGED\n  /*\n  \n  return;\n  \n    if (this.el.get_selection().count_selected_rows() < 1) {\n        //nothing? - clea it?\n        return;\n    }\n        var ret = {};         \n    var model = this.get('/changedFilesStore');\n\n     var s = this.el.get_selection();\n     var files = [];\n    s.selected_foreach(function(model,p,iter) {\n    \n       files.push( model.get_value(iter, 0).value.get_string());\n     \n    });\n    this.get('/patchview').showDiff(files); \n    //var value = ''+ ret.model.get_value(ret.iter, 1).value.get_string();\n     //print(\"OUT?\" + value);// id..\n    // load the list in the right grid..\n     \n    return true;\n*/\n}"
          },
          "id" : "reposView",
-         "bool activate_on_single_click" : true,
          "* init" : " \n{\n    var selection = this.el.get_selection();\n    selection.set_mode( Gtk.SelectionMode.SINGLE);\n\n\n    var description = new Pango.FontDescription();\n    description.set_size(10000);\n    this.el.override_font(description);\n \n}\n",
+         "bool activate_on_single_click" : true,
          "xtype" : "TreeView",
          "* pack" : "add",
          "int search_column" : 0,
@@ -94,8 +94,8 @@
               "toggled" : "  (self, path)  => {\n  \n  \tGtk.TreeIter iter;\n  \t_this.reposStore.el.get_iter_from_string(out iter, path);\n  \t\n  \tGLib.Value val;\n  \tGLib.Value rval;\n  \t_this.reposStore.el.get_value(iter, 4, out val);\n  \t_this.reposStore.el.get_value(iter, 6, out rval);\n  \t\n  \tvar repopath = (string)rval;\n  \tvar bval = (bool)val;\n  \t_this.reposStore.el.set_value(iter, 4, !bval);\n  \tGLib.debug(\"got repopath? %s\", repopath);\n  \t\n  \tvar repo = GitRepo.get(repopath);\n  \trepo.set_autocommit(!bval);\n  \t\n  \t\n  \t\n  \n}"
              },
              "id" : "cr_autocommit",
-             "* pack" : "pack_start,false",
              "xtype" : "CellRendererToggle",
+             "* pack" : "pack_start,false",
              "$ xns" : "Gtk",
              "$ mode" : "Gtk.CellRendererMode.ACTIVATABLE"
             }
               "toggled" : "  (self, path)  => {\n  \n  \tGtk.TreeIter iter;\n  \t_this.reposStore.el.get_iter_from_string(out iter, path);\n  \t\n  \tGLib.Value val;\n  \tGLib.Value rval;\n  \t_this.reposStore.el.get_value(iter, 5, out val);\n  \t_this.reposStore.el.get_value(iter, 6, out rval);\n  \t\n  \tvar repopath = (string)rval;\n  \tvar bval = (bool)val;\n  \t_this.reposStore.el.set_value(iter, 5, !bval);\n  \tvar repo = GitRepo.get(repopath);\n  \trepo.set_autopush(!bval);\n  \t\n  \t\n  \t\n  \n}"
              },
              "id" : "cr_autopush",
-             "* pack" : "pack_start,false",
              "xtype" : "CellRendererToggle",
+             "* pack" : "pack_start,false",
              "$ xns" : "Gtk",
              "$ mode" : "Gtk.CellRendererMode.ACTIVATABLE"
             }
               "toggled" : "  (self, path)  => {\n  \n  \tGtk.TreeIter iter;\n  \t_this.reposStore.el.get_iter_from_string(out iter, path);\n  \t\n  \tGLib.Value val;\n  \tGLib.Value rval;\n  \t_this.reposStore.el.get_value(iter, 8, out val);\n  \t_this.reposStore.el.get_value(iter, 6, out rval);\n  \t\n  \tvar repopath = (string)rval;\n  \tvar bval = (bool)val;\n  \t_this.reposStore.el.set_value(iter, 8, !bval);\n  \tvar repo = GitRepo.get(repopath);\n  \trepo.set_auto_branch(!bval);\n  \t\n  \t\n  \t\n  \n}"
              },
              "id" : "cr_autobranch",
-             "xtype" : "CellRendererToggle",
              "* pack" : "pack_start,false",
+             "xtype" : "CellRendererToggle",
              "$ xns" : "Gtk",
              "$ mode" : "Gtk.CellRendererMode.ACTIVATABLE"
             }
           },
           {
            "id" : "tv_repo",
-           "* init" : "\n    this.el.add_attribute(_this.cr_repo.el , \"markup\", 0 );\n",
            "Gtk.SortType sort_order" : "Gtk.SortType.ASCENDING",
+           "* init" : "\n    this.el.add_attribute(_this.cr_repo.el , \"markup\", 0 );\n",
            "title" : "Repo",
            "* pack" : "append_column",
            "xtype" : "TreeViewColumn",
            "items" : [
             {
              "id" : "cr_repo",
-             "* pack" : "pack_start,false",
              "xtype" : "CellRendererText",
+             "* pack" : "pack_start,false",
              "$ xns" : "Gtk"
             }
            ]
            "items" : [
             {
              "id" : "cr_active_ticket",
-             "xtype" : "CellRendererText",
              "* pack" : "pack_start,false",
+             "xtype" : "CellRendererText",
              "$ xns" : "Gtk"
             }
            ]
            "items" : [
             {
              "id" : "cr_current_branch",
-             "* pack" : "pack_start,false",
              "xtype" : "CellRendererText",
+             "* pack" : "pack_start,false",
              "$ xns" : "Gtk"
             }
            ]
            "items" : [
             {
              "id" : "cr_last_updated",
-             "* pack" : "pack_start,false",
              "xtype" : "CellRendererText",
+             "* pack" : "pack_start,false",
              "$ xns" : "Gtk"
             }
            ]
            "items" : [
             {
              "id" : "cr_all_branches",
-             "* pack" : "pack_start,false",
              "xtype" : "CellRendererText",
+             "* pack" : "pack_start,false",
              "$ xns" : "Gtk"
             }
            ]
index 8fb4899..1e7e58f 100644 (file)
@@ -9,7 +9,7 @@
  "items" : [
   {
    "GitRepo repo" : "",
-   "| void show" : " (Gtk.Widget btn, Gdk.Rectangle rect, GitRepo repo) {\n    _this.repo = repo;\n    // get the active project.\n     var lm = Gtk.SourceLanguageManager.get_default();\n                \n//    ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(\n  //      lm.get_language(\"html\")\n //   );\n  \n    //print (project.fn);\n    //project.runhtml = project.runhtml || '';\n    _this.diff_view.el.get_buffer().set_text(repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(repo.git_status);\n       \n    \t//console.log('show all');\n\tthis.el.set_modal(true);\n\tthis.el.set_relative_to(btn);\n    this.el.set_pointing_to(rect);\n  \n\t//this.el.set_position(Gtk.PositionType.RIGHT);\n\n\t// window + header?\n\t GLib.debug(\"SHOWALL - POPIP\\n\");\n\tthis.el.show_all();\n\t//this.el.set_size_request(800,500);\n//\tthis.diff_view.el.grab_focus();\n\t\n    //this.el.show_all();\n}\n",
+   "| void show" : " (Gtk.Widget btn, Gdk.Rectangle rect, GitRepo repo) {\n    _this.repo = repo;\n    // get the active project.\n     var lm = Gtk.SourceLanguageManager.get_default();\n                \n//    ((Gtk.SourceBuffer)(_this.view.el.get_buffer())) .set_language(\n  //      lm.get_language(\"html\")\n //   );\n  \n    //print (project.fn);\n    //project.runhtml = project.runhtml || '';\n    _this.diff_view.el.get_buffer().set_text(repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(repo.git_status);\n       \n    \t//console.log('show all');\n\tthis.el.set_modal(true);\n\tthis.el.set_relative_to(btn);\n    this.el.set_pointing_to(rect);\n  \n\t//this.el.set_position(Gtk.PositionType.RIGHT);\n\n\tif (repo.activeTicket == null) {\n\t\t_this.btn_merge.el.set_sensitive(false);\n\t} else {\n\t\t_this.btn_merge.el.set_sensitive(true);\n\t}\n\t_this.btn_create.el.set_sensitive(repo.is_master_branch());\n\t\n\t_this.btn_stash.el.set_sensitive(repo.has_local_changes);\n\t_this.btn_commit.el.set_sensitive(repo.has_local_changes);\n\t_this.btn_reset.el.set_sensitive(repo.has_local_changes);\n\t_this.btn_pull.el.set_sensitive(repo.ahead_or_behind == \"B\");\t\n\t\n\t// window + header?\n\t GLib.debug(\"SHOWALL - POPIP\\n\");\n\tthis.el.show_all();\n\t//this.el.set_size_request(800,500);\n//\tthis.diff_view.el.grab_focus();\n\t\n    //this.el.show_all();\n}\n",
    "xtype" : "Popover",
    "Gtk.PositionType position" : "Gtk.PositionType.RIGHT",
    "$ xns" : "Gtk",
      "$ homogeneous" : false,
      "items" : [
       {
-       "* pack" : "pack_start,true,true,0",
+       "* pack" : "pack_start,false,false,0",
+       "xtype" : "Box",
+       "gboolean expand" : false,
+       "$ xns" : "Gtk",
+       "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL",
+       "$ homogeneous" : true,
+       "gboolean vexpand" : false,
+       "items" : [
+        {
+         "Gtk.ToolbarStyle toolbar_style" : "Gtk.ToolbarStyle.BOTH_HORIZ",
+         "xtype" : "Toolbar",
+         "* pack" : "add",
+         "$ xns" : "Gtk",
+         "items" : [
+          {
+           "listeners" : {
+            "button_press_event" : "() => {\n  \n   \n   GitMonitor.gitmonitor.stop();\n   _this.repo.git({ \"stash\" , \"--all\" });\n   _this.repo.loadStatus();\n   GitMonitor.gitmonitor.start();\n    _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(_this.repo.git_status);\n    Clones.singleton().reposStore.load();\n  \n   _this.el.hide();\n    return false;\n}"
+           },
+           "label" : "Stash Changes",
+           "* ctor" : "new Gtk.ToolButton(new Gtk.Image.from_icon_name (\"gtk-undo\", Gtk.IconSize.SMALL_TOOLBAR), null);",
+           "id" : "btn_stash",
+           "xtype" : "ToolButton",
+           "* pack" : "add",
+           "$ xns" : "Gtk",
+           "bool is_important" : true
+          },
+          {
+           "listeners" : {
+            "button_press_event" : "() => {\n   _this.repo.git({ \"commit\" , \"-a\" ,\"-m\", \"Uncommited changes synced\" });\n   _this.repo.push();\n   _this.repo.loadStatus();\n   \n    _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(_this.repo.git_status);\n    \n   _this.el.hide();\n   Clones.singleton().reposStore.load();\n   \n    return false;\n}"
+           },
+           "label" : "Commit Changes",
+           "* ctor" : "new Gtk.ToolButton(new Gtk.Image.from_icon_name (\"gtk-save\", Gtk.IconSize.SMALL_TOOLBAR), null);",
+           "id" : "btn_commit",
+           "* pack" : "add",
+           "xtype" : "ToolButton",
+           "$ xns" : "Gtk",
+           "bool is_important" : true
+          },
+          {
+           "listeners" : {
+            "button_press_event" : "() => {\n  \n   \n   GitMonitor.gitmonitor.stop();\n   _this.repo.git({ \"reset\" , \"--hard\" });\n   _this.repo.loadStatus();\n   GitMonitor.gitmonitor.start();\n    _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(_this.repo.git_status);\n    Clones.singleton().reposStore.load();\n  \n   _this.el.hide();\n    return false;\n}"
+           },
+           "label" : "Reset / clear changes",
+           "* ctor" : "new Gtk.ToolButton(new Gtk.Image.from_icon_name (\"gtk-revert-to-saved\", Gtk.IconSize.SMALL_TOOLBAR), null);",
+           "id" : "btn_reset",
+           "* pack" : "add",
+           "xtype" : "ToolButton",
+           "$ xns" : "Gtk",
+           "bool is_important" : true
+          },
+          {
+           "listeners" : {
+            "button_press_event" : "() => {\n  \n   \n   GitMonitor.gitmonitor.stop();\n   _this.repo.git({ \"pull\" , \"--all\" });\n   _this.repo.loadStatus();\n   GitMonitor.gitmonitor.start();\n    _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(_this.repo.git_status);\n    Clones.singleton().reposStore.load();\n  \n   _this.el.hide();\n    return false;\n}"
+           },
+           "label" : "Pull updates",
+           "* ctor" : "new Gtk.ToolButton(new Gtk.Image.from_icon_name (\"gtk-goto-bottom\", Gtk.IconSize.SMALL_TOOLBAR), null);",
+           "id" : "btn_pull",
+           "xtype" : "ToolButton",
+           "* pack" : "add",
+           "$ xns" : "Gtk",
+           "bool is_important" : true
+          }
+         ]
+        }
+       ]
+      },
+      {
+       "* pack" : "add",
        "xtype" : "Notebook",
        "$ xns" : "Gtk",
+       "bool vexpand" : true,
        "items" : [
         {
          "id" : "label_status",
        "gboolean vexpand" : false,
        "items" : [
         {
-         "listeners" : {
-          "button_press_event" : "() => {\n  \n   \n   GitMonitor.gitmonitor.stop();\n   _this.repo.git({ \"stash\" , \"--all\" });\n   _this.repo.loadStatus();\n   GitMonitor.gitmonitor.start();\n    _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(_this.repo.git_status);\n    Clones.singleton().reposStore.load();\n  \n   _this.el.hide();\n    return false;\n}"
-         },
-         "label" : "Stash Changes",
-         "xtype" : "Button",
-         "* pack" : "add",
-         "$ xns" : "Gtk"
-        },
-        {
-         "listeners" : {
-          "button_press_event" : "() => {\n   _this.repo.git({ \"commit\" , \"-a\" ,\"-m\", \"Uncommited changes synced\" });\n   _this.repo.push();\n   _this.repo.loadStatus();\n   \n    _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);\n    _this.status_view.el.get_buffer().set_text(_this.repo.git_status);\n    \n   _this.el.hide();\n   Clones.singleton().reposStore.load();\n   \n    return false;\n}"
-         },
-         "label" : "Commit Changes",
-         "xtype" : "Button",
-         "* pack" : "add",
-         "$ xns" : "Gtk"
-        },
-        {
-         "listeners" : {
-          "button_press_event" : "() => {\n   var oldq = new Gee.ArrayList<GitMonitorQueue>();  \n\n\tClones.singleton().el.response(-1);\n\tNewBranch.singleton().show(_this.repo, oldq);\n\n    return false;\n}"
-         },
-         "label" : "Create Branch",
-         "* pack" : "add",
-         "xtype" : "Button",
-         "$ xns" : "Gtk"
-        },
-        {
-         "listeners" : {
-          "button_press_event" : "() => {\n       _this.el.hide();\n        return false;\n}"
-         },
-         "label" : "Ignore for now",
+         "Gtk.ToolbarStyle toolbar_style" : "Gtk.ToolbarStyle.BOTH_HORIZ",
          "* pack" : "add",
-         "xtype" : "Button",
-         "$ xns" : "Gtk"
+         "xtype" : "Toolbar",
+         "$ xns" : "Gtk",
+         "items" : [
+          {
+           "listeners" : {
+            "button_press_event" : "() => {\n   var oldq = new Gee.ArrayList<GitMonitorQueue>();  \n\n\tClones.singleton().el.response(-1);\n\tNewBranch.singleton().show(_this.repo, oldq);\n\n    return false;\n}"
+           },
+           "label" : "Create Branch / Start ticket",
+           "* ctor" : "new Gtk.ToolButton(new Gtk.Image.from_icon_name (\"gtk-add\", Gtk.IconSize.SMALL_TOOLBAR), null);",
+           "id" : "btn_create",
+           "xtype" : "ToolButton",
+           "* pack" : "add",
+           "$ xns" : "Gtk",
+           "bool is_important" : true
+          },
+          {
+           "listeners" : {
+            "clicked" : "() => {\n\n   _this.el.hide();\n   Clones.singleton().el.response(-1);\n   if (_this.repo.activeTicket != null) {\n\t   MergeBranch.singleton().show(_this.repo.activeTicket, null);   \n   }\n    return ;\n}"
+           },
+           "label" : "Merge branch /  Complete ticket",
+           "* ctor" : "new Gtk.ToolButton(new Gtk.Image.from_icon_name (\"gtk-goto-top\", Gtk.IconSize.SMALL_TOOLBAR), null);",
+           "id" : "btn_merge",
+           "xtype" : "ToolButton",
+           "* pack" : "add",
+           "$ xns" : "Gtk",
+           "bool is_important" : true
+          },
+          {
+           "listeners" : {
+            "button_press_event" : "() => {\n  \n\n\n      Clones.singleton().el.response(-1);\n  \n   _this.el.hide();\n   Ticket.singleton().show( _this.repo);\n   \n    return false;\n}"
+           },
+           "label" : "Create Ticket",
+           "* ctor" : "new Gtk.ToolButton(new Gtk.Image.from_icon_name (\"gtk-new\", Gtk.IconSize.SMALL_TOOLBAR), null);",
+           "* pack" : "add",
+           "xtype" : "ToolButton",
+           "$ xns" : "Gtk",
+           "bool is_important" : true
+          }
+         ]
         }
        ]
       }
index e98c999..9c20936 100644 (file)
@@ -12,10 +12,16 @@ public class RepoStatusPopover : Object
         }
         return _RepoStatusPopover;
     }
+    public Xcls_btn_stash btn_stash;
+    public Xcls_btn_commit btn_commit;
+    public Xcls_btn_reset btn_reset;
+    public Xcls_btn_pull btn_pull;
     public Xcls_label_status label_status;
     public Xcls_label_diff label_diff;
     public Xcls_status_view status_view;
     public Xcls_diff_view diff_view;
+    public Xcls_btn_create btn_create;
+    public Xcls_btn_merge btn_merge;
 
         // my vars (def)
     public GitRepo repo;
@@ -59,6 +65,18 @@ public class RepoStatusPopover : Object
       
        //this.el.set_position(Gtk.PositionType.RIGHT);
     
+       if (repo.activeTicket == null) {
+               _this.btn_merge.el.set_sensitive(false);
+       } else {
+               _this.btn_merge.el.set_sensitive(true);
+       }
+       _this.btn_create.el.set_sensitive(repo.is_master_branch());
+       
+       _this.btn_stash.el.set_sensitive(repo.has_local_changes);
+       _this.btn_commit.el.set_sensitive(repo.has_local_changes);
+       _this.btn_reset.el.set_sensitive(repo.has_local_changes);
+       _this.btn_pull.el.set_sensitive(repo.ahead_or_behind == "B");   
+       
        // window + header?
         GLib.debug("SHOWALL - POPIP\n");
        this.el.show_all();
@@ -86,17 +104,246 @@ public class RepoStatusPopover : Object
             // set gobject values
             this.el.homogeneous = false;
             this.el.border_width = 5;
-            var child_0 = new Xcls_Notebook3( _this );
+            var child_0 = new Xcls_Box3( _this );
             child_0.ref();
-            this.el.pack_start (  child_0.el , true,true,0 );
-            var child_1 = new Xcls_Box12( _this );
+            this.el.pack_start (  child_0.el , false,false,0 );
+            var child_1 = new Xcls_Notebook9( _this );
+            child_1.ref();
+            this.el.add (  child_1.el  );
+            var child_2 = new Xcls_Box18( _this );
+            child_2.ref();
+            this.el.pack_end (  child_2.el , false,false,0 );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_Box3 : Object
+    {
+        public Gtk.Box el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Box3(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.homogeneous = true;
+            this.el.expand = false;
+            this.el.vexpand = false;
+            var child_0 = new Xcls_Toolbar4( _this );
+            child_0.ref();
+            this.el.add (  child_0.el  );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_Toolbar4 : Object
+    {
+        public Gtk.Toolbar el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_Toolbar4(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            this.el = new Gtk.Toolbar();
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.toolbar_style = Gtk.ToolbarStyle.BOTH_HORIZ;
+            var child_0 = new Xcls_btn_stash( _this );
+            child_0.ref();
+            this.el.add (  child_0.el  );
+            var child_1 = new Xcls_btn_commit( _this );
             child_1.ref();
-            this.el.pack_end (  child_1.el , false,false,0 );
+            this.el.add (  child_1.el  );
+            var child_2 = new Xcls_btn_reset( _this );
+            child_2.ref();
+            this.el.add (  child_2.el  );
+            var child_3 = new Xcls_btn_pull( _this );
+            child_3.ref();
+            this.el.add (  child_3.el  );
+        }
+
+        // user defined functions
+    }
+    public class Xcls_btn_stash : Object
+    {
+        public Gtk.ToolButton el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_btn_stash(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            _this.btn_stash = this;
+            this.el = new Gtk.ToolButton(new Gtk.Image.from_icon_name ("gtk-undo", Gtk.IconSize.SMALL_TOOLBAR), null);;
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Stash Changes";
+            this.el.is_important = true;
+
+            //listeners
+            this.el.button_press_event.connect( () => {
+              
+               
+               GitMonitor.gitmonitor.stop();
+               _this.repo.git({ "stash" , "--all" });
+               _this.repo.loadStatus();
+               GitMonitor.gitmonitor.start();
+                _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);
+                _this.status_view.el.get_buffer().set_text(_this.repo.git_status);
+                Clones.singleton().reposStore.load();
+              
+               _this.el.hide();
+                return false;
+            });
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_btn_commit : Object
+    {
+        public Gtk.ToolButton el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_btn_commit(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            _this.btn_commit = this;
+            this.el = new Gtk.ToolButton(new Gtk.Image.from_icon_name ("gtk-save", Gtk.IconSize.SMALL_TOOLBAR), null);;
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Commit Changes";
+            this.el.is_important = true;
+
+            //listeners
+            this.el.button_press_event.connect( () => {
+               _this.repo.git({ "commit" , "-a" ,"-m", "Uncommited changes synced" });
+               _this.repo.push();
+               _this.repo.loadStatus();
+               
+                _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);
+                _this.status_view.el.get_buffer().set_text(_this.repo.git_status);
+                
+               _this.el.hide();
+               Clones.singleton().reposStore.load();
+               
+                return false;
+            });
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_btn_reset : Object
+    {
+        public Gtk.ToolButton el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_btn_reset(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            _this.btn_reset = this;
+            this.el = new Gtk.ToolButton(new Gtk.Image.from_icon_name ("gtk-revert-to-saved", Gtk.IconSize.SMALL_TOOLBAR), null);;
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Reset / clear changes";
+            this.el.is_important = true;
+
+            //listeners
+            this.el.button_press_event.connect( () => {
+              
+               
+               GitMonitor.gitmonitor.stop();
+               _this.repo.git({ "reset" , "--hard" });
+               _this.repo.loadStatus();
+               GitMonitor.gitmonitor.start();
+                _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);
+                _this.status_view.el.get_buffer().set_text(_this.repo.git_status);
+                Clones.singleton().reposStore.load();
+              
+               _this.el.hide();
+                return false;
+            });
+        }
+
+        // user defined functions
+    }
+
+    public class Xcls_btn_pull : Object
+    {
+        public Gtk.ToolButton el;
+        private RepoStatusPopover  _this;
+
+
+            // my vars (def)
+
+        // ctor
+        public Xcls_btn_pull(RepoStatusPopover _owner )
+        {
+            _this = _owner;
+            _this.btn_pull = this;
+            this.el = new Gtk.ToolButton(new Gtk.Image.from_icon_name ("gtk-goto-bottom", Gtk.IconSize.SMALL_TOOLBAR), null);;
+
+            // my vars (dec)
+
+            // set gobject values
+            this.el.label = "Pull updates";
+            this.el.is_important = true;
+
+            //listeners
+            this.el.button_press_event.connect( () => {
+              
+               
+               GitMonitor.gitmonitor.stop();
+               _this.repo.git({ "pull" , "--all" });
+               _this.repo.loadStatus();
+               GitMonitor.gitmonitor.start();
+                _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);
+                _this.status_view.el.get_buffer().set_text(_this.repo.git_status);
+                Clones.singleton().reposStore.load();
+              
+               _this.el.hide();
+                return false;
+            });
         }
 
         // user defined functions
     }
-    public class Xcls_Notebook3 : Object
+
+
+
+    public class Xcls_Notebook9 : Object
     {
         public Gtk.Notebook el;
         private RepoStatusPopover  _this;
@@ -105,7 +352,7 @@ public class RepoStatusPopover : Object
             // my vars (def)
 
         // ctor
-        public Xcls_Notebook3(RepoStatusPopover _owner )
+        public Xcls_Notebook9(RepoStatusPopover _owner )
         {
             _this = _owner;
             this.el = new Gtk.Notebook();
@@ -113,14 +360,15 @@ public class RepoStatusPopover : Object
             // my vars (dec)
 
             // set gobject values
+            this.el.vexpand = true;
             var child_0 = new Xcls_label_status( _this );
             child_0.ref();
             var child_1 = new Xcls_label_diff( _this );
             child_1.ref();
-            var child_2 = new Xcls_Box6( _this );
+            var child_2 = new Xcls_Box12( _this );
             child_2.ref();
             this.el.append_page (  child_2.el , _this.label_status.el );
-            var child_3 = new Xcls_Box9( _this );
+            var child_3 = new Xcls_Box15( _this );
             child_3.ref();
             this.el.append_page (  child_3.el , _this.label_diff.el );
         }
@@ -173,7 +421,7 @@ public class RepoStatusPopover : Object
         // user defined functions
     }
 
-    public class Xcls_Box6 : Object
+    public class Xcls_Box12 : Object
     {
         public Gtk.Box el;
         private RepoStatusPopover  _this;
@@ -182,7 +430,7 @@ public class RepoStatusPopover : Object
             // my vars (def)
 
         // ctor
-        public Xcls_Box6(RepoStatusPopover _owner )
+        public Xcls_Box12(RepoStatusPopover _owner )
         {
             _this = _owner;
             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
@@ -191,14 +439,14 @@ public class RepoStatusPopover : Object
 
             // set gobject values
             this.el.homogeneous = false;
-            var child_0 = new Xcls_ScrolledWindow7( _this );
+            var child_0 = new Xcls_ScrolledWindow13( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , true,true,0 );
         }
 
         // user defined functions
     }
-    public class Xcls_ScrolledWindow7 : Object
+    public class Xcls_ScrolledWindow13 : Object
     {
         public Gtk.ScrolledWindow el;
         private RepoStatusPopover  _this;
@@ -207,7 +455,7 @@ public class RepoStatusPopover : Object
             // my vars (def)
 
         // ctor
-        public Xcls_ScrolledWindow7(RepoStatusPopover _owner )
+        public Xcls_ScrolledWindow13(RepoStatusPopover _owner )
         {
             _this = _owner;
             this.el = new Gtk.ScrolledWindow( null, null );
@@ -251,7 +499,7 @@ public class RepoStatusPopover : Object
 
 
 
-    public class Xcls_Box9 : Object
+    public class Xcls_Box15 : Object
     {
         public Gtk.Box el;
         private RepoStatusPopover  _this;
@@ -260,7 +508,7 @@ public class RepoStatusPopover : Object
             // my vars (def)
 
         // ctor
-        public Xcls_Box9(RepoStatusPopover _owner )
+        public Xcls_Box15(RepoStatusPopover _owner )
         {
             _this = _owner;
             this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 );
@@ -269,14 +517,14 @@ public class RepoStatusPopover : Object
 
             // set gobject values
             this.el.homogeneous = false;
-            var child_0 = new Xcls_ScrolledWindow10( _this );
+            var child_0 = new Xcls_ScrolledWindow16( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , true,true,0 );
         }
 
         // user defined functions
     }
-    public class Xcls_ScrolledWindow10 : Object
+    public class Xcls_ScrolledWindow16 : Object
     {
         public Gtk.ScrolledWindow el;
         private RepoStatusPopover  _this;
@@ -285,7 +533,7 @@ public class RepoStatusPopover : Object
             // my vars (def)
 
         // ctor
-        public Xcls_ScrolledWindow10(RepoStatusPopover _owner )
+        public Xcls_ScrolledWindow16(RepoStatusPopover _owner )
         {
             _this = _owner;
             this.el = new Gtk.ScrolledWindow( null, null );
@@ -331,7 +579,7 @@ public class RepoStatusPopover : Object
 
 
 
-    public class Xcls_Box12 : Object
+    public class Xcls_Box18 : Object
     {
         public Gtk.Box el;
         private RepoStatusPopover  _this;
@@ -340,7 +588,7 @@ public class RepoStatusPopover : Object
             // my vars (def)
 
         // ctor
-        public Xcls_Box12(RepoStatusPopover _owner )
+        public Xcls_Box18(RepoStatusPopover _owner )
         {
             _this = _owner;
             this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 );
@@ -351,92 +599,72 @@ public class RepoStatusPopover : Object
             this.el.homogeneous = true;
             this.el.expand = false;
             this.el.vexpand = false;
-            var child_0 = new Xcls_Button13( _this );
+            var child_0 = new Xcls_Toolbar19( _this );
             child_0.ref();
             this.el.add (  child_0.el  );
-            var child_1 = new Xcls_Button14( _this );
-            child_1.ref();
-            this.el.add (  child_1.el  );
-            var child_2 = new Xcls_Button15( _this );
-            child_2.ref();
-            this.el.add (  child_2.el  );
-            var child_3 = new Xcls_Button16( _this );
-            child_3.ref();
-            this.el.add (  child_3.el  );
         }
 
         // user defined functions
     }
-    public class Xcls_Button13 : Object
+    public class Xcls_Toolbar19 : Object
     {
-        public Gtk.Button el;
+        public Gtk.Toolbar el;
         private RepoStatusPopover  _this;
 
 
             // my vars (def)
 
         // ctor
-        public Xcls_Button13(RepoStatusPopover _owner )
+        public Xcls_Toolbar19(RepoStatusPopover _owner )
         {
             _this = _owner;
-            this.el = new Gtk.Button();
+            this.el = new Gtk.Toolbar();
 
             // my vars (dec)
 
             // set gobject values
-            this.el.label = "Stash Changes";
-
-            //listeners
-            this.el.button_press_event.connect( () => {
-              
-               
-               GitMonitor.gitmonitor.stop();
-               _this.repo.git({ "stash" , "--all" });
-               _this.repo.loadStatus();
-               GitMonitor.gitmonitor.start();
-                _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);
-                _this.status_view.el.get_buffer().set_text(_this.repo.git_status);
-                Clones.singleton().reposStore.load();
-              
-               _this.el.hide();
-                return false;
-            });
+            this.el.toolbar_style = Gtk.ToolbarStyle.BOTH_HORIZ;
+            var child_0 = new Xcls_btn_create( _this );
+            child_0.ref();
+            this.el.add (  child_0.el  );
+            var child_1 = new Xcls_btn_merge( _this );
+            child_1.ref();
+            this.el.add (  child_1.el  );
+            var child_2 = new Xcls_ToolButton22( _this );
+            child_2.ref();
+            this.el.add (  child_2.el  );
         }
 
         // user defined functions
     }
-
-    public class Xcls_Button14 : Object
+    public class Xcls_btn_create : Object
     {
-        public Gtk.Button el;
+        public Gtk.ToolButton el;
         private RepoStatusPopover  _this;
 
 
             // my vars (def)
 
         // ctor
-        public Xcls_Button14(RepoStatusPopover _owner )
+        public Xcls_btn_create(RepoStatusPopover _owner )
         {
             _this = _owner;
-            this.el = new Gtk.Button();
+            _this.btn_create = this;
+            this.el = new Gtk.ToolButton(new Gtk.Image.from_icon_name ("gtk-add", Gtk.IconSize.SMALL_TOOLBAR), null);;
 
             // my vars (dec)
 
             // set gobject values
-            this.el.label = "Commit Changes";
+            this.el.label = "Create Branch / Start ticket";
+            this.el.is_important = true;
 
             //listeners
             this.el.button_press_event.connect( () => {
-               _this.repo.git({ "commit" , "-a" ,"-m", "Uncommited changes synced" });
-               _this.repo.push();
-               _this.repo.loadStatus();
-               
-                _this.diff_view.el.get_buffer().set_text(_this.repo.git_diff);
-                _this.status_view.el.get_buffer().set_text(_this.repo.git_status);
-                
-               _this.el.hide();
-               Clones.singleton().reposStore.load();
-               
+               var oldq = new Gee.ArrayList<GitMonitorQueue>();  
+            
+               Clones.singleton().el.response(-1);
+               NewBranch.singleton().show(_this.repo, oldq);
+            
                 return false;
             });
         }
@@ -444,62 +672,73 @@ public class RepoStatusPopover : Object
         // user defined functions
     }
 
-    public class Xcls_Button15 : Object
+    public class Xcls_btn_merge : Object
     {
-        public Gtk.Button el;
+        public Gtk.ToolButton el;
         private RepoStatusPopover  _this;
 
 
             // my vars (def)
 
         // ctor
-        public Xcls_Button15(RepoStatusPopover _owner )
+        public Xcls_btn_merge(RepoStatusPopover _owner )
         {
             _this = _owner;
-            this.el = new Gtk.Button();
+            _this.btn_merge = this;
+            this.el = new Gtk.ToolButton(new Gtk.Image.from_icon_name ("gtk-goto-top", Gtk.IconSize.SMALL_TOOLBAR), null);;
 
             // my vars (dec)
 
             // set gobject values
-            this.el.label = "Create Branch";
+            this.el.label = "Merge branch /  Complete ticket";
+            this.el.is_important = true;
 
             //listeners
-            this.el.button_press_event.connect( () => {
-               var oldq = new Gee.ArrayList<GitMonitorQueue>();  
-            
-               Clones.singleton().el.response(-1);
-               NewBranch.singleton().show(_this.repo, oldq);
+            this.el.clicked.connect( () => {
             
-                return false;
+               _this.el.hide();
+               Clones.singleton().el.response(-1);
+               if (_this.repo.activeTicket != null) {
+                  MergeBranch.singleton().show(_this.repo.activeTicket, null);   
+               }
+                return ;
             });
         }
 
         // user defined functions
     }
 
-    public class Xcls_Button16 : Object
+    public class Xcls_ToolButton22 : Object
     {
-        public Gtk.Button el;
+        public Gtk.ToolButton el;
         private RepoStatusPopover  _this;
 
 
             // my vars (def)
 
         // ctor
-        public Xcls_Button16(RepoStatusPopover _owner )
+        public Xcls_ToolButton22(RepoStatusPopover _owner )
         {
             _this = _owner;
-            this.el = new Gtk.Button();
+            this.el = new Gtk.ToolButton(new Gtk.Image.from_icon_name ("gtk-new", Gtk.IconSize.SMALL_TOOLBAR), null);;
 
             // my vars (dec)
 
             // set gobject values
-            this.el.label = "Ignore for now";
+            this.el.label = "Create Ticket";
+            this.el.is_important = true;
 
             //listeners
             this.el.button_press_event.connect( () => {
-                   _this.el.hide();
-                    return false;
+              
+            
+            
+                  Clones.singleton().el.response(-1);
+              
+               _this.el.hide();
+               Ticket.singleton().show( _this.repo);
+               
+                return false;
             });
         }
 
@@ -508,4 +747,5 @@ public class RepoStatusPopover : Object
 
 
 
+
 }
index f429e1a..652f5f7 100644 (file)
@@ -297,7 +297,7 @@ public class StatusIconA : StatusIcon {
             {
                 
                 var  image = new Gtk.Image();
-                image.set_from_stock(Gtk.Stock.FULLSCREEN,Gtk.IconSize.MENU );
+                image.set_from_stock(Gtk.Stock.GOTO_BOTTOM,Gtk.IconSize.MENU );
                 this.set_image (image);
                 this.label= "Pull (Refresh) All";
                 this.always_show_image = true;
@@ -413,7 +413,7 @@ public class StatusIconA : StatusIcon {
                                        GitMonitor.gitmonitor.pauseError(this.pull_all_error_message);
                                        return;
                                }
-                       
+                               
                                statusicon.set_tooltip_text("Gitlive");
                   
                                GitMonitor.gitmonitor.start();
@@ -453,7 +453,7 @@ public class StatusIconA : StatusIcon {
             {
                 
                 var  image = new Gtk.Image();
-                image.set_from_stock(Gtk.Stock.FULLSCREEN,Gtk.IconSize.MENU );
+                image.set_from_stock(Gtk.Stock.JUSTIFY_FILL,Gtk.IconSize.MENU );
                 this.set_image (image);
                 this.label= "Manage Clones";
                 this.always_show_image = true;
@@ -475,7 +475,7 @@ public class StatusIconA : StatusIcon {
             {
                 
                 var  image = new Gtk.Image();
-                image.set_from_stock(Gtk.Stock.FULLSCREEN,Gtk.IconSize.MENU );
+                image.set_from_stock(Gtk.Stock.NEW,Gtk.IconSize.MENU );
                 this.set_image (image);
                 this.label= "New Ticket";
                 this.always_show_image = true;