gui: Set up tab builder from a single place

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2015-04-19 09:24:25 -04:00
parent 682dca2339
commit 319838138a
6 changed files with 29 additions and 37 deletions

View File

@ -11,8 +11,6 @@
class CollectionTab : public Tab {
private:
Glib::RefPtr<Gtk::Builder> builder;
CollectionLabel *collection_label;
QueueToolbar *collection_toolbar;
QueueWindow *collection_window;
@ -20,14 +18,13 @@ private:
public:
CollectionTab() : Tab(library::get_queue())
{
builder = Gtk::Builder::create();
builder->add_from_file(gui :: share_file("QueueWindow.ui"));
builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
builder->add_from_file(gui :: share_file("QueueLabel.ui"));
tab_builder->add_from_file(gui :: share_file("QueueWindow.ui"));
tab_builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
tab_builder->add_from_file(gui :: share_file("QueueLabel.ui"));
builder->get_widget_derived("CollectionLabel", collection_label);
builder->get_widget_derived("QueueToolbar", collection_toolbar);
builder->get_widget_derived("QueueWindow", collection_window);
tab_builder->get_widget_derived("CollectionLabel", collection_label);
tab_builder->get_widget_derived("QueueToolbar", collection_toolbar);
tab_builder->get_widget_derived("QueueWindow", collection_window);
collection_toolbar->init(tab_pq, collection_label, collection_window, T_RANDOM);
collection_window->init(tab_pq);

View File

@ -10,8 +10,6 @@
class HistoryTab : public Tab {
private:
Glib::RefPtr<Gtk::Builder> builder;
HistoryLabel *history_label;
QueueToolbar *history_toolbar;
QueueWindow *history_window;
@ -19,14 +17,13 @@ private:
public:
HistoryTab() : Tab(deck :: get_queue())
{
builder = Gtk::Builder::create();
builder->add_from_file(gui :: share_file("QueueWindow.ui"));
builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
builder->add_from_file(gui :: share_file("QueueLabel.ui"));
tab_builder->add_from_file(gui :: share_file("QueueWindow.ui"));
tab_builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
tab_builder->add_from_file(gui :: share_file("QueueLabel.ui"));
builder->get_widget_derived("HistoryLabel", history_label);
builder->get_widget_derived("QueueToolbar", history_toolbar);
builder->get_widget_derived("QueueWindow", history_window);
tab_builder->get_widget_derived("HistoryLabel", history_label);
tab_builder->get_widget_derived("QueueToolbar", history_toolbar);
tab_builder->get_widget_derived("QueueWindow", history_window);
history_toolbar->init(tab_pq, history_label, history_window, 0);
history_window->init(tab_pq);

View File

@ -71,7 +71,6 @@ public:
static class PlaylistTab : public Tab {
private:
Glib::RefPtr<Gtk::Builder> builder;
Gtk::HBox playlist_hbox;
PlaylistLabel *playlist_label;
@ -82,16 +81,15 @@ private:
public:
PlaylistTab() : Tab(playlist :: get_queue())
{
builder = Gtk::Builder::create();
builder->add_from_file(gui :: share_file("QueueWindow.ui"));
builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
builder->add_from_file(gui :: share_file("QueueLabel.ui"));
builder->add_from_file(gui :: share_file("PlaylistWindow.ui"));
tab_builder->add_from_file(gui :: share_file("QueueWindow.ui"));
tab_builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
tab_builder->add_from_file(gui :: share_file("QueueLabel.ui"));
tab_builder->add_from_file(gui :: share_file("PlaylistWindow.ui"));
builder->get_widget_derived("PlaylistLabel", playlist_label);
builder->get_widget_derived("PlaylistWindow", playlist_window);
builder->get_widget_derived("QueueToolbar", playlist_toolbar);
builder->get_widget_derived("QueueWindow", playlist_tracks);
tab_builder->get_widget_derived("PlaylistLabel", playlist_label);
tab_builder->get_widget_derived("PlaylistWindow", playlist_window);
tab_builder->get_widget_derived("QueueToolbar", playlist_toolbar);
tab_builder->get_widget_derived("QueueWindow", playlist_tracks);
playlist_toolbar->init(tab_pq, playlist_label, playlist_tracks, 0);
playlist_tracks->init(tab_pq);

View File

@ -35,8 +35,6 @@ public:
class QueueTab : public Tab {
private:
Glib::RefPtr<Gtk::Builder> builder;
/**
* Queue tab widgets
*/
@ -78,15 +76,14 @@ static std::map<Gtk::Widget *, QueueTab *> queue_mapping;
QueueTab :: QueueTab(Queue *pq, unsigned int num)
: Tab(pq)
{
builder = Gtk::Builder::create();
builder->add_from_file(gui :: share_file("QueueWindow.ui"));
builder->add_from_file(gui :: share_file("QueueLabel.ui"));
builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
tab_builder->add_from_file(gui :: share_file("QueueWindow.ui"));
tab_builder->add_from_file(gui :: share_file("QueueLabel.ui"));
tab_builder->add_from_file(gui :: share_file("QueueToolbar.ui"));
/*
* Create our tab widget
*/
builder->get_widget_derived("TempLabel", q_label);
tab_builder->get_widget_derived("TempLabel", q_label);
q_label->temp_close->signal_clicked().connect(sigc::mem_fun(*this,
&QueueTab::on_close_clicked));
@ -98,14 +95,14 @@ QueueTab :: QueueTab(Queue *pq, unsigned int num)
/*
* And the treeview with scrolled window
*/
builder->get_widget_derived("QueueWindow", q_window);
tab_builder->get_widget_derived("QueueWindow", q_window);
q_window->init(pq);
/*
* Now set up the toolbar
*/
builder->get_widget_derived("QueueToolbar", q_toolbar);
tab_builder->get_widget_derived("QueueToolbar", q_toolbar);
q_toolbar->init(pq, q_label, q_window, T_RANDOM | T_REPEAT | T_SWITCH);

View File

@ -32,6 +32,8 @@ Tab :: Tab(Queue *pq)
pq->set_notifier(this);
queue_mapping[tab_pq] = this;
tab_builder = Gtk::Builder::create();
tab_vbox.set_margin_start(1);
tab_vbox.set_margin_end(1);
tab_vbox.set_homogeneous(false);

View File

@ -14,6 +14,7 @@ private:
std::string tab_sorting_title;
protected:
Glib::RefPtr<Gtk::Builder> tab_builder;
Queue *tab_pq;
Gtk::VBox tab_vbox;