mirror of
https://gitlab.gnome.org/GNOME/gitg
synced 2024-10-02 14:13:48 +00:00
Implement removing repositories from list
https://bugzilla.gnome.org/show_bug.cgi?id=729729
This commit is contained in:
parent
6a182c1d39
commit
5d50b67b0c
|
@ -43,6 +43,10 @@ namespace Gitg
|
|||
private Gtk.Arrow d_arrow;
|
||||
[GtkChild]
|
||||
private Gtk.Spinner d_spinner;
|
||||
[GtkChild]
|
||||
private Gtk.Button d_remove_button;
|
||||
|
||||
public signal void request_remove();
|
||||
|
||||
public Repository? repository
|
||||
{
|
||||
|
@ -64,6 +68,14 @@ namespace Gitg
|
|||
}
|
||||
}
|
||||
|
||||
public bool can_remove
|
||||
{
|
||||
set
|
||||
{
|
||||
d_remove_button.sensitive = value;
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime time
|
||||
{
|
||||
get { return d_time; }
|
||||
|
@ -127,6 +139,12 @@ namespace Gitg
|
|||
{
|
||||
Object(repository_name: name, branch_name: branch_name, has_remote: has_remote);
|
||||
}
|
||||
|
||||
[GtkCallback]
|
||||
private void remove_button_clicked(Gtk.Button remove)
|
||||
{
|
||||
request_remove();
|
||||
}
|
||||
}
|
||||
|
||||
public signal void repository_activated(Repository repository);
|
||||
|
@ -251,6 +269,8 @@ namespace Gitg
|
|||
{
|
||||
Row? row = get_row_for_repository(repository);
|
||||
|
||||
var f = repository.workdir != null ? repository.workdir : repository.location;
|
||||
|
||||
if (row == null)
|
||||
{
|
||||
string head_name = "";
|
||||
|
@ -271,6 +291,26 @@ namespace Gitg
|
|||
row = new Row(repository.name, head_name, has_remote);
|
||||
row.repository = repository;
|
||||
row.show();
|
||||
|
||||
if (f != null)
|
||||
{
|
||||
row.request_remove.connect(() => {
|
||||
try
|
||||
{
|
||||
var recent_manager = Gtk.RecentManager.get_default();
|
||||
recent_manager.remove_item(f.get_uri());
|
||||
} catch {}
|
||||
|
||||
remove(row);
|
||||
});
|
||||
|
||||
row.can_remove = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
row.can_remove = false;
|
||||
}
|
||||
|
||||
add(row);
|
||||
}
|
||||
else
|
||||
|
@ -280,7 +320,6 @@ namespace Gitg
|
|||
invalidate_sort();
|
||||
}
|
||||
|
||||
var f = repository.workdir != null ? repository.workdir : repository.location;
|
||||
if (f != null)
|
||||
{
|
||||
add_repository_to_recent_manager(f.get_uri());
|
||||
|
|
|
@ -16,6 +16,44 @@
|
|||
<property name="margin_top">12</property>
|
||||
<property name="margin_bottom">12</property>
|
||||
<property name="column_spacing">10</property>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="delete_button_align">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="has_focus">False</property>
|
||||
<property name="is_focus">False</property>
|
||||
<property name="yscale">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="d_remove_button">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="has_focus">False</property>
|
||||
<property name="is_focus">False</property>
|
||||
<property name="vexpand">False</property>
|
||||
<property name="relief">none</property>
|
||||
<property name="tooltip_text" translatable="yes">Remove the repository from the list (does not delete the repository from disk)</property>
|
||||
<signal name="clicked" handler="remove_button_clicked" swapped="no"/>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkImage" id="delete_image">
|
||||
<property name="visible">True</property>
|
||||
<property name="pixel_size">16</property>
|
||||
<property name="icon_name">list-remove-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkImage" id="d_image">
|
||||
<property name="visible">True</property>
|
||||
|
@ -25,7 +63,7 @@
|
|||
<property name="stock">gtk-missing-image</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">2</property>
|
||||
|
@ -43,7 +81,7 @@
|
|||
<property name="ellipsize">end</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
|
@ -63,7 +101,7 @@
|
|||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">1</property>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="top_attach">1</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">1</property>
|
||||
|
@ -78,7 +116,7 @@
|
|||
<property name="shadow_type">none</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">2</property>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">2</property>
|
||||
|
@ -91,7 +129,7 @@
|
|||
<property name="is_focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">3</property>
|
||||
<property name="left_attach">4</property>
|
||||
<property name="top_attach">0</property>
|
||||
<property name="width">1</property>
|
||||
<property name="height">2</property>
|
||||
|
|
Loading…
Reference in a new issue