fix branching and ticket selection
authorAlan Knowles <alan@roojs.com>
Wed, 30 Jan 2019 08:53:30 +0000 (16:53 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 30 Jan 2019 08:53:30 +0000 (16:53 +0800)
MergeBranch.bjs
MergeBranch.vala
NewBranch.bjs
NewBranch.vala

index 239a5c5..c30e8fe 100644 (file)
@@ -98,7 +98,7 @@
          "* ctor" : "new Gtk.ComboBox.with_entry()",
          "id" : "projectsel",
          "| string selectedProjectId" : "() {\n\tGtk.TreeIter iter;\n\tValue val1;\n \n \n\tthis.el.get_active_iter (out iter);\n\t_this.prmodel.el.get_value (iter, 0, out val1);\n \n\n\treturn  (string) val1;\n\t\n\t\n\t\n\t\n}\n",
-         "* init" : "this.el.set_entry_text_column(1);",
+         "* init" : "this.el.set_entry_text_column(1);\nthis.el.get_child().set_sensitive(false);",
          "bool hexpand" : true,
          "* pack" : "attach_defaults,1,2,1,2",
          "xtype" : "ComboBox",
         },
         {
          "listeners" : {
-          "changed" : "() => {\n\tif (this.loading) {\n\t\treturn;\n\t}\n\t_this.view.loadTicket(this.selectedTicketId());\n\t \n  \t_this.name.updateText();\n\t//_this.name.el.set_text(\"wip_%s_T%s_%s\".printf(name,ticket.id, ticket.summaryToBranchName()));\n\t\n\t//GLib.debug (//\"Selection: %s, %s\\n\", (string) val1, (string) val2);\n}"
+          "changed" : "() => {\n\tif (this.loading) {\n\t\treturn;\n\t}\n\t  \n\t_this.view.loadTicket(this.selectedTicketId());\n\t _this.name.updateText();\n\t//GLib.debug (//\"Selection: %s, %s\\n\", (string) val1, (string) val2);\n}"
          },
+         "* ctor" : "new Gtk.ComboBox.with_entry()",
          "id" : "ticketsel",
-         "* init" : "this.el.add_attribute(_this.dbcellrenderer.el , \"markup\", 1 );",
-         "bool hexpand" : true,
+         "* init" : "//this.el.add_attribute(_this.dbcellrenderer.el , \"markup\", 1 );\nthis.el.set_entry_text_column(1);\nthis.el.get_child().set_sensitive(false);",
          "* pack" : "attach_defaults,1,2,2,3",
          "xtype" : "ComboBox",
-         "# bool loading" : true,
+         "# bool loading" : false,
          "$ xns" : "Gtk",
-         "| string selectedTicketId" : "() {\nGtk.TreeIter iter;\n\tValue val1;\n \n \n\tthis.el.get_active_iter (out iter);\n\t_this.dbmodel.el.get_value (iter, 0, out val1);\n \n\n\treturn  (string) val1;\n\t\n\t\n\t\n\t\n}\n",
+         "| string selectedTicketId" : "() {\nGtk.TreeIter iter;\n\tValue val1;\n \n \n\tif (!this.el.get_active_iter (out iter)) {\n\t\treturn \"\";\n\t}\n\t \n\t_this.dbmodel.el.get_value (iter, 0, out val1);\n \n\n\treturn  (string) val1;\n\t\n\t\n\t\n\t\n}\n",
          "items" : [
           {
            "id" : "dbcellrenderer",
            "id" : "dbmodel",
            "* pack" : "set_model",
            "xtype" : "ListStore",
-           "| void loadTickets" : "  (string project_id) {\n\n    RooTicket.singleton().loadTickets(project_id,RooTicket.Who.ME, RooTicket.Status.ACTIVE);\n    \n    _this.ticketsel.loading = true;\n\n    this.el.clear();                                    \n    Gtk.TreeIter iter;\n    var el = this.el;\n    \n    el.append(out iter);\n    el.set_value(iter, 0, \"\");\n    el.set_value(iter, 1, \"-- select a ticket --\");\n    \n    _this.ticketsel.el.set_active_iter(iter);\n    \n    if (_this.ticket != null &&  _this.ticket.id == \"-1\") {\n\t\tel.append(out iter);\n\t\tel.set_value(iter, 0, \"-1\");\n\t\tel.set_value(iter, 1, \"Temporary Branch - No ticket specified/relivant\");\n        _this.ticketsel.el.set_active_iter(iter);\t\n    }\n    \n    \n    \n    \n    var tickets = RooTicket.singleton().tickets;\n    foreach(var ticket in tickets) {\n    \n        el.append(out iter);\n\n        el.set_value(iter, 0, ticket.id);\n        el.set_value(iter, 1, \"#%s [%s] %s\".printf( ticket.id, ticket.project_id_name , ticket.summary));\n\t\tif (_this.ticket != null && _this.ticket.id == ticket.id) {\n\t\t    _this.ticketsel.el.set_active_iter(iter);\n\t    }\n        \n    }\n    \n    _this.ticketsel.loading = false;\n     //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          \n                                     \n}\n",
+           "| void loadTickets" : "(string project_id  ) {\n\n\n    \n    // fixme .. get project id from selection..\n    \n     RooTicket.singleton().loadTickets(\n \t\t\tproject_id,\n \t\t\t_this.btn_not_me.el.active ? RooTicket.Who.ANYBODY :  RooTicket.Who.ME,\n \t\t\t _this.btn_closed.el.active ? RooTicket.Status.ALL :  RooTicket.Status.ACTIVE\n\t\t );\n        \n    _this.ticketsel.loading = true;\n\n    this.el.clear();                                    \n    Gtk.TreeIter iter;\n    var el = this.el;\n    \n    el.append(out iter);\n\n    \n    el.set_value(iter, 0, \"\");\n    el.set_value(iter, 1, \"-- select a ticket --\");\n    \n    _this.ticketsel.el.set_active_iter(iter);\n    \n    if (_this.ticket != null &&  _this.ticket.id == \"-1\") {\n\t\tel.append(out iter);\n\t\tel.set_value(iter, 0, \"-1\");\n\t\tel.set_value(iter, 1, \"Temporary Branch - No ticket specified/relivant\");\n        _this.ticketsel.el.set_active_iter(iter);\t\n     }\n    \n    \n    \n    var tickets = RooTicket.singleton().tickets;\n    foreach(var ticket in tickets) {\n    \n        el.append(out iter);\n        \n        el.set_value(iter, 0, ticket.id);\n        el.set_value(iter, 1, \"#%s [%s] %s\".printf( ticket.id, ticket.project_id_name , ticket.summary));\n        \n        if (_this.ticket != null && _this.ticket.id == ticket.id) {\n\t\t    _this.ticketsel.el.set_active_iter(iter);\n        }\n        \n    }\n    \n    _this.ticketsel.loading = false;\n     //this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING);          \n                                     \n}\n",
            "$ columns" : "typeof(string),typeof(string)",
            "n_columns" : 2,
            "$ xns" : "Gtk"
         {
          "id" : "name",
          "$ visible" : true,
-         "| void updateText" : "() {\n\tvar ticket_id = _this.ticketsel.selectedTicketId();\n\t\n\tRooTicket ticket = null;\n\tif (ticket_id.length > 0){\n\t\tticket = RooTicket.singleton().getById(ticket_id);\n\t}\n\t\n\tvar name = RooTicket.singleton().usernameLocal();\n\tvar action = _this.actionsel.selectedAction();\n\tthis.el.set_editable(true); \n \tswitch (action) {\n \t\tcase \"CLOSE\": // merge changes and close..\n\t \t\tthis.el.set_text(\"Fix #%s - %s\".printf(ticket_id, ticket != null ? ticket.summary : \"\"));\n\t \t\tbreak;\n\t \tcase \"LEAVE\": // partial fix\t\n\t \t\tthis.el.set_text(\"Partial Fix #%s - %s\".printf(ticket_id,   ticket != null ? ticket.summary : \"\"));\n\t \t\tbreak;\n \t\tcase \"MASTER\": // merge master\n \t\tcase \"EXIT\": // just switch back... \t\t\n \t\t\tthis.el.set_editable(false);\n\t \t\tthis.el.set_text(\"\"); // not relivant.. \t\t\t\n\t\t\tbreak;\n \t\tdefault:\n \t\t\n \t\t\tbreak; /// don't fix the text value.\n\t}\n   \n}\n",
+         "| void updateText" : "() {\n\tvar ticket_id = _this.ticketsel.selectedTicketId();\n\t \n\tRooTicket ticket = null;\n\tif (ticket_id.length > 0){\n\t\tticket = RooTicket.singleton().getById(ticket_id);\n\t}\n\t\n\tvar name = RooTicket.singleton().usernameLocal();\n\tvar action = _this.actionsel.selectedAction();\n\tthis.el.set_editable(true); \n \tswitch (action) {\n \t\tcase \"CLOSE\": // merge changes and close..\n\t \t\tthis.el.set_text(\"Fix #%s - %s\".printf(ticket_id, ticket != null ? ticket.summary : \"\"));\n\t \t\tbreak;\n\t \tcase \"LEAVE\": // partial fix\t\n\t \t\tthis.el.set_text(\"Partial Fix #%s - %s\".printf(ticket_id,   ticket != null ? ticket.summary : \"\"));\n\t \t\tbreak;\n \t\tcase \"MASTER\": // merge master\n \t\tcase \"EXIT\": // just switch back... \t\t\n \t\t\tthis.el.set_editable(false);\n\t \t\tthis.el.set_text(\"\"); // not relivant.. \t\t\t\n\t\t\tbreak;\n \t\tdefault:\n \t\t\n \t\t\tbreak; /// don't fix the text value.\n\t}\n   \n}\n",
          "xtype" : "Entry",
          "* pack" : "attach_defaults,1,2,4,5",
          "$ xns" : "Gtk"
index 61e267a..e827bfa 100644 (file)
@@ -477,6 +477,7 @@ public class MergeBranch : Object
             // init method
 
             this.el.set_entry_text_column(1);
+            this.el.get_child().set_sensitive(false);
 
             //listeners
             this.el.changed.connect( () => {
@@ -651,13 +652,12 @@ public class MergeBranch : Object
         {
             _this = _owner;
             _this.ticketsel = this;
-            this.el = new Gtk.ComboBox();
+            this.el = new Gtk.ComboBox.with_entry();
 
             // my vars (dec)
-            this.loading = true;
+            this.loading = false;
 
             // set gobject values
-            this.el.hexpand = true;
             var child_0 = new Xcls_dbcellrenderer( _this );
             child_0.ref();
             this.el.pack_start (  child_0.el , true );
@@ -667,18 +667,18 @@ public class MergeBranch : Object
 
             // init method
 
-            this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
+            //this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
+            this.el.set_entry_text_column(1);
+            this.el.get_child().set_sensitive(false);
 
             //listeners
             this.el.changed.connect( () => {
                if (this.loading) {
                        return;
                }
+                 
                _this.view.loadTicket(this.selectedTicketId());
-                
-               _this.name.updateText();
-               //_this.name.el.set_text("wip_%s_T%s_%s".printf(name,ticket.id, ticket.summaryToBranchName()));
-               
+                _this.name.updateText();
                //GLib.debug (//"Selection: %s, %s\n", (string) val1, (string) val2);
             });
         }
@@ -689,7 +689,10 @@ public class MergeBranch : Object
                Value val1;
          
          
-               this.el.get_active_iter (out iter);
+               if (!this.el.get_active_iter (out iter)) {
+                       return "";
+               }
+                
                _this.dbmodel.el.get_value (iter, 0, out val1);
          
         
@@ -744,10 +747,18 @@ public class MergeBranch : Object
         }
 
         // user defined functions
-        public void loadTickets (string project_id) {
+        public void loadTickets (string project_id  ) {
+        
         
-            RooTicket.singleton().loadTickets(project_id,RooTicket.Who.ME, RooTicket.Status.ACTIVE);
             
+            // fixme .. get project id from selection..
+            
+             RooTicket.singleton().loadTickets(
+                               project_id,
+                               _this.btn_not_me.el.active ? RooTicket.Who.ANYBODY :  RooTicket.Who.ME,
+                                _this.btn_closed.el.active ? RooTicket.Status.ALL :  RooTicket.Status.ACTIVE
+                        );
+                
             _this.ticketsel.loading = true;
         
             this.el.clear();                                    
@@ -755,6 +766,8 @@ public class MergeBranch : Object
             var el = this.el;
             
             el.append(out iter);
+        
+            
             el.set_value(iter, 0, "");
             el.set_value(iter, 1, "-- select a ticket --");
             
@@ -765,8 +778,7 @@ public class MergeBranch : Object
                        el.set_value(iter, 0, "-1");
                        el.set_value(iter, 1, "Temporary Branch - No ticket specified/relivant");
                 _this.ticketsel.el.set_active_iter(iter);      
-            }
-            
+             }
             
             
             
@@ -774,12 +786,13 @@ public class MergeBranch : Object
             foreach(var ticket in tickets) {
             
                 el.append(out iter);
-        
+                
                 el.set_value(iter, 0, ticket.id);
                 el.set_value(iter, 1, "#%s [%s] %s".printf( ticket.id, ticket.project_id_name , ticket.summary));
-                       if (_this.ticket != null && _this.ticket.id == ticket.id) {
+                
+                if (_this.ticket != null && _this.ticket.id == ticket.id) {
                            _this.ticketsel.el.set_active_iter(iter);
-                   }
+                }
                 
             }
             
@@ -967,7 +980,7 @@ public class MergeBranch : Object
         // user defined functions
         public void updateText () {
                var ticket_id = _this.ticketsel.selectedTicketId();
-               
+                
                RooTicket ticket = null;
                if (ticket_id.length > 0){
                        ticket = RooTicket.singleton().getById(ticket_id);
index 335d58a..1e8b914 100644 (file)
@@ -97,7 +97,7 @@
          },
          "* ctor" : "new Gtk.ComboBox.with_entry()",
          "id" : "ticketsel",
-         "* init" : "//this.el.add_attribute(_this.dbcellrenderer.el , \"markup\", 1 );\nthis.el.set_entry_text_column(1);",
+         "* init" : "//this.el.add_attribute(_this.dbcellrenderer.el , \"markup\", 1 );\nthis.el.set_entry_text_column(1);\nthis.el.get_child().set_sensitive(false); ",
          "* pack" : "attach_defaults,1,4,1,2",
          "xtype" : "ComboBox",
          "# bool loading" : false,
index 6b2c345..8b9a20a 100644 (file)
@@ -461,6 +461,7 @@ public class NewBranch : Object
 
             //this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 );
             this.el.set_entry_text_column(1);
+            this.el.get_child().set_sensitive(false);
 
             //listeners
             this.el.changed.connect( () => {