--- gigedit/trunk/src/gigedit/mainwindow.cpp 2014/06/11 20:26:26 2624 +++ gigedit/trunk/src/gigedit/mainwindow.cpp 2014/06/11 21:22:24 2625 @@ -146,8 +146,19 @@ actionGroup->add(Gtk::Action::create("Quit", Gtk::Stock::QUIT), sigc::mem_fun( *this, &MainWindow::on_action_quit)); - actionGroup->add(Gtk::Action::create("MenuInstrument", _("_Instrument"))); - + actionGroup->add( + Gtk::Action::create("MenuSample", _("_Sample")), + sigc::mem_fun(*this, &MainWindow::show_samples_tab) + ); + actionGroup->add( + Gtk::Action::create("MenuInstrument", _("_Instrument")), + sigc::mem_fun(*this, &MainWindow::show_intruments_tab) + ); + actionGroup->add( + Gtk::Action::create("MenuScript", _("S_cript")), + sigc::mem_fun(*this, &MainWindow::show_scripts_tab) + ); + actionGroup->add(Gtk::Action::create("AllInstruments", _("_Select"))); actionGroup->add(Gtk::Action::create("MenuEdit", _("_Edit"))); @@ -287,7 +298,33 @@ " " " " " " + " " + " " + " " + " " + " " + " " + " " + " " + " " " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " + " " " " " " " " @@ -370,7 +407,7 @@ instrument_menu = static_cast( - uiManager->get_widget("/MenuBar/MenuInstrument"))->get_submenu(); + uiManager->get_widget("/MenuBar/MenuInstrument/AllInstruments"))->get_submenu(); Gtk::Widget* menuBar = uiManager->get_widget("/MenuBar"); m_VBox.pack_start(*menuBar, Gtk::PACK_SHRINK); @@ -1436,7 +1473,7 @@ add_instrument_to_menu(name); } instrument_name_connection.unblock(); - uiManager->get_widget("/MenuBar/MenuInstrument")->show(); + uiManager->get_widget("/MenuBar/MenuInstrument/AllInstruments")->show(); updateSampleRefCountMap(gig); @@ -1458,7 +1495,7 @@ rowSample[m_SamplesModel.m_col_group] = NULL; int refcount = sample_ref_count.count(sample) ? sample_ref_count[sample] : 0; rowSample[m_SamplesModel.m_col_refcount] = ToString(refcount) + " " + _("Refs."); - rowSample[m_SamplesModel.m_color] = refcount ? "black" : "gray"; + rowSample[m_SamplesModel.m_color] = refcount ? "black" : "red"; } } } @@ -1616,9 +1653,15 @@ show_instr_props(); } else if (button->type == GDK_BUTTON_PRESS && button->button == 3) { // gig v2 files have no midi rules + const bool bEnabled = !(file->pVersion && file->pVersion->major == 2); + static_cast( + uiManager->get_widget("/MenuBar/MenuInstrument/MidiRules"))->set_sensitive( + bEnabled + ); static_cast( uiManager->get_widget("/PopupMenu/MidiRules"))->set_sensitive( - !(file->pVersion && file->pVersion->major == 2)); + bEnabled + ); popup_menu->popup(button->button, button->time); } } @@ -1652,6 +1695,8 @@ group_selected = row[m_SamplesModel.m_col_group]; sample_selected = row[m_SamplesModel.m_col_sample]; } + + dynamic_cast(uiManager->get_widget("/SamplePopupMenu/SampleProperties"))-> set_sensitive(group_selected || sample_selected); dynamic_cast(uiManager->get_widget("/SamplePopupMenu/AddSample"))-> @@ -1664,6 +1709,17 @@ set_sensitive(group_selected || sample_selected); // show sample popup sample_popup->popup(button->button, button->time); + + dynamic_cast(uiManager->get_widget("/MenuBar/MenuSample/SampleProperties"))-> + set_sensitive(group_selected || sample_selected); + dynamic_cast(uiManager->get_widget("/MenuBar/MenuSample/AddSample"))-> + set_sensitive(group_selected || sample_selected); + dynamic_cast(uiManager->get_widget("/MenuBar/MenuSample/AddGroup"))-> + set_sensitive(file); + dynamic_cast(uiManager->get_widget("/MenuBar/MenuSample/ShowSampleRefs"))-> + set_sensitive(sample_selected); + dynamic_cast(uiManager->get_widget("/MenuBar/MenuSample/RemoveSample"))-> + set_sensitive(group_selected || sample_selected); } } @@ -1691,6 +1747,15 @@ set_sensitive(group_selected || script_selected); // show sample popup script_popup->popup(button->button, button->time); + + dynamic_cast(uiManager->get_widget("/MenuBar/MenuScript/AddScript"))-> + set_sensitive(group_selected || script_selected); + dynamic_cast(uiManager->get_widget("/MenuBar/MenuScript/AddScriptGroup"))-> + set_sensitive(file); + dynamic_cast(uiManager->get_widget("/MenuBar/MenuScript/EditScript"))-> + set_sensitive(script_selected); + dynamic_cast(uiManager->get_widget("/MenuBar/MenuScript/RemoveScript"))-> + set_sensitive(group_selected || script_selected); } } @@ -2732,7 +2797,7 @@ Gtk::TreeModel::Row rowSample = rowGroup.children()[s]; if (rowSample[m_SamplesModel.m_col_sample] != sample) continue; rowSample[m_SamplesModel.m_col_refcount] = ToString(refcount) + " " + _("Refs."); - rowSample[m_SamplesModel.m_color] = refcount ? "black" : "gray"; + rowSample[m_SamplesModel.m_color] = refcount ? "black" : "red"; } } } @@ -2752,6 +2817,18 @@ } } +void MainWindow::show_samples_tab() { + m_TreeViewNotebook.set_current_page(0); +} + +void MainWindow::show_intruments_tab() { + m_TreeViewNotebook.set_current_page(1); +} + +void MainWindow::show_scripts_tab() { + m_TreeViewNotebook.set_current_page(2); +} + sigc::signal& MainWindow::signal_file_structure_to_be_changed() { return file_structure_to_be_changed_signal; }