924 |
// Create the Tree model: |
// Create the Tree model: |
925 |
m_refTreeModel = Gtk::ListStore::create(m_Columns); |
m_refTreeModel = Gtk::ListStore::create(m_Columns); |
926 |
m_TreeView.set_model(m_refTreeModel); |
m_TreeView.set_model(m_refTreeModel); |
927 |
|
m_refTreeModel->signal_row_changed().connect( |
928 |
|
sigc::mem_fun(*this, &MainWindow::instrument_name_changed) |
929 |
|
); |
930 |
|
|
931 |
// Add the TreeView's view columns: |
// Add the TreeView's view columns: |
932 |
m_TreeView.append_column("Instrument", m_Columns.m_col_name); |
m_TreeView.append_column_editable("Instrument", m_Columns.m_col_name); |
933 |
m_TreeView.set_headers_visible(false); |
m_TreeView.set_headers_visible(false); |
934 |
|
|
935 |
// create samples treeview (including its data model) |
// create samples treeview (including its data model) |
936 |
m_refSamplesTreeModel = SamplesTreeStore::create(m_SamplesModel); |
m_refSamplesTreeModel = SamplesTreeStore::create(m_SamplesModel); |
937 |
m_TreeViewSamples.set_model(m_refSamplesTreeModel); |
m_TreeViewSamples.set_model(m_refSamplesTreeModel); |
938 |
m_TreeViewSamples.append_column("Samples", m_SamplesModel.m_col_name); |
m_TreeViewSamples.append_column_editable("Samples", m_SamplesModel.m_col_name); |
939 |
m_TreeViewSamples.set_headers_visible(false); |
m_TreeViewSamples.set_headers_visible(false); |
940 |
m_TreeViewSamples.signal_button_press_event().connect_notify( |
m_TreeViewSamples.signal_button_press_event().connect_notify( |
941 |
sigc::mem_fun(*this, &MainWindow::on_sample_treeview_button_release) |
sigc::mem_fun(*this, &MainWindow::on_sample_treeview_button_release) |
942 |
); |
); |
943 |
|
m_refSamplesTreeModel->signal_row_changed().connect( |
944 |
|
sigc::mem_fun(*this, &MainWindow::sample_name_changed) |
945 |
|
); |
946 |
|
|
947 |
// establish drag&drop between samples tree view and dimension region 'Sample' text entry |
// establish drag&drop between samples tree view and dimension region 'Sample' text entry |
948 |
std::list<Gtk::TargetEntry> drag_target_gig_sample; |
std::list<Gtk::TargetEntry> drag_target_gig_sample; |
1962 |
// drop failed |
// drop failed |
1963 |
context->drop_reply(false, time); |
context->drop_reply(false, time); |
1964 |
} |
} |
1965 |
|
|
1966 |
|
void MainWindow::sample_name_changed(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter) { |
1967 |
|
if (!iter) return; |
1968 |
|
Gtk::TreeModel::Row row = *iter; |
1969 |
|
Glib::ustring name = row[m_SamplesModel.m_col_name]; |
1970 |
|
gig::Group* group = row[m_SamplesModel.m_col_group]; |
1971 |
|
gig::Sample* sample = row[m_SamplesModel.m_col_sample]; |
1972 |
|
if (group) { |
1973 |
|
group->Name = name; |
1974 |
|
std::cout << "Group name changed\n" << std::flush; |
1975 |
|
} else if (sample) { |
1976 |
|
sample->pInfo->Name = name.raw(); |
1977 |
|
std::cout << "Sample name changed\n" << std::flush; |
1978 |
|
} |
1979 |
|
} |
1980 |
|
|
1981 |
|
void MainWindow::instrument_name_changed(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter) { |
1982 |
|
std::cout << "Instrument name changed\n" << std::flush; |
1983 |
|
if (!iter) return; |
1984 |
|
Gtk::TreeModel::Row row = *iter; |
1985 |
|
Glib::ustring name = row[m_Columns.m_col_name]; |
1986 |
|
gig::Instrument* instrument = row[m_Columns.m_col_instr]; |
1987 |
|
if (instrument) instrument->pInfo->Name = name.raw(); |
1988 |
|
} |