gui: Delete and disable library paths
The signal connections for these features are really difficult to test programmatically, but I can test the effects by calling each function directly. Signed-off-by: Anna Schumaker <schumaker.anna@gmail.com>
This commit is contained in:
parent
f51ba3e3ec
commit
f80203c5fe
|
@ -7,40 +7,6 @@
|
||||||
<property name="step_increment">1</property>
|
<property name="step_increment">1</property>
|
||||||
<property name="page_increment">10</property>
|
<property name="page_increment">10</property>
|
||||||
</object>
|
</object>
|
||||||
<object class="GtkImage" id="image12">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="stock">gtk-refresh</property>
|
|
||||||
<property name="icon_size">1</property>
|
|
||||||
</object>
|
|
||||||
<object class="GtkImage" id="image13">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="icon_name">user-trash-full</property>
|
|
||||||
<property name="icon_size">1</property>
|
|
||||||
</object>
|
|
||||||
<object class="GtkMenu" id="o_collection_rc">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImageMenuItem" id="o_collection_rc_update">
|
|
||||||
<property name="label" translatable="yes">Update</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="image">image12</property>
|
|
||||||
<property name="use_stock">False</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkImageMenuItem" id="o_collection_rc_delete">
|
|
||||||
<property name="label" translatable="yes">Delete</property>
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="can_focus">False</property>
|
|
||||||
<property name="image">image13</property>
|
|
||||||
<property name="use_stock">False</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
<object class="GtkListStore" id="o_collection_dirs">
|
<object class="GtkListStore" id="o_collection_dirs">
|
||||||
<columns>
|
<columns>
|
||||||
<!-- column-name id -->
|
<!-- column-name id -->
|
||||||
|
@ -112,6 +78,7 @@
|
||||||
<property name="vscroll_policy">natural</property>
|
<property name="vscroll_policy">natural</property>
|
||||||
<property name="model">o_collection_dirs</property>
|
<property name="model">o_collection_dirs</property>
|
||||||
<property name="rules_hint">True</property>
|
<property name="rules_hint">True</property>
|
||||||
|
<property name="enable_search">False</property>
|
||||||
<child internal-child="selection">
|
<child internal-child="selection">
|
||||||
<object class="GtkTreeSelection" id="treeview-selection1"/>
|
<object class="GtkTreeSelection" id="treeview-selection1"/>
|
||||||
</child>
|
</child>
|
||||||
|
@ -119,7 +86,7 @@
|
||||||
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
|
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
|
||||||
<property name="fixed_width">20</property>
|
<property name="fixed_width">20</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkCellRendererToggle" id="cellrenderertoggle1"/>
|
<object class="GtkCellRendererToggle" id="o_collection_toggle"/>
|
||||||
<attributes>
|
<attributes>
|
||||||
<attribute name="active">1</attribute>
|
<attribute name="active">1</attribute>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
|
|
@ -68,6 +68,49 @@ static void on_collection_row_activated(const Gtk::TreePath &path,
|
||||||
chooser->set_current_folder(dir);
|
chooser->set_current_folder(dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_TEST
|
||||||
|
static
|
||||||
|
#endif /* CONFIG_TEST */
|
||||||
|
void do_collection_delete()
|
||||||
|
{
|
||||||
|
Gtk::TreePath path;
|
||||||
|
Gtk::TreeViewColumn *col;
|
||||||
|
Gtk::TreeView *treeview;
|
||||||
|
|
||||||
|
builder->get_widget("o_collection_treeview", treeview);
|
||||||
|
treeview->get_cursor(path, col);
|
||||||
|
if (path) {
|
||||||
|
Glib::RefPtr<Gtk::ListStore> list;
|
||||||
|
get_object("o_collection_dirs", list);
|
||||||
|
Gtk::TreeModel::Row row = *(list->get_iter(path));
|
||||||
|
library :: del_path(row[collection_cols.c_col_id]);
|
||||||
|
list->erase(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool on_collection_key_pressed(GdkEventKey *event)
|
||||||
|
{
|
||||||
|
std::string key = gdk_keyval_name(event->keyval);
|
||||||
|
if (key == "Delete") {
|
||||||
|
do_collection_delete();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_TEST
|
||||||
|
static
|
||||||
|
#endif /* CONFIG_TEST */
|
||||||
|
void on_collection_toggled(const Glib::ustring &path)
|
||||||
|
{
|
||||||
|
Glib::RefPtr<Gtk::ListStore> list;
|
||||||
|
get_object("o_collection_dirs", list);
|
||||||
|
Gtk::TreeModel::Row row = *(list->get_iter(path));
|
||||||
|
row[collection_cols.c_col_enabled] = !row[collection_cols.c_col_enabled];
|
||||||
|
library :: set_enabled(row[collection_cols.c_col_id],
|
||||||
|
row[collection_cols.c_col_enabled]);
|
||||||
|
}
|
||||||
|
|
||||||
static void on_library_add(unsigned int id, library :: Library *path)
|
static void on_library_add(unsigned int id, library :: Library *path)
|
||||||
{
|
{
|
||||||
Gtk::TreeModel::Row row;
|
Gtk::TreeModel::Row row;
|
||||||
|
@ -153,6 +196,7 @@ Gtk::Window *connect_wires()
|
||||||
Gtk::Window *window;
|
Gtk::Window *window;
|
||||||
struct Callbacks *cb = get_callbacks();
|
struct Callbacks *cb = get_callbacks();
|
||||||
Glib::RefPtr<Gtk::ListStore> list;
|
Glib::RefPtr<Gtk::ListStore> list;
|
||||||
|
Glib::RefPtr<Gtk::CellRendererToggle> toggle;
|
||||||
Gtk::TreeView *treeview;
|
Gtk::TreeView *treeview;
|
||||||
|
|
||||||
builder = Gtk::Builder::create();
|
builder = Gtk::Builder::create();
|
||||||
|
@ -166,7 +210,10 @@ Gtk::Window *connect_wires()
|
||||||
list->set_sort_column(collection_cols.c_col_path, Gtk::SORT_ASCENDING);
|
list->set_sort_column(collection_cols.c_col_path, Gtk::SORT_ASCENDING);
|
||||||
|
|
||||||
builder->get_widget("o_collection_treeview", treeview);
|
builder->get_widget("o_collection_treeview", treeview);
|
||||||
|
get_object("o_collection_toggle", toggle);
|
||||||
treeview->signal_row_activated().connect(sigc::ptr_fun(on_collection_row_activated));
|
treeview->signal_row_activated().connect(sigc::ptr_fun(on_collection_row_activated));
|
||||||
|
treeview->signal_key_press_event().connect(sigc::ptr_fun(on_collection_key_pressed));
|
||||||
|
toggle->signal_toggled().connect(sigc::ptr_fun(on_collection_toggled));
|
||||||
|
|
||||||
connect_button("o_collection_ok", on_collection_ok);
|
connect_button("o_collection_ok", on_collection_ok);
|
||||||
connect_button("o_collection_update", on_collection_update);
|
connect_button("o_collection_update", on_collection_update);
|
||||||
|
|
|
@ -11,4 +11,9 @@ Gtk::Window *connect_wires();
|
||||||
Gtk::Button *get_button(const std::string &);
|
Gtk::Button *get_button(const std::string &);
|
||||||
Glib::RefPtr<Gtk::Builder> &get_builder();
|
Glib::RefPtr<Gtk::Builder> &get_builder();
|
||||||
|
|
||||||
|
#ifdef CONFIG_TEST
|
||||||
|
void do_collection_delete();
|
||||||
|
void on_collection_toggled(const Glib::ustring &);
|
||||||
|
#endif /* CONFIG_TEST */
|
||||||
|
|
||||||
#endif /* OCARINA_H */
|
#endif /* OCARINA_H */
|
||||||
|
|
|
@ -24,12 +24,18 @@ void click_button(const std::string &name)
|
||||||
get_button(name)->clicked();
|
get_button(name)->clicked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void select_treeview_row(const std::string &tv_name, const std::string &path)
|
||||||
|
{
|
||||||
|
Gtk::TreeView *treeview;
|
||||||
|
get_builder()->get_widget(tv_name, treeview);
|
||||||
|
treeview->set_cursor(Gtk::TreePath(path));
|
||||||
|
}
|
||||||
|
|
||||||
void activate_treeview_row(const std::string &tv_name, const std::string &path)
|
void activate_treeview_row(const std::string &tv_name, const std::string &path)
|
||||||
{
|
{
|
||||||
Gtk::TreeView *treeview;
|
Gtk::TreeView *treeview;
|
||||||
Gtk::TreeViewColumn col("2");
|
Gtk::TreeViewColumn col("2");
|
||||||
get_builder()->get_widget("o_collection_treeview", treeview);
|
get_builder()->get_widget(tv_name, treeview);
|
||||||
treeview->set_cursor(Gtk::TreePath(path));
|
|
||||||
treeview->row_activated(Gtk::TreePath(path), col);
|
treeview->row_activated(Gtk::TreePath(path), col);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -61,14 +67,42 @@ bool test_0()
|
||||||
click_button("o_collection_update");
|
click_button("o_collection_update");
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
|
select_treeview_row("o_collection_treeview", "0");
|
||||||
activate_treeview_row("o_collection_treeview", "0");
|
activate_treeview_row("o_collection_treeview", "0");
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
|
select_treeview_row("o_collection_treeview", "1");
|
||||||
activate_treeview_row("o_collection_treeview", "1");
|
activate_treeview_row("o_collection_treeview", "1");
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
|
select_treeview_row("o_collection_treeview", "2");
|
||||||
activate_treeview_row("o_collection_treeview", "2");
|
activate_treeview_row("o_collection_treeview", "2");
|
||||||
break;
|
break;
|
||||||
|
case 10:
|
||||||
|
case 12:
|
||||||
|
on_collection_toggled("0");
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
case 13:
|
||||||
|
on_collection_toggled("2");
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
select_treeview_row("o_collection_treeview", "1");
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
do_collection_delete();
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
select_treeview_row("o_collection_treeview", "2");
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
do_collection_delete();
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
click_button("o_collection_import");
|
||||||
|
break;
|
||||||
|
case 19:
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
end_test();
|
end_test();
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue