Split preferences window to its own file
git-svn-id: file:///home/vcs/svn/jsweeper/trunk@17 6611ac79-6612-48ef-a1e9-b906f853523emaster
parent
fa92dd48dd
commit
f34198c09e
|
@ -29,6 +29,8 @@ SET(SOURCES
|
|||
src/port.h
|
||||
src/portmanager.cpp
|
||||
src/portmanager.h
|
||||
src/preferences_gui.cpp
|
||||
src/preferences_gui.h
|
||||
src/session.cpp
|
||||
src/session.h
|
||||
src/session_gui.cpp
|
||||
|
|
158
src/gui.cpp
158
src/gui.cpp
|
@ -1,11 +1,9 @@
|
|||
#include <iostream>
|
||||
#include <cmath>
|
||||
#include <unistd.h>
|
||||
#include "config.h"
|
||||
#include "jack.h"
|
||||
#include "portmanager.h"
|
||||
#include "gui.h"
|
||||
#include "config.h"
|
||||
#include "session_gui.h"
|
||||
#include "preferences_gui.h"
|
||||
|
||||
Glib::RefPtr<Gtk::Builder> g_builder;
|
||||
|
||||
|
@ -203,155 +201,3 @@ void Gui::on_about()
|
|||
Gtk::AboutDialog *about; g_builder->get_widget("aboutdialog1", about);
|
||||
about->show();
|
||||
}
|
||||
|
||||
Preferences::Preferences(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder)
|
||||
: Gtk::Dialog(cobject)
|
||||
{
|
||||
builder->get_widget("button_preferences_close", button_preferences_close);
|
||||
|
||||
builder->get_widget("check_separate_port_type", check_separate_port_type);
|
||||
builder->get_widget("check_expand_clients", check_expand_clients);
|
||||
builder->get_widget("check_expand_groups", check_expand_groups);
|
||||
|
||||
builder->get_widget("check_default_location", check_default_location);
|
||||
builder->get_widget("filechooser_custom_location", filechooser_custom_location);
|
||||
|
||||
builder->get_widget("check_activate_connections", check_activate_connections);
|
||||
builder->get_widget("treeview_connections", treeview_connections);
|
||||
builder->get_widget("button_connections_add", button_connections_add);
|
||||
builder->get_widget("button_connections_remove", button_connections_remove);
|
||||
builder->get_widget("button_connections_edit", button_connections_edit);
|
||||
builder->get_widget("button_connections_up", button_connections_up);
|
||||
builder->get_widget("button_connections_down", button_connections_down);
|
||||
|
||||
builder->get_widget("check_activate_aliases", check_activate_aliases);
|
||||
builder->get_widget("treeview_aliases", treeview_aliases);
|
||||
builder->get_widget("button_aliases_add", button_aliases_add);
|
||||
builder->get_widget("button_aliases_remove", button_aliases_remove);
|
||||
builder->get_widget("button_aliases_edit", button_aliases_edit);
|
||||
builder->get_widget("button_aliases_up", button_aliases_up);
|
||||
builder->get_widget("button_aliases_down", button_aliases_down);
|
||||
|
||||
builder->get_widget("fontbutton_font", fontbutton_font);
|
||||
builder->get_widget("spin_cell_padding", spin_cell_padding);
|
||||
|
||||
builder->get_widget("colorbutton_background", colour_background);
|
||||
builder->get_widget("colorbutton_clients", colour_clients);
|
||||
builder->get_widget("colorbutton_port_groups", colour_port_groups);
|
||||
builder->get_widget("colorbutton_ports_audio", colour_ports_audio);
|
||||
builder->get_widget("colorbutton_ports_midi", colour_ports_midi);
|
||||
builder->get_widget("colorbutton_text", colour_text);
|
||||
builder->get_widget("colorbutton_grid_client", colour_grid_client);
|
||||
builder->get_widget("colorbutton_grid_group", colour_grid_group);
|
||||
builder->get_widget("colorbutton_grid_port", colour_grid_port);
|
||||
|
||||
check_separate_port_type->set_active(cfg.SeparateByPortType);
|
||||
check_expand_clients->set_active(cfg.ExpandClients);
|
||||
check_expand_groups->set_active(cfg.ExpandGroups);
|
||||
|
||||
Refresh();
|
||||
|
||||
{
|
||||
check_activate_aliases->set_active(cfg.UseAliases);
|
||||
|
||||
m_tree_model_aliases = Gtk::ListStore::create(m_columns);
|
||||
treeview_aliases->set_model(m_tree_model_aliases);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
treeview_aliases->append_column("Match", m_columns.m_first);
|
||||
treeview_aliases->append_column("Replace", m_columns.m_second);
|
||||
}
|
||||
|
||||
char font[256];
|
||||
snprintf(font, sizeof font, "%s %d", cfg.FontFace.c_str(), cfg.FontSize);
|
||||
fontbutton_font->set_font_name(font);
|
||||
spin_cell_padding->set_value(cfg.CellPadding);
|
||||
|
||||
colour_background->set_color(cfg.Background.colour);
|
||||
colour_clients->set_color(cfg.TabClient.colour);
|
||||
colour_port_groups->set_color(cfg.TabGroup.colour);
|
||||
colour_ports_audio->set_color(cfg.TabPortAudio.colour);
|
||||
colour_ports_midi->set_color(cfg.TabPortMidi.colour);
|
||||
colour_text->set_color(cfg.Text.colour);
|
||||
colour_grid_client->set_color(cfg.GridLinesClient.colour);
|
||||
colour_grid_group->set_color(cfg.GridLinesGroup.colour);
|
||||
colour_grid_port->set_color(cfg.GridLinesPort.colour);
|
||||
|
||||
button_preferences_close->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_preferences_close_click));
|
||||
|
||||
check_separate_port_type->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_check_separate_port_type_click));
|
||||
check_expand_clients->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_check_expand_clients_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));
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
Preferences *Preferences::Open()
|
||||
{
|
||||
Preferences *window = NULL;
|
||||
g_builder->get_widget_derived("dialog_preferences", window);
|
||||
window->Refresh();
|
||||
return window;
|
||||
}
|
||||
|
||||
void Preferences::Refresh()
|
||||
{
|
||||
}
|
||||
|
||||
void Preferences::on_preferences_close_click()
|
||||
{
|
||||
hide();
|
||||
}
|
||||
|
||||
void Preferences::on_check_separate_port_type_click()
|
||||
{
|
||||
cfg.SeparateByPortType = check_separate_port_type->get_active();
|
||||
g->SetPortTypeSeparation();
|
||||
g->Refresh();
|
||||
}
|
||||
|
||||
void Preferences::on_check_expand_clients_click()
|
||||
{
|
||||
cfg.ExpandClients = check_expand_clients->get_active();
|
||||
}
|
||||
|
||||
void Preferences::on_check_expand_groups_click()
|
||||
{
|
||||
cfg.ExpandGroups = check_expand_groups->get_active();
|
||||
}
|
||||
|
||||
void Preferences::on_check_activate_aliases_click()
|
||||
{
|
||||
cfg.UseAliases = check_activate_aliases->get_active();
|
||||
pm.Refresh();
|
||||
g->Refresh();
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void Preferences::on_fontbutton_font_click()
|
||||
{
|
||||
std::string font = fontbutton_font->get_font_name();
|
||||
cfg.FontFace = font.substr(0, font.find_last_of(' '));
|
||||
cfg.FontSize = ss_conv_to<int>(font.substr(font.find_last_of(' ') + 1));
|
||||
g->Refresh();
|
||||
}
|
||||
|
||||
void Preferences::on_spin_cell_padding_click()
|
||||
{
|
||||
cfg.CellPadding = spin_cell_padding->get_value();
|
||||
g->Refresh();
|
||||
}
|
||||
|
|
84
src/gui.h
84
src/gui.h
|
@ -43,90 +43,6 @@ protected:
|
|||
void on_about();
|
||||
};
|
||||
|
||||
class Preferences : public Gtk::Dialog
|
||||
{
|
||||
private:
|
||||
Gtk::Button *button_preferences_close;
|
||||
|
||||
// Grid behaviour
|
||||
Gtk::CheckButton *check_separate_port_type;
|
||||
Gtk::CheckButton *check_expand_clients;
|
||||
Gtk::CheckButton *check_expand_groups;
|
||||
|
||||
// Session
|
||||
Gtk::CheckButton *check_default_location;
|
||||
Gtk::FileChooserButton *filechooser_custom_location;
|
||||
|
||||
// Connections
|
||||
Gtk::CheckButton *check_activate_connections;
|
||||
Gtk::TreeView *treeview_connections;
|
||||
Gtk::Button *button_connections_add;
|
||||
Gtk::Button *button_connections_remove;
|
||||
Gtk::Button *button_connections_edit;
|
||||
Gtk::Button *button_connections_up;
|
||||
Gtk::Button *button_connections_down;
|
||||
|
||||
// Aliases
|
||||
Gtk::CheckButton *check_activate_aliases;
|
||||
Gtk::TreeView *treeview_aliases;
|
||||
Gtk::Button *button_aliases_add;
|
||||
Gtk::Button *button_aliases_remove;
|
||||
Gtk::Button *button_aliases_edit;
|
||||
Gtk::Button *button_aliases_up;
|
||||
Gtk::Button *button_aliases_down;
|
||||
|
||||
// Grid layout
|
||||
Gtk::FontButton *fontbutton_font;
|
||||
Gtk::SpinButton *spin_cell_padding;
|
||||
|
||||
// Colours
|
||||
Gtk::ColorButton *colour_background;
|
||||
Gtk::ColorButton *colour_clients;
|
||||
Gtk::ColorButton *colour_port_groups;
|
||||
Gtk::ColorButton *colour_ports_audio;
|
||||
Gtk::ColorButton *colour_ports_midi;
|
||||
Gtk::ColorButton *colour_text;
|
||||
Gtk::ColorButton *colour_grid_client;
|
||||
Gtk::ColorButton *colour_grid_group;
|
||||
Gtk::ColorButton *colour_grid_port;
|
||||
|
||||
public:
|
||||
Preferences(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder);
|
||||
static Preferences *Open();
|
||||
void Refresh();
|
||||
|
||||
protected:
|
||||
void on_preferences_close_click();
|
||||
|
||||
void on_check_separate_port_type_click();
|
||||
void on_check_expand_clients_click();
|
||||
void on_check_expand_groups_click();
|
||||
|
||||
void on_check_activate_aliases_click();
|
||||
|
||||
void on_fontbutton_font_click();
|
||||
void on_spin_cell_padding_click();
|
||||
|
||||
class ModelColumns : public Gtk::TreeModel::ColumnRecord
|
||||
{
|
||||
public:
|
||||
ModelColumns()
|
||||
{
|
||||
add(m_row);
|
||||
add(m_first);
|
||||
add(m_second);
|
||||
}
|
||||
|
||||
Gtk::TreeModelColumn<int> m_row;
|
||||
Gtk::TreeModelColumn<std::string> m_first;
|
||||
Gtk::TreeModelColumn<std::string> m_second;
|
||||
};
|
||||
|
||||
ModelColumns m_columns;
|
||||
Glib::RefPtr<Gtk::ListStore> m_tree_model_connections;
|
||||
Glib::RefPtr<Gtk::ListStore> m_tree_model_aliases;
|
||||
};
|
||||
|
||||
extern Gui *g;
|
||||
|
||||
#endif // GUI_H
|
||||
|
|
|
@ -0,0 +1,156 @@
|
|||
#include "config.h"
|
||||
#include "portmanager.h"
|
||||
#include "gui.h"
|
||||
#include "preferences_gui.h"
|
||||
|
||||
Preferences::Preferences(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder)
|
||||
: Gtk::Dialog(cobject)
|
||||
{
|
||||
builder->get_widget("button_preferences_close", button_preferences_close);
|
||||
|
||||
builder->get_widget("check_separate_port_type", check_separate_port_type);
|
||||
builder->get_widget("check_expand_clients", check_expand_clients);
|
||||
builder->get_widget("check_expand_groups", check_expand_groups);
|
||||
|
||||
builder->get_widget("check_default_location", check_default_location);
|
||||
builder->get_widget("filechooser_custom_location", filechooser_custom_location);
|
||||
|
||||
builder->get_widget("check_activate_connections", check_activate_connections);
|
||||
builder->get_widget("treeview_connections", treeview_connections);
|
||||
builder->get_widget("button_connections_add", button_connections_add);
|
||||
builder->get_widget("button_connections_remove", button_connections_remove);
|
||||
builder->get_widget("button_connections_edit", button_connections_edit);
|
||||
builder->get_widget("button_connections_up", button_connections_up);
|
||||
builder->get_widget("button_connections_down", button_connections_down);
|
||||
|
||||
builder->get_widget("check_activate_aliases", check_activate_aliases);
|
||||
builder->get_widget("treeview_aliases", treeview_aliases);
|
||||
builder->get_widget("button_aliases_add", button_aliases_add);
|
||||
builder->get_widget("button_aliases_remove", button_aliases_remove);
|
||||
builder->get_widget("button_aliases_edit", button_aliases_edit);
|
||||
builder->get_widget("button_aliases_up", button_aliases_up);
|
||||
builder->get_widget("button_aliases_down", button_aliases_down);
|
||||
|
||||
builder->get_widget("fontbutton_font", fontbutton_font);
|
||||
builder->get_widget("spin_cell_padding", spin_cell_padding);
|
||||
|
||||
builder->get_widget("colorbutton_background", colour_background);
|
||||
builder->get_widget("colorbutton_clients", colour_clients);
|
||||
builder->get_widget("colorbutton_port_groups", colour_port_groups);
|
||||
builder->get_widget("colorbutton_ports_audio", colour_ports_audio);
|
||||
builder->get_widget("colorbutton_ports_midi", colour_ports_midi);
|
||||
builder->get_widget("colorbutton_text", colour_text);
|
||||
builder->get_widget("colorbutton_grid_client", colour_grid_client);
|
||||
builder->get_widget("colorbutton_grid_group", colour_grid_group);
|
||||
builder->get_widget("colorbutton_grid_port", colour_grid_port);
|
||||
|
||||
check_separate_port_type->set_active(cfg.SeparateByPortType);
|
||||
check_expand_clients->set_active(cfg.ExpandClients);
|
||||
check_expand_groups->set_active(cfg.ExpandGroups);
|
||||
|
||||
Refresh();
|
||||
|
||||
{
|
||||
check_activate_aliases->set_active(cfg.UseAliases);
|
||||
|
||||
m_tree_model_aliases = Gtk::ListStore::create(m_columns);
|
||||
treeview_aliases->set_model(m_tree_model_aliases);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
treeview_aliases->append_column("Match", m_columns.m_first);
|
||||
treeview_aliases->append_column("Replace", m_columns.m_second);
|
||||
}
|
||||
|
||||
char font[256];
|
||||
snprintf(font, sizeof font, "%s %d", cfg.FontFace.c_str(), cfg.FontSize);
|
||||
fontbutton_font->set_font_name(font);
|
||||
spin_cell_padding->set_value(cfg.CellPadding);
|
||||
|
||||
colour_background->set_color(cfg.Background.colour);
|
||||
colour_clients->set_color(cfg.TabClient.colour);
|
||||
colour_port_groups->set_color(cfg.TabGroup.colour);
|
||||
colour_ports_audio->set_color(cfg.TabPortAudio.colour);
|
||||
colour_ports_midi->set_color(cfg.TabPortMidi.colour);
|
||||
colour_text->set_color(cfg.Text.colour);
|
||||
colour_grid_client->set_color(cfg.GridLinesClient.colour);
|
||||
colour_grid_group->set_color(cfg.GridLinesGroup.colour);
|
||||
colour_grid_port->set_color(cfg.GridLinesPort.colour);
|
||||
|
||||
button_preferences_close->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_preferences_close_click));
|
||||
|
||||
check_separate_port_type->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_check_separate_port_type_click));
|
||||
check_expand_clients->signal_clicked().connect(sigc::mem_fun(*this, &Preferences::on_check_expand_clients_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));
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
Preferences *Preferences::Open()
|
||||
{
|
||||
Preferences *window = NULL;
|
||||
g_builder->get_widget_derived("dialog_preferences", window);
|
||||
window->Refresh();
|
||||
return window;
|
||||
}
|
||||
|
||||
void Preferences::Refresh()
|
||||
{
|
||||
}
|
||||
|
||||
void Preferences::on_preferences_close_click()
|
||||
{
|
||||
hide();
|
||||
}
|
||||
|
||||
void Preferences::on_check_separate_port_type_click()
|
||||
{
|
||||
cfg.SeparateByPortType = check_separate_port_type->get_active();
|
||||
g->SetPortTypeSeparation();
|
||||
g->Refresh();
|
||||
}
|
||||
|
||||
void Preferences::on_check_expand_clients_click()
|
||||
{
|
||||
cfg.ExpandClients = check_expand_clients->get_active();
|
||||
}
|
||||
|
||||
void Preferences::on_check_expand_groups_click()
|
||||
{
|
||||
cfg.ExpandGroups = check_expand_groups->get_active();
|
||||
}
|
||||
|
||||
void Preferences::on_check_activate_aliases_click()
|
||||
{
|
||||
cfg.UseAliases = check_activate_aliases->get_active();
|
||||
pm.Refresh();
|
||||
g->Refresh();
|
||||
Refresh();
|
||||
}
|
||||
|
||||
void Preferences::on_fontbutton_font_click()
|
||||
{
|
||||
std::string font = fontbutton_font->get_font_name();
|
||||
cfg.FontFace = font.substr(0, font.find_last_of(' '));
|
||||
cfg.FontSize = ss_conv_to<int>(font.substr(font.find_last_of(' ') + 1));
|
||||
g->Refresh();
|
||||
}
|
||||
|
||||
void Preferences::on_spin_cell_padding_click()
|
||||
{
|
||||
cfg.CellPadding = spin_cell_padding->get_value();
|
||||
g->Refresh();
|
||||
}
|
|
@ -0,0 +1,90 @@
|
|||
#ifndef PREFERENCES_GUI_H
|
||||
#define PREFERENCES_GUI_H
|
||||
|
||||
#include <gtkmm.h>
|
||||
|
||||
class Preferences : public Gtk::Dialog
|
||||
{
|
||||
private:
|
||||
Gtk::Button *button_preferences_close;
|
||||
|
||||
// Grid behaviour
|
||||
Gtk::CheckButton *check_separate_port_type;
|
||||
Gtk::CheckButton *check_expand_clients;
|
||||
Gtk::CheckButton *check_expand_groups;
|
||||
|
||||
// Session
|
||||
Gtk::CheckButton *check_default_location;
|
||||
Gtk::FileChooserButton *filechooser_custom_location;
|
||||
|
||||
// Connections
|
||||
Gtk::CheckButton *check_activate_connections;
|
||||
Gtk::TreeView *treeview_connections;
|
||||
Gtk::Button *button_connections_add;
|
||||
Gtk::Button *button_connections_remove;
|
||||
Gtk::Button *button_connections_edit;
|
||||
Gtk::Button *button_connections_up;
|
||||
Gtk::Button *button_connections_down;
|
||||
|
||||
// Aliases
|
||||
Gtk::CheckButton *check_activate_aliases;
|
||||
Gtk::TreeView *treeview_aliases;
|
||||
Gtk::Button *button_aliases_add;
|
||||
Gtk::Button *button_aliases_remove;
|
||||
Gtk::Button *button_aliases_edit;
|
||||
Gtk::Button *button_aliases_up;
|
||||
Gtk::Button *button_aliases_down;
|
||||
|
||||
// Grid layout
|
||||
Gtk::FontButton *fontbutton_font;
|
||||
Gtk::SpinButton *spin_cell_padding;
|
||||
|
||||
// Colours
|
||||
Gtk::ColorButton *colour_background;
|
||||
Gtk::ColorButton *colour_clients;
|
||||
Gtk::ColorButton *colour_port_groups;
|
||||
Gtk::ColorButton *colour_ports_audio;
|
||||
Gtk::ColorButton *colour_ports_midi;
|
||||
Gtk::ColorButton *colour_text;
|
||||
Gtk::ColorButton *colour_grid_client;
|
||||
Gtk::ColorButton *colour_grid_group;
|
||||
Gtk::ColorButton *colour_grid_port;
|
||||
|
||||
public:
|
||||
Preferences(BaseObjectType *cobject, const Glib::RefPtr<Gtk::Builder> &builder);
|
||||
static Preferences *Open();
|
||||
void Refresh();
|
||||
|
||||
protected:
|
||||
void on_preferences_close_click();
|
||||
|
||||
void on_check_separate_port_type_click();
|
||||
void on_check_expand_clients_click();
|
||||
void on_check_expand_groups_click();
|
||||
|
||||
void on_check_activate_aliases_click();
|
||||
|
||||
void on_fontbutton_font_click();
|
||||
void on_spin_cell_padding_click();
|
||||
|
||||
class ModelColumns : public Gtk::TreeModel::ColumnRecord
|
||||
{
|
||||
public:
|
||||
ModelColumns()
|
||||
{
|
||||
add(m_row);
|
||||
add(m_first);
|
||||
add(m_second);
|
||||
}
|
||||
|
||||
Gtk::TreeModelColumn<int> m_row;
|
||||
Gtk::TreeModelColumn<std::string> m_first;
|
||||
Gtk::TreeModelColumn<std::string> m_second;
|
||||
};
|
||||
|
||||
ModelColumns m_columns;
|
||||
Glib::RefPtr<Gtk::ListStore> m_tree_model_connections;
|
||||
Glib::RefPtr<Gtk::ListStore> m_tree_model_aliases;
|
||||
};
|
||||
|
||||
#endif // PREFERENCES_GUI_H
|
Loading…
Reference in New Issue