X-Git-Url: http://git.roojs.org/?p=gitlive;a=blobdiff_plain;f=RepoStatusPopover.vala;h=9c2093678174b69d01fa9d6ea7c2ebcd6c8da890;hp=751f07c4b43c8681a6cac9039559637366f6799e;hb=refs%2Fheads%2Fwip_alan_T5623_reset_pull_create_ticket_on;hpb=012da43ef16a6d3d1fc3bdca0c0d82be16d7b5f9 diff --git a/RepoStatusPopover.vala b/RepoStatusPopover.vala index 751f07c4..9c209367 100644 --- a/RepoStatusPopover.vala +++ b/RepoStatusPopover.vala @@ -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,164 +104,238 @@ 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.pack_end ( child_1.el , false,false,0 ); + 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_Notebook3 : Object + public class Xcls_Box3 : Object { - public Gtk.Notebook el; + public Gtk.Box el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_Notebook3(RepoStatusPopover _owner ) + public Xcls_Box3(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.Notebook(); + this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); // my vars (dec) // set gobject values - var child_0 = new Xcls_label_status( _this ); + this.el.homogeneous = true; + this.el.expand = false; + this.el.vexpand = false; + var child_0 = new Xcls_Toolbar4( _this ); child_0.ref(); - var child_1 = new Xcls_label_diff( _this ); - child_1.ref(); - var child_2 = new Xcls_Box6( _this ); - child_2.ref(); - this.el.append_page ( child_2.el , _this.label_status.el ); - var child_3 = new Xcls_Box9( _this ); - child_3.ref(); - this.el.append_page ( child_3.el , _this.label_diff.el ); + this.el.add ( child_0.el ); } // user defined functions } - public class Xcls_label_status : Object + public class Xcls_Toolbar4 : Object { - public Gtk.Label el; + public Gtk.Toolbar el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_label_status(RepoStatusPopover _owner ) + public Xcls_Toolbar4(RepoStatusPopover _owner ) { _this = _owner; - _this.label_status = this; - this.el = new Gtk.Label( "Status" ); + 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.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_label_diff : Object + public class Xcls_btn_stash : Object { - public Gtk.Label el; + public Gtk.ToolButton el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_label_diff(RepoStatusPopover _owner ) + public Xcls_btn_stash(RepoStatusPopover _owner ) { _this = _owner; - _this.label_diff = this; - this.el = new Gtk.Label( "Diff" ); + _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_Box6 : Object + public class Xcls_btn_commit : Object { - public Gtk.Box el; + public Gtk.ToolButton el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_Box6(RepoStatusPopover _owner ) + public Xcls_btn_commit(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 ); + _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.homogeneous = false; - var child_0 = new Xcls_ScrolledWindow7( _this ); - child_0.ref(); - this.el.pack_start ( child_0.el , true,true,0 ); + 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_ScrolledWindow7 : Object + + public class Xcls_btn_reset : Object { - public Gtk.ScrolledWindow el; + public Gtk.ToolButton el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_ScrolledWindow7(RepoStatusPopover _owner ) + public Xcls_btn_reset(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ScrolledWindow( null, null ); + _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 - var child_0 = new Xcls_status_view( _this ); - child_0.ref(); - this.el.add ( child_0.el ); + 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_status_view : Object + + public class Xcls_btn_pull : Object { - public Gtk.SourceView el; + public Gtk.ToolButton el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_status_view(RepoStatusPopover _owner ) + public Xcls_btn_pull(RepoStatusPopover _owner ) { _this = _owner; - _this.status_view = this; - this.el = new Gtk.SourceView(); + _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) - // init method + // set gobject values + this.el.label = "Pull updates"; + this.el.is_important = true; - var description = Pango.FontDescription.from_string("monospace"); - description.set_size(9000); - this.el.override_font(description); + //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 @@ -251,86 +343,84 @@ public class RepoStatusPopover : Object - public class Xcls_Box9 : Object + public class Xcls_Notebook9 : Object { - public Gtk.Box el; + public Gtk.Notebook el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_Box9(RepoStatusPopover _owner ) + public Xcls_Notebook9(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 ); + this.el = new Gtk.Notebook(); // my vars (dec) // set gobject values - this.el.homogeneous = false; - var child_0 = new Xcls_ScrolledWindow10( _this ); + this.el.vexpand = true; + var child_0 = new Xcls_label_status( _this ); child_0.ref(); - this.el.pack_start ( child_0.el , true,true,0 ); + var child_1 = new Xcls_label_diff( _this ); + child_1.ref(); + 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_Box15( _this ); + child_3.ref(); + this.el.append_page ( child_3.el , _this.label_diff.el ); } // user defined functions } - public class Xcls_ScrolledWindow10 : Object + public class Xcls_label_status : Object { - public Gtk.ScrolledWindow el; + public Gtk.Label el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_ScrolledWindow10(RepoStatusPopover _owner ) + public Xcls_label_status(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ScrolledWindow( null, null ); + _this.label_status = this; + this.el = new Gtk.Label( "Status" ); // my vars (dec) // set gobject values - this.el.height_request = 400; - var child_0 = new Xcls_diff_view( _this ); - child_0.ref(); - this.el.add ( child_0.el ); } // user defined functions } - public class Xcls_diff_view : Object + + public class Xcls_label_diff : Object { - public Gtk.SourceView el; + public Gtk.Label el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_diff_view(RepoStatusPopover _owner ) + public Xcls_label_diff(RepoStatusPopover _owner ) { _this = _owner; - _this.diff_view = this; - this.el = new Gtk.SourceView(); + _this.label_diff = this; + this.el = new Gtk.Label( "Diff" ); // my vars (dec) - // init method - - var description = Pango.FontDescription.from_string("monospace"); - description.set_size(9000); - this.el.override_font(description); + // set gobject values } // user defined functions } - - - public class Xcls_Box12 : Object { public Gtk.Box el; @@ -343,251 +433,211 @@ public class RepoStatusPopover : Object public Xcls_Box12(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); + this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 ); // my vars (dec) // set gobject values - this.el.homogeneous = true; - this.el.expand = false; - this.el.vexpand = false; - var child_0 = new Xcls_Toolbar13( _this ); + this.el.homogeneous = false; + var child_0 = new Xcls_ScrolledWindow13( _this ); child_0.ref(); - this.el.pack_start ( child_0.el , ?bool?,?bool?,?uint? ); - var child_1 = new Xcls_ToolButton15( _this ); - child_1.ref(); - this.el.add ( child_1.el ); - var child_2 = new Xcls_ToolButton16( _this ); - child_2.ref(); - this.el.add ( child_2.el ); - var child_3 = new Xcls_ToolButton17( _this ); - child_3.ref(); - this.el.add ( child_3.el ); - var child_4 = new Xcls_ToolButton18( _this ); - child_4.ref(); - this.el.add ( child_4.el ); - var child_5 = new Xcls_ToolButton19( _this ); - child_5.ref(); - this.el.add ( child_5.el ); - var child_6 = new Xcls_ToolButton20( _this ); - child_6.ref(); - this.el.add ( child_6.el ); - var child_7 = new Xcls_ToolButton21( _this ); - child_7.ref(); - this.el.add ( child_7.el ); + this.el.pack_start ( child_0.el , true,true,0 ); } // user defined functions } - public class Xcls_Toolbar13 : Object + public class Xcls_ScrolledWindow13 : Object { - public Gtk.Toolbar el; + public Gtk.ScrolledWindow el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_Toolbar13(RepoStatusPopover _owner ) + public Xcls_ScrolledWindow13(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.Toolbar(); + this.el = new Gtk.ScrolledWindow( null, null ); // my vars (dec) // set gobject values - var child_0 = new Xcls_ToolButton14( _this ); + var child_0 = new Xcls_status_view( _this ); child_0.ref(); this.el.add ( child_0.el ); } // user defined functions } - public class Xcls_ToolButton14 : Object + public class Xcls_status_view : Object { - public Gtk.ToolButton el; + public Gtk.SourceView el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_ToolButton14(RepoStatusPopover _owner ) + public Xcls_status_view(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ToolButton( null, "Stash Changes" ); + _this.status_view = this; + this.el = new Gtk.SourceView(); // my vars (dec) - // set gobject values + // init method - //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; - }); + var description = Pango.FontDescription.from_string("monospace"); + description.set_size(9000); + this.el.override_font(description); } // user defined functions } - public class Xcls_ToolButton15 : Object + + public class Xcls_Box15 : Object { - public Gtk.ToolButton el; + public Gtk.Box el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_ToolButton15(RepoStatusPopover _owner ) + public Xcls_Box15(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ToolButton( null, "Stash Changes" ); + this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 ); // my vars (dec) // set gobject values - - //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.homogeneous = false; + 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_ToolButton16 : Object + public class Xcls_ScrolledWindow16 : Object { - public Gtk.ToolButton el; + public Gtk.ScrolledWindow el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_ToolButton16(RepoStatusPopover _owner ) + public Xcls_ScrolledWindow16(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ToolButton( null, "Commit Changes" ); + this.el = new Gtk.ScrolledWindow( null, null ); // my vars (dec) // set gobject values - - //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; - }); + this.el.height_request = 400; + var child_0 = new Xcls_diff_view( _this ); + child_0.ref(); + this.el.add ( child_0.el ); } // user defined functions } - - public class Xcls_ToolButton17 : Object + public class Xcls_diff_view : Object { - public Gtk.ToolButton el; + public Gtk.SourceView el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_ToolButton17(RepoStatusPopover _owner ) + public Xcls_diff_view(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ToolButton( null, "Create Branch / Start ticket" ); + _this.diff_view = this; + this.el = new Gtk.SourceView(); // my vars (dec) - // set gobject values + // init method - //listeners - this.el.button_press_event.connect( () => { - var oldq = new Gee.ArrayList(); - - Clones.singleton().el.response(-1); - NewBranch.singleton().show(_this.repo, oldq); - - return false; - }); + var description = Pango.FontDescription.from_string("monospace"); + description.set_size(9000); + this.el.override_font(description); } // user defined functions } - public class Xcls_ToolButton18 : Object + + + + public class Xcls_Box18 : Object { - public Gtk.ToolButton el; + public Gtk.Box el; private RepoStatusPopover _this; // my vars (def) // ctor - public Xcls_ToolButton18(RepoStatusPopover _owner ) + public Xcls_Box18(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ToolButton( null, "Reset to remote" ); + this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); // my vars (dec) // set gobject values - - //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; - }); + this.el.homogeneous = true; + this.el.expand = false; + this.el.vexpand = false; + var child_0 = new Xcls_Toolbar19( _this ); + child_0.ref(); + this.el.add ( child_0.el ); } // user defined functions } + public class Xcls_Toolbar19 : Object + { + public Gtk.Toolbar el; + private RepoStatusPopover _this; + + + // my vars (def) + + // ctor + public Xcls_Toolbar19(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_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 ); + } - public class Xcls_ToolButton19 : Object + // user defined functions + } + public class Xcls_btn_create : Object { public Gtk.ToolButton el; private RepoStatusPopover _this; @@ -596,28 +646,25 @@ public class RepoStatusPopover : Object // my vars (def) // ctor - public Xcls_ToolButton19(RepoStatusPopover _owner ) + public Xcls_btn_create(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ToolButton( null, "Pull updates" ); + _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 = "Create Branch / Start ticket"; + 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(); + var oldq = new Gee.ArrayList(); + + Clones.singleton().el.response(-1); + NewBranch.singleton().show(_this.repo, oldq); + return false; }); } @@ -625,7 +672,7 @@ public class RepoStatusPopover : Object // user defined functions } - public class Xcls_ToolButton20 : Object + public class Xcls_btn_merge : Object { public Gtk.ToolButton el; private RepoStatusPopover _this; @@ -634,31 +681,34 @@ public class RepoStatusPopover : Object // my vars (def) // ctor - public Xcls_ToolButton20(RepoStatusPopover _owner ) + public Xcls_btn_merge(RepoStatusPopover _owner ) { _this = _owner; - this.el = new Gtk.ToolButton( null, "Merge branch/ ticket" ); + _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 = "Merge branch / Complete ticket"; + this.el.is_important = true; //listeners - this.el.button_press_event.connect( () => { + this.el.clicked.connect( () => { _this.el.hide(); Clones.singleton().el.response(-1); if (_this.repo.activeTicket != null) { MergeBranch.singleton().show(_this.repo.activeTicket, null); } - return false; + return ; }); } // user defined functions } - public class Xcls_ToolButton21 : Object + public class Xcls_ToolButton22 : Object { public Gtk.ToolButton el; private RepoStatusPopover _this; @@ -667,15 +717,16 @@ public class RepoStatusPopover : Object // my vars (def) // ctor - public Xcls_ToolButton21(RepoStatusPopover _owner ) + public Xcls_ToolButton22(RepoStatusPopover _owner ) { _this = _owner; - this.el = new GtkButton.new_from_stock(); + 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 = "Create Ticket"; + this.el.is_important = true; //listeners this.el.button_press_event.connect( () => { @@ -696,4 +747,5 @@ public class RepoStatusPopover : Object + }