503 |
m_TreeViewScripts.signal_button_press_event().connect_notify( |
m_TreeViewScripts.signal_button_press_event().connect_notify( |
504 |
sigc::mem_fun(*this, &MainWindow::on_script_treeview_button_release) |
sigc::mem_fun(*this, &MainWindow::on_script_treeview_button_release) |
505 |
); |
); |
506 |
//FIXME: why the heck does this double click signal_row_activated() only fired while CTRL key is pressed ? |
//FIXME: why the heck does this double click signal_row_activated() only fire while CTRL key is pressed ? |
507 |
m_TreeViewScripts.signal_row_activated().connect( |
m_TreeViewScripts.signal_row_activated().connect( |
508 |
sigc::mem_fun(*this, &MainWindow::script_double_clicked) |
sigc::mem_fun(*this, &MainWindow::script_double_clicked) |
509 |
); |
); |
562 |
sigc::mem_fun(*this, &MainWindow::on_samples_to_be_removed) |
sigc::mem_fun(*this, &MainWindow::on_samples_to_be_removed) |
563 |
); |
); |
564 |
|
|
565 |
|
dimreg_edit.signal_select_sample().connect( |
566 |
|
sigc::mem_fun(*this, &MainWindow::select_sample) |
567 |
|
); |
568 |
|
|
569 |
m_RegionChooser.signal_instrument_struct_to_be_changed().connect( |
m_RegionChooser.signal_instrument_struct_to_be_changed().connect( |
570 |
sigc::hide( |
sigc::hide( |
571 |
sigc::bind( |
sigc::bind( |
947 |
int response = dialog.run(); |
int response = dialog.run(); |
948 |
dialog.hide(); |
dialog.hide(); |
949 |
|
|
950 |
|
// user decided to exit app without saving |
951 |
|
if (response == Gtk::RESPONSE_NO) return true; |
952 |
|
|
953 |
|
// user cancelled dialog, thus don't close app |
954 |
|
if (response == Gtk::RESPONSE_CANCEL) return false; |
955 |
|
|
956 |
// TODO: the following return valid is disabled and hard coded instead for |
// TODO: the following return valid is disabled and hard coded instead for |
957 |
// now, due to the fact that saving with progress bar is now implemented |
// now, due to the fact that saving with progress bar is now implemented |
958 |
// asynchronously, as a result the app does not close automatically anymore |
// asynchronously, as a result the app does not close automatically anymore |
1169 |
|
|
1170 |
file_structure_changed_signal.emit(this->file); |
file_structure_changed_signal.emit(this->file); |
1171 |
|
|
1172 |
load_gig(this->file, this->filename.c_str()); |
__refreshEntireGUI(); |
1173 |
progress_dialog->hide(); |
progress_dialog->hide(); |
1174 |
} |
} |
1175 |
|
|
1893 |
} |
} |
1894 |
} |
} |
1895 |
|
|
1896 |
|
/// Returns true if requested dimension region was successfully selected and scrolled to in the list view, false on error. |
1897 |
|
bool MainWindow::select_dimension_region(gig::DimensionRegion* dimRgn) { |
1898 |
|
gig::Region* pRegion = (gig::Region*) dimRgn->GetParent(); |
1899 |
|
gig::Instrument* pInstrument = (gig::Instrument*) pRegion->GetParent(); |
1900 |
|
|
1901 |
|
Glib::RefPtr<Gtk::TreeModel> model = m_TreeView.get_model(); |
1902 |
|
for (int i = 0; i < model->children().size(); ++i) { |
1903 |
|
Gtk::TreeModel::Row row = model->children()[i]; |
1904 |
|
if (row[m_Columns.m_col_instr] == pInstrument) { |
1905 |
|
// select and show the respective instrument in the list view |
1906 |
|
show_intruments_tab(); |
1907 |
|
m_TreeView.get_selection()->select(model->children()[i]); |
1908 |
|
Gtk::TreePath path( |
1909 |
|
m_TreeView.get_selection()->get_selected() |
1910 |
|
); |
1911 |
|
m_TreeView.scroll_to_row(path); |
1912 |
|
on_sel_change(); // the regular instrument selection change callback |
1913 |
|
|
1914 |
|
// select respective region in the region selector |
1915 |
|
m_RegionChooser.set_region(pRegion); |
1916 |
|
|
1917 |
|
// select and show the respective dimension region in the editor |
1918 |
|
//update_dimregs(); |
1919 |
|
if (!m_DimRegionChooser.select_dimregion(dimRgn)) return false; |
1920 |
|
//dimreg_edit.set_dim_region(dimRgn); |
1921 |
|
|
1922 |
|
return true; |
1923 |
|
} |
1924 |
|
} |
1925 |
|
|
1926 |
|
return false; |
1927 |
|
} |
1928 |
|
|
1929 |
|
void MainWindow::select_sample(gig::Sample* sample) { |
1930 |
|
Glib::RefPtr<Gtk::TreeModel> model = m_TreeViewSamples.get_model(); |
1931 |
|
for (int g = 0; g < model->children().size(); ++g) { |
1932 |
|
Gtk::TreeModel::Row rowGroup = model->children()[g]; |
1933 |
|
for (int s = 0; s < rowGroup.children().size(); ++s) { |
1934 |
|
Gtk::TreeModel::Row rowSample = rowGroup.children()[s]; |
1935 |
|
if (rowSample[m_SamplesModel.m_col_sample] == sample) { |
1936 |
|
show_samples_tab(); |
1937 |
|
m_TreeViewSamples.get_selection()->select(rowGroup.children()[s]); |
1938 |
|
Gtk::TreePath path( |
1939 |
|
m_TreeViewSamples.get_selection()->get_selected() |
1940 |
|
); |
1941 |
|
m_TreeViewSamples.scroll_to_row(path); |
1942 |
|
return; |
1943 |
|
} |
1944 |
|
} |
1945 |
|
} |
1946 |
|
} |
1947 |
|
|
1948 |
void MainWindow::on_sample_treeview_button_release(GdkEventButton* button) { |
void MainWindow::on_sample_treeview_button_release(GdkEventButton* button) { |
1949 |
if (button->type == GDK_BUTTON_PRESS && button->button == 3) { |
if (button->type == GDK_BUTTON_PRESS && button->button == 3) { |
1950 |
Gtk::Menu* sample_popup = |
Gtk::Menu* sample_popup = |
2898 |
|
|
2899 |
ReferencesView* d = new ReferencesView(*this); |
ReferencesView* d = new ReferencesView(*this); |
2900 |
d->setSample(sample); |
d->setSample(sample); |
2901 |
|
d->dimension_region_selected.connect( |
2902 |
|
sigc::mem_fun(*this, &MainWindow::select_dimension_region) |
2903 |
|
); |
2904 |
d->show_all(); |
d->show_all(); |
2905 |
d->resize(500, 400); |
d->resize(500, 400); |
2906 |
d->run(); |
d->run(); |