Alias list shuffling working
git-svn-id: file:///home/vcs/svn/jsweeper/trunk@18 6611ac79-6612-48ef-a1e9-b906f853523emaster
parent
f34198c09e
commit
0b7422085b
|
@ -2,6 +2,7 @@
|
||||||
#define PORTMANAGER_H
|
#define PORTMANAGER_H
|
||||||
|
|
||||||
#include <jack/jack.h>
|
#include <jack/jack.h>
|
||||||
|
#include <vector>
|
||||||
#include "port.h"
|
#include "port.h"
|
||||||
|
|
||||||
struct Alias
|
struct Alias
|
||||||
|
@ -13,7 +14,7 @@ struct Alias
|
||||||
std::string Replace(std::string name);
|
std::string Replace(std::string name);
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::list<Alias> AliasList;
|
typedef std::vector<Alias> AliasList;
|
||||||
|
|
||||||
class PortManager
|
class PortManager
|
||||||
{
|
{
|
||||||
|
@ -46,7 +47,7 @@ public:
|
||||||
void AliasClear();
|
void AliasClear();
|
||||||
void AliasAdd(std::string source, std::string target);
|
void AliasAdd(std::string source, std::string target);
|
||||||
|
|
||||||
const AliasList &AliasGetList() const { return m_aliases; }
|
AliasList &AliasGetList() { return m_aliases; }
|
||||||
};
|
};
|
||||||
|
|
||||||
extern PortManager pm;
|
extern PortManager pm;
|
||||||
|
|
|
@ -94,6 +94,11 @@ Preferences::Preferences(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builde
|
||||||
check_expand_groups->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_check_expand_groups_click));
|
check_expand_groups->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_check_expand_groups_click));
|
||||||
|
|
||||||
check_activate_aliases->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_check_activate_aliases_click));
|
check_activate_aliases->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_check_activate_aliases_click));
|
||||||
|
button_aliases_add->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_button_aliases_add_click));
|
||||||
|
button_aliases_remove->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_button_aliases_remove_click));
|
||||||
|
button_aliases_edit->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_button_aliases_edit_click));
|
||||||
|
button_aliases_up->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_button_aliases_up_click));
|
||||||
|
button_aliases_down->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_button_aliases_down_click));
|
||||||
|
|
||||||
fontbutton_font->signal_font_set().connect(sigc::mem_fun(*this, &Preferences::on_fontbutton_font_click));
|
fontbutton_font->signal_font_set().connect(sigc::mem_fun(*this, &Preferences::on_fontbutton_font_click));
|
||||||
spin_cell_padding->signal_value_changed().connect(sigc::mem_fun(*this, &Preferences::on_spin_cell_padding_click));
|
spin_cell_padding->signal_value_changed().connect(sigc::mem_fun(*this, &Preferences::on_spin_cell_padding_click));
|
||||||
|
@ -111,6 +116,23 @@ void Preferences::Refresh()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Preferences::RefreshAliases()
|
||||||
|
{
|
||||||
|
m_tree_model_aliases->clear();
|
||||||
|
|
||||||
|
const AliasList &list = pm.AliasGetList();
|
||||||
|
AliasList::const_iterator it;
|
||||||
|
int i = 0;
|
||||||
|
for (it = list.begin(); it != list.end(); ++it, i++) {
|
||||||
|
const Alias &a = *it;
|
||||||
|
Gtk::TreeModel::Row row = *(m_tree_model_aliases->append());
|
||||||
|
|
||||||
|
row[m_columns.m_row] = i;
|
||||||
|
row[m_columns.m_first] = a.match;
|
||||||
|
row[m_columns.m_second] = a.replace;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Preferences::on_preferences_close_click()
|
void Preferences::on_preferences_close_click()
|
||||||
{
|
{
|
||||||
hide();
|
hide();
|
||||||
|
@ -141,6 +163,86 @@ void Preferences::on_check_activate_aliases_click()
|
||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Preferences::GetAliasRow()
|
||||||
|
{
|
||||||
|
Glib::RefPtr<Gtk::TreeSelection> selection = treeview_aliases->get_selection();
|
||||||
|
Gtk::TreeModel::iterator iter = selection->get_selected();
|
||||||
|
if (iter) {
|
||||||
|
Gtk::TreeModel::Row row = *iter;
|
||||||
|
|
||||||
|
return row[m_columns.m_row];
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Preferences::on_button_aliases_add_click()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Preferences::on_button_aliases_remove_click()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Preferences::on_button_aliases_edit_click()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Preferences::on_button_aliases_up_click()
|
||||||
|
{
|
||||||
|
int row = GetAliasRow();
|
||||||
|
if (row > 0) {
|
||||||
|
AliasList &list = pm.AliasGetList();
|
||||||
|
|
||||||
|
Alias t = list[row];
|
||||||
|
list[row] = list[row - 1];
|
||||||
|
list[row - 1] = t;
|
||||||
|
|
||||||
|
Gtk::TreeModel::Row trow1 = m_tree_model_aliases->children()[row];
|
||||||
|
Gtk::TreeModel::Row trow2 = m_tree_model_aliases->children()[row - 1];
|
||||||
|
|
||||||
|
trow1[m_columns.m_row] = row;
|
||||||
|
trow1[m_columns.m_first] = list[row].match;
|
||||||
|
trow1[m_columns.m_second] = list[row].replace;
|
||||||
|
|
||||||
|
trow2[m_columns.m_row] = row - 1;
|
||||||
|
trow2[m_columns.m_first] = list[row - 1].match;
|
||||||
|
trow2[m_columns.m_second] = list[row - 1].replace;
|
||||||
|
|
||||||
|
treeview_aliases->get_selection()->select(trow2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// RefreshAliases();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Preferences::on_button_aliases_down_click()
|
||||||
|
{
|
||||||
|
int row = GetAliasRow();
|
||||||
|
AliasList &list = pm.AliasGetList();
|
||||||
|
if (row < (int)list.size() - 1) {
|
||||||
|
Alias t = list[row];
|
||||||
|
list[row] = list[row + 1];
|
||||||
|
list[row + 1] = t;
|
||||||
|
|
||||||
|
Gtk::TreeModel::Row trow1 = m_tree_model_aliases->children()[row];
|
||||||
|
Gtk::TreeModel::Row trow2 = m_tree_model_aliases->children()[row + 1];
|
||||||
|
|
||||||
|
trow1[m_columns.m_row] = row;
|
||||||
|
trow1[m_columns.m_first] = list[row].match;
|
||||||
|
trow1[m_columns.m_second] = list[row].replace;
|
||||||
|
|
||||||
|
trow2[m_columns.m_row] = row + 1;
|
||||||
|
trow2[m_columns.m_first] = list[row + 1].match;
|
||||||
|
trow2[m_columns.m_second] = list[row + 1].replace;
|
||||||
|
|
||||||
|
treeview_aliases->get_selection()->select(trow2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// RefreshAliases();
|
||||||
|
}
|
||||||
|
|
||||||
void Preferences::on_fontbutton_font_click()
|
void Preferences::on_fontbutton_font_click()
|
||||||
{
|
{
|
||||||
std::string font = fontbutton_font->get_font_name();
|
std::string font = fontbutton_font->get_font_name();
|
||||||
|
|
|
@ -54,6 +54,7 @@ public:
|
||||||
Preferences(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder);
|
Preferences(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder);
|
||||||
static Preferences *Open();
|
static Preferences *Open();
|
||||||
void Refresh();
|
void Refresh();
|
||||||
|
void RefreshAliases();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void on_preferences_close_click();
|
void on_preferences_close_click();
|
||||||
|
@ -63,6 +64,11 @@ protected:
|
||||||
void on_check_expand_groups_click();
|
void on_check_expand_groups_click();
|
||||||
|
|
||||||
void on_check_activate_aliases_click();
|
void on_check_activate_aliases_click();
|
||||||
|
void on_button_aliases_add_click();
|
||||||
|
void on_button_aliases_remove_click();
|
||||||
|
void on_button_aliases_edit_click();
|
||||||
|
void on_button_aliases_up_click();
|
||||||
|
void on_button_aliases_down_click();
|
||||||
|
|
||||||
void on_fontbutton_font_click();
|
void on_fontbutton_font_click();
|
||||||
void on_spin_cell_padding_click();
|
void on_spin_cell_padding_click();
|
||||||
|
@ -85,6 +91,8 @@ protected:
|
||||||
ModelColumns m_columns;
|
ModelColumns m_columns;
|
||||||
Glib::RefPtr<Gtk::ListStore> m_tree_model_connections;
|
Glib::RefPtr<Gtk::ListStore> m_tree_model_connections;
|
||||||
Glib::RefPtr<Gtk::ListStore> m_tree_model_aliases;
|
Glib::RefPtr<Gtk::ListStore> m_tree_model_aliases;
|
||||||
|
|
||||||
|
int GetAliasRow();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PREFERENCES_GUI_H
|
#endif // PREFERENCES_GUI_H
|
||||||
|
|
Loading…
Reference in New Issue