59 |
return ss.str(); |
return ss.str(); |
60 |
} |
} |
61 |
|
|
62 |
MainWindow::MainWindow() |
Table::Table(int x, int y) : Gtk::Table(x, y), rowno(0) { } |
63 |
|
|
64 |
|
void Table::add(BoolEntry& boolentry) |
65 |
|
{ |
66 |
|
attach(boolentry.widget, 0, 2, rowno, rowno + 1, |
67 |
|
Gtk::FILL, Gtk::SHRINK); |
68 |
|
rowno++; |
69 |
|
} |
70 |
|
|
71 |
|
void Table::add(BoolEntryPlus6& boolentry) |
72 |
|
{ |
73 |
|
attach(boolentry.widget, 0, 2, rowno, rowno + 1, |
74 |
|
Gtk::FILL, Gtk::SHRINK); |
75 |
|
rowno++; |
76 |
|
} |
77 |
|
|
78 |
|
void Table::add(LabelWidget& prop) |
79 |
|
{ |
80 |
|
attach(prop.label, 1, 2, rowno, rowno + 1, |
81 |
|
Gtk::FILL, Gtk::SHRINK); |
82 |
|
attach(prop.widget, 2, 3, rowno, rowno + 1, |
83 |
|
Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK); |
84 |
|
rowno++; |
85 |
|
} |
86 |
|
|
87 |
|
MainWindow::MainWindow() : |
88 |
|
dimreg_label(_("Changes apply to:")), |
89 |
|
dimreg_all_regions(_("all regions")), |
90 |
|
dimreg_all_dimregs(_("all dimension splits")), |
91 |
|
dimreg_stereo(_("both channels")) |
92 |
{ |
{ |
93 |
// set_border_width(5); |
// set_border_width(5); |
94 |
// set_default_size(400, 200); |
// set_default_size(400, 200); |
118 |
m_TreeViewNotebook.set_size_request(300); |
m_TreeViewNotebook.set_size_request(300); |
119 |
|
|
120 |
m_HPaned.add1(m_TreeViewNotebook); |
m_HPaned.add1(m_TreeViewNotebook); |
121 |
m_HPaned.add2(dimreg_edit); |
dimreg_hbox.add(dimreg_label); |
122 |
|
dimreg_hbox.add(dimreg_all_regions); |
123 |
|
dimreg_hbox.add(dimreg_all_dimregs); |
124 |
|
dimreg_stereo.set_active(); |
125 |
|
dimreg_hbox.add(dimreg_stereo); |
126 |
|
dimreg_vbox.add(dimreg_edit); |
127 |
|
dimreg_vbox.pack_start(dimreg_hbox, Gtk::PACK_SHRINK); |
128 |
|
m_HPaned.add2(dimreg_vbox); |
129 |
|
|
130 |
|
|
131 |
m_TreeViewNotebook.append_page(m_ScrolledWindowSamples, "Samples"); |
m_TreeViewNotebook.append_page(m_ScrolledWindowSamples, "Samples"); |
320 |
sigc::mem_fun(*this, &MainWindow::file_changed)); |
sigc::mem_fun(*this, &MainWindow::file_changed)); |
321 |
instrumentProps.signal_instrument_changed().connect( |
instrumentProps.signal_instrument_changed().connect( |
322 |
sigc::mem_fun(*this, &MainWindow::file_changed)); |
sigc::mem_fun(*this, &MainWindow::file_changed)); |
323 |
|
propDialog.signal_info_changed().connect( |
324 |
|
sigc::mem_fun(*this, &MainWindow::file_changed)); |
325 |
|
|
326 |
dimreg_edit.signal_dimreg_to_be_changed().connect( |
dimreg_edit.signal_dimreg_to_be_changed().connect( |
327 |
dimreg_to_be_changed_signal.make_slot()); |
dimreg_to_be_changed_signal.make_slot()); |
351 |
m_RegionChooser.signal_region_changed_signal().connect( |
m_RegionChooser.signal_region_changed_signal().connect( |
352 |
region_changed_signal.make_slot()); |
region_changed_signal.make_slot()); |
353 |
|
|
354 |
|
dimreg_all_regions.signal_toggled().connect( |
355 |
|
sigc::mem_fun(*this, &MainWindow::update_dimregs)); |
356 |
|
dimreg_all_dimregs.signal_toggled().connect( |
357 |
|
sigc::mem_fun(*this, &MainWindow::dimreg_all_dimregs_toggled)); |
358 |
|
dimreg_stereo.signal_toggled().connect( |
359 |
|
sigc::mem_fun(*this, &MainWindow::update_dimregs)); |
360 |
|
|
361 |
file = 0; |
file = 0; |
362 |
file_is_changed = false; |
file_is_changed = false; |
363 |
set_file_is_shared(false); |
set_file_is_shared(false); |
388 |
m_DimRegionChooser.set_region(m_RegionChooser.get_region()); |
m_DimRegionChooser.set_region(m_RegionChooser.get_region()); |
389 |
} |
} |
390 |
|
|
391 |
void MainWindow::dimreg_changed() |
gig::Instrument* MainWindow::get_instrument() |
|
{ |
|
|
dimreg_edit.set_dim_region(m_DimRegionChooser.get_dimregion()); |
|
|
} |
|
|
|
|
|
void MainWindow::on_sel_change() |
|
392 |
{ |
{ |
393 |
|
gig::Instrument* instrument = 0; |
394 |
Glib::RefPtr<Gtk::TreeSelection> tree_sel_ref = m_TreeView.get_selection(); |
Glib::RefPtr<Gtk::TreeSelection> tree_sel_ref = m_TreeView.get_selection(); |
395 |
|
|
396 |
Gtk::TreeModel::iterator it = tree_sel_ref->get_selected(); |
Gtk::TreeModel::iterator it = tree_sel_ref->get_selected(); |
397 |
if (it) { |
if (it) { |
398 |
Gtk::TreeModel::Row row = *it; |
Gtk::TreeModel::Row row = *it; |
399 |
std::cout << row[m_Columns.m_col_name] << std::endl; |
instrument = row[m_Columns.m_col_instr]; |
400 |
|
} |
401 |
|
return instrument; |
402 |
|
} |
403 |
|
|
404 |
m_RegionChooser.set_instrument(row[m_Columns.m_col_instr]); |
void MainWindow::add_region_to_dimregs(gig::Region* region, bool stereo, bool all_dimregs) |
405 |
|
{ |
406 |
|
if (all_dimregs) { |
407 |
|
for (int i = 0 ; i < region->DimensionRegions ; i++) { |
408 |
|
if (region->pDimensionRegions[i]) { |
409 |
|
dimreg_edit.dimregs.insert(region->pDimensionRegions[i]); |
410 |
|
} |
411 |
|
} |
412 |
|
} else { |
413 |
|
m_DimRegionChooser.get_dimregions(region, stereo, dimreg_edit.dimregs); |
414 |
|
} |
415 |
|
} |
416 |
|
|
417 |
|
void MainWindow::update_dimregs() |
418 |
|
{ |
419 |
|
dimreg_edit.dimregs.clear(); |
420 |
|
bool all_regions = dimreg_all_regions.get_active(); |
421 |
|
bool stereo = dimreg_stereo.get_active(); |
422 |
|
bool all_dimregs = dimreg_all_dimregs.get_active(); |
423 |
|
|
424 |
|
if (all_regions) { |
425 |
|
gig::Instrument* instrument = get_instrument(); |
426 |
|
if (instrument) { |
427 |
|
for (gig::Region* region = instrument->GetFirstRegion() ; |
428 |
|
region ; |
429 |
|
region = instrument->GetNextRegion()) { |
430 |
|
add_region_to_dimregs(region, stereo, all_dimregs); |
431 |
|
} |
432 |
|
} |
433 |
} else { |
} else { |
434 |
m_RegionChooser.set_instrument(0); |
gig::Region* region = m_RegionChooser.get_region(); |
435 |
|
if (region) { |
436 |
|
add_region_to_dimregs(region, stereo, all_dimregs); |
437 |
|
} |
438 |
} |
} |
439 |
} |
} |
440 |
|
|
441 |
|
void MainWindow::dimreg_all_dimregs_toggled() |
442 |
|
{ |
443 |
|
dimreg_stereo.set_sensitive(!dimreg_all_dimregs.get_active()); |
444 |
|
update_dimregs(); |
445 |
|
} |
446 |
|
|
447 |
|
void MainWindow::dimreg_changed() |
448 |
|
{ |
449 |
|
update_dimregs(); |
450 |
|
dimreg_edit.set_dim_region(m_DimRegionChooser.get_dimregion()); |
451 |
|
} |
452 |
|
|
453 |
|
void MainWindow::on_sel_change() |
454 |
|
{ |
455 |
|
m_RegionChooser.set_instrument(get_instrument()); |
456 |
|
} |
457 |
|
|
458 |
void loader_progress_callback(gig::progress_t* progress) |
void loader_progress_callback(gig::progress_t* progress) |
459 |
{ |
{ |
460 |
Loader* loader = static_cast<Loader*>(progress->custom); |
Loader* loader = static_cast<Loader*>(progress->custom); |
895 |
} |
} |
896 |
|
|
897 |
PropDialog::PropDialog() |
PropDialog::PropDialog() |
898 |
: table(2,1) |
: table(2,1), |
899 |
|
eName("Name"), |
900 |
|
eCreationDate("Creation date"), |
901 |
|
eComments("Comments"), |
902 |
|
eProduct("Product"), |
903 |
|
eCopyright("Copyright"), |
904 |
|
eArtists("Artists"), |
905 |
|
eGenre("Genre"), |
906 |
|
eKeywords("Keywords"), |
907 |
|
eEngineer("Engineer"), |
908 |
|
eTechnician("Technician"), |
909 |
|
eSoftware("Software"), |
910 |
|
eMedium("Medium"), |
911 |
|
eSource("Source"), |
912 |
|
eSourceForm("Source form"), |
913 |
|
eCommissioned("Commissioned"), |
914 |
|
eSubject("Subject"), |
915 |
|
quitButton(Gtk::Stock::CLOSE), |
916 |
|
update_model(0) |
917 |
{ |
{ |
918 |
|
set_title("File Properties"); |
919 |
|
eName.set_width_chars(50); |
920 |
|
|
921 |
|
connect(eName, &DLS::Info::Name); |
922 |
|
connect(eCreationDate, &DLS::Info::CreationDate); |
923 |
|
connect(eComments, &DLS::Info::Comments); |
924 |
|
connect(eProduct, &DLS::Info::Product); |
925 |
|
connect(eCopyright, &DLS::Info::Copyright); |
926 |
|
connect(eArtists, &DLS::Info::Artists); |
927 |
|
connect(eGenre, &DLS::Info::Genre); |
928 |
|
connect(eKeywords, &DLS::Info::Keywords); |
929 |
|
connect(eEngineer, &DLS::Info::Engineer); |
930 |
|
connect(eTechnician, &DLS::Info::Technician); |
931 |
|
connect(eSoftware, &DLS::Info::Software); |
932 |
|
connect(eMedium, &DLS::Info::Medium); |
933 |
|
connect(eSource, &DLS::Info::Source); |
934 |
|
connect(eSourceForm, &DLS::Info::SourceForm); |
935 |
|
connect(eCommissioned, &DLS::Info::Commissioned); |
936 |
|
connect(eSubject, &DLS::Info::Subject); |
937 |
|
|
938 |
|
table.add(eName); |
939 |
|
table.add(eCreationDate); |
940 |
|
table.add(eComments); |
941 |
|
table.add(eProduct); |
942 |
|
table.add(eCopyright); |
943 |
|
table.add(eArtists); |
944 |
|
table.add(eGenre); |
945 |
|
table.add(eKeywords); |
946 |
|
table.add(eEngineer); |
947 |
|
table.add(eTechnician); |
948 |
|
table.add(eSoftware); |
949 |
|
table.add(eMedium); |
950 |
|
table.add(eSource); |
951 |
|
table.add(eSourceForm); |
952 |
|
table.add(eCommissioned); |
953 |
|
table.add(eSubject); |
954 |
|
|
955 |
table.set_col_spacings(5); |
table.set_col_spacings(5); |
956 |
const char* propLabels[] = { |
add(vbox); |
957 |
"Name:", |
table.set_border_width(5); |
958 |
"CreationDate:", |
vbox.add(table); |
959 |
"Comments:", // TODO: multiline |
vbox.pack_start(buttonBox, Gtk::PACK_SHRINK); |
960 |
"Product:", |
buttonBox.set_layout(Gtk::BUTTONBOX_END); |
961 |
"Copyright:", |
buttonBox.set_border_width(5); |
962 |
"Artists:", |
buttonBox.show(); |
963 |
"Genre:", |
buttonBox.pack_start(quitButton); |
964 |
"Keywords:", |
quitButton.set_flags(Gtk::CAN_DEFAULT); |
965 |
"Engineer:", |
quitButton.grab_focus(); |
966 |
"Technician:", |
quitButton.signal_clicked().connect( |
967 |
"Software:", // TODO: readonly |
sigc::mem_fun(*this, &PropDialog::hide)); |
|
"Medium:", |
|
|
"Source:", |
|
|
"SourceForm:", |
|
|
"Commissioned:", |
|
|
"Subject:" |
|
|
}; |
|
|
for (int i = 0 ; i < sizeof(propLabels) / sizeof(char*) ; i++) { |
|
|
label[i].set_text(propLabels[i]); |
|
|
label[i].set_alignment(Gtk::ALIGN_LEFT); |
|
|
table.attach(label[i], 0, 1, i, i + 1, Gtk::FILL, Gtk::SHRINK); |
|
|
table.attach(entry[i], 1, 2, i, i + 1, Gtk::FILL | Gtk::EXPAND, |
|
|
Gtk::SHRINK); |
|
|
} |
|
968 |
|
|
969 |
add(table); |
quitButton.show(); |
970 |
// add_button(Gtk::Stock::CANCEL, 0); |
vbox.show(); |
|
// add_button(Gtk::Stock::OK, 1); |
|
971 |
show_all_children(); |
show_all_children(); |
972 |
} |
} |
973 |
|
|
974 |
void PropDialog::set_info(DLS::Info* info) |
void PropDialog::set_info(DLS::Info* info) |
975 |
{ |
{ |
976 |
entry[0].set_text(info->Name); |
this->info = info; |
977 |
entry[1].set_text(info->CreationDate); |
update_model++; |
978 |
entry[2].set_text(Glib::convert(info->Comments, "UTF-8", "ISO-8859-1")); |
eName.set_value(info->Name); |
979 |
entry[3].set_text(info->Product); |
eCreationDate.set_value(info->CreationDate); |
980 |
entry[4].set_text(info->Copyright); |
eComments.set_value(info->Comments); |
981 |
entry[5].set_text(info->Artists); |
eProduct.set_value(info->Product); |
982 |
entry[6].set_text(info->Genre); |
eCopyright.set_value(info->Copyright); |
983 |
entry[7].set_text(info->Keywords); |
eArtists.set_value(info->Artists); |
984 |
entry[8].set_text(info->Engineer); |
eGenre.set_value(info->Genre); |
985 |
entry[9].set_text(info->Technician); |
eKeywords.set_value(info->Keywords); |
986 |
entry[10].set_text(info->Software); |
eEngineer.set_value(info->Engineer); |
987 |
entry[11].set_text(info->Medium); |
eTechnician.set_value(info->Technician); |
988 |
entry[12].set_text(info->Source); |
eSoftware.set_value(info->Software); |
989 |
entry[13].set_text(info->SourceForm); |
eMedium.set_value(info->Medium); |
990 |
entry[14].set_text(info->Commissioned); |
eSource.set_value(info->Source); |
991 |
entry[15].set_text(info->Subject); |
eSourceForm.set_value(info->SourceForm); |
992 |
|
eCommissioned.set_value(info->Commissioned); |
993 |
|
eSubject.set_value(info->Subject); |
994 |
|
update_model--; |
995 |
} |
} |
996 |
|
|
997 |
void InstrumentProps::add_prop(BoolEntry& boolentry) |
sigc::signal<void>& PropDialog::signal_info_changed() |
998 |
{ |
{ |
999 |
table.attach(boolentry.widget, 0, 2, rowno, rowno + 1, |
return info_changed; |
|
Gtk::FILL, Gtk::SHRINK); |
|
|
rowno++; |
|
|
boolentry.signal_changed_by_user().connect(instrument_changed.make_slot()); |
|
1000 |
} |
} |
1001 |
|
|
1002 |
void InstrumentProps::add_prop(BoolEntryPlus6& boolentry) |
void InstrumentProps::set_IsDrum(bool value) |
1003 |
{ |
{ |
1004 |
table.attach(boolentry.widget, 0, 2, rowno, rowno + 1, |
instrument->IsDrum = value; |
|
Gtk::FILL, Gtk::SHRINK); |
|
|
rowno++; |
|
|
boolentry.signal_changed_by_user().connect(instrument_changed.make_slot()); |
|
1005 |
} |
} |
1006 |
|
|
1007 |
void InstrumentProps::add_prop(LabelWidget& prop) |
void InstrumentProps::set_MIDIBank(uint16_t value) |
1008 |
{ |
{ |
1009 |
table.attach(prop.label, 0, 1, rowno, rowno + 1, |
instrument->MIDIBank = value; |
1010 |
Gtk::FILL, Gtk::SHRINK); |
} |
1011 |
table.attach(prop.widget, 1, 2, rowno, rowno + 1, |
|
1012 |
Gtk::FILL | Gtk::EXPAND, Gtk::SHRINK); |
void InstrumentProps::set_MIDIProgram(uint32_t value) |
1013 |
rowno++; |
{ |
1014 |
prop.signal_changed_by_user().connect(instrument_changed.make_slot()); |
instrument->MIDIProgram = value; |
1015 |
|
} |
1016 |
|
|
1017 |
|
void InstrumentProps::set_DimensionKeyRange_low(uint8_t value) |
1018 |
|
{ |
1019 |
|
instrument->DimensionKeyRange.low = value; |
1020 |
|
if (value > instrument->DimensionKeyRange.high) { |
1021 |
|
eDimensionKeyRangeHigh.set_value(value); |
1022 |
|
} |
1023 |
|
} |
1024 |
|
|
1025 |
|
void InstrumentProps::set_DimensionKeyRange_high(uint8_t value) |
1026 |
|
{ |
1027 |
|
instrument->DimensionKeyRange.high = value; |
1028 |
|
if (value < instrument->DimensionKeyRange.low) { |
1029 |
|
eDimensionKeyRangeLow.set_value(value); |
1030 |
|
} |
1031 |
} |
} |
1032 |
|
|
1033 |
InstrumentProps::InstrumentProps() |
InstrumentProps::InstrumentProps() |
1044 |
ePitchbendRange("Pitchbend range", 0, 12), |
ePitchbendRange("Pitchbend range", 0, 12), |
1045 |
ePianoReleaseMode("Piano release mode"), |
ePianoReleaseMode("Piano release mode"), |
1046 |
eDimensionKeyRangeLow("Dimension key range low"), |
eDimensionKeyRangeLow("Dimension key range low"), |
1047 |
eDimensionKeyRangeHigh("Dimension key range high") |
eDimensionKeyRangeHigh("Dimension key range high"), |
1048 |
|
update_model(0) |
1049 |
{ |
{ |
1050 |
set_title("Instrument properties"); |
set_title("Instrument Properties"); |
1051 |
|
|
1052 |
|
connect(eIsDrum, &InstrumentProps::set_IsDrum); |
1053 |
|
connect(eMIDIBank, &InstrumentProps::set_MIDIBank); |
1054 |
|
connect(eMIDIProgram, &InstrumentProps::set_MIDIProgram); |
1055 |
|
connect(eAttenuation, &gig::Instrument::Attenuation); |
1056 |
|
connect(eGainPlus6, &gig::Instrument::Attenuation); |
1057 |
|
connect(eEffectSend, &gig::Instrument::EffectSend); |
1058 |
|
connect(eFineTune, &gig::Instrument::FineTune); |
1059 |
|
connect(ePitchbendRange, &gig::Instrument::PitchbendRange); |
1060 |
|
connect(ePianoReleaseMode, &gig::Instrument::PianoReleaseMode); |
1061 |
|
connect(eDimensionKeyRangeLow, |
1062 |
|
&InstrumentProps::set_DimensionKeyRange_low); |
1063 |
|
connect(eDimensionKeyRangeHigh, |
1064 |
|
&InstrumentProps::set_DimensionKeyRange_high); |
1065 |
|
|
|
rowno = 0; |
|
1066 |
table.set_col_spacings(5); |
table.set_col_spacings(5); |
1067 |
|
|
1068 |
add_prop(eName); |
table.add(eName); |
1069 |
add_prop(eIsDrum); |
table.add(eIsDrum); |
1070 |
add_prop(eMIDIBank); |
table.add(eMIDIBank); |
1071 |
add_prop(eMIDIProgram); |
table.add(eMIDIProgram); |
1072 |
add_prop(eAttenuation); |
table.add(eAttenuation); |
1073 |
add_prop(eGainPlus6); |
table.add(eGainPlus6); |
1074 |
add_prop(eEffectSend); |
table.add(eEffectSend); |
1075 |
add_prop(eFineTune); |
table.add(eFineTune); |
1076 |
add_prop(ePitchbendRange); |
table.add(ePitchbendRange); |
1077 |
add_prop(ePianoReleaseMode); |
table.add(ePianoReleaseMode); |
1078 |
add_prop(eDimensionKeyRangeLow); |
table.add(eDimensionKeyRangeLow); |
1079 |
add_prop(eDimensionKeyRangeHigh); |
table.add(eDimensionKeyRangeHigh); |
|
|
|
|
eDimensionKeyRangeLow.signal_changed_by_user().connect( |
|
|
sigc::mem_fun(*this, &InstrumentProps::key_range_low_changed)); |
|
|
eDimensionKeyRangeHigh.signal_changed_by_user().connect( |
|
|
sigc::mem_fun(*this, &InstrumentProps::key_range_high_changed)); |
|
1080 |
|
|
1081 |
add(vbox); |
add(vbox); |
1082 |
table.set_border_width(5); |
table.set_border_width(5); |
1100 |
|
|
1101 |
void InstrumentProps::set_instrument(gig::Instrument* instrument) |
void InstrumentProps::set_instrument(gig::Instrument* instrument) |
1102 |
{ |
{ |
1103 |
eName.set_ptr(&instrument->pInfo->Name); |
this->instrument = instrument; |
1104 |
eIsDrum.set_ptr(&instrument->IsDrum); |
|
1105 |
eMIDIBank.set_ptr(&instrument->MIDIBank); |
update_model++; |
1106 |
eMIDIProgram.set_ptr(&instrument->MIDIProgram); |
eName.set_value(instrument->pInfo->Name); |
1107 |
eAttenuation.set_ptr(&instrument->Attenuation); |
eIsDrum.set_value(instrument->IsDrum); |
1108 |
eGainPlus6.set_ptr(&instrument->Attenuation); |
eMIDIBank.set_value(instrument->MIDIBank); |
1109 |
eEffectSend.set_ptr(&instrument->EffectSend); |
eMIDIProgram.set_value(instrument->MIDIProgram); |
1110 |
eFineTune.set_ptr(&instrument->FineTune); |
eAttenuation.set_value(instrument->Attenuation); |
1111 |
ePitchbendRange.set_ptr(&instrument->PitchbendRange); |
eGainPlus6.set_value(instrument->Attenuation); |
1112 |
ePianoReleaseMode.set_ptr(&instrument->PianoReleaseMode); |
eEffectSend.set_value(instrument->EffectSend); |
1113 |
eDimensionKeyRangeLow.set_ptr(0); |
eFineTune.set_value(instrument->FineTune); |
1114 |
eDimensionKeyRangeHigh.set_ptr(0); |
ePitchbendRange.set_value(instrument->PitchbendRange); |
1115 |
eDimensionKeyRangeLow.set_ptr(&instrument->DimensionKeyRange.low); |
ePianoReleaseMode.set_value(instrument->PianoReleaseMode); |
1116 |
eDimensionKeyRangeHigh.set_ptr(&instrument->DimensionKeyRange.high); |
eDimensionKeyRangeLow.set_value(instrument->DimensionKeyRange.low); |
1117 |
} |
eDimensionKeyRangeHigh.set_value(instrument->DimensionKeyRange.high); |
1118 |
|
update_model--; |
|
void InstrumentProps::key_range_low_changed() |
|
|
{ |
|
|
double l = eDimensionKeyRangeLow.get_value(); |
|
|
double h = eDimensionKeyRangeHigh.get_value(); |
|
|
if (h < l) eDimensionKeyRangeHigh.set_value(l); |
|
|
} |
|
|
|
|
|
void InstrumentProps::key_range_high_changed() |
|
|
{ |
|
|
double l = eDimensionKeyRangeLow.get_value(); |
|
|
double h = eDimensionKeyRangeHigh.get_value(); |
|
|
if (h < l) eDimensionKeyRangeLow.set_value(h); |
|
1119 |
} |
} |
1120 |
|
|
1121 |
sigc::signal<void>& InstrumentProps::signal_instrument_changed() |
sigc::signal<void>& InstrumentProps::signal_instrument_changed() |
1197 |
|
|
1198 |
void MainWindow::show_instr_props() |
void MainWindow::show_instr_props() |
1199 |
{ |
{ |
1200 |
Glib::RefPtr<Gtk::TreeSelection> tree_sel_ref = m_TreeView.get_selection(); |
gig::Instrument* instrument = get_instrument(); |
1201 |
Gtk::TreeModel::iterator it = tree_sel_ref->get_selected(); |
if (instrument) |
|
if (it) |
|
1202 |
{ |
{ |
1203 |
Gtk::TreeModel::Row row = *it; |
instrumentProps.set_instrument(instrument); |
1204 |
if (row[m_Columns.m_col_instr]) |
instrumentProps.show(); |
1205 |
{ |
instrumentProps.deiconify(); |
|
instrumentProps.set_instrument(row[m_Columns.m_col_instr]); |
|
|
instrumentProps.show(); |
|
|
instrumentProps.deiconify(); |
|
|
} |
|
1206 |
} |
} |
1207 |
} |
} |
1208 |
|
|
1644 |
// notify we're done with altering |
// notify we're done with altering |
1645 |
region_changed_signal.emit(region); |
region_changed_signal.emit(region); |
1646 |
|
|
1647 |
|
file_changed(); |
1648 |
|
|
1649 |
return; |
return; |
1650 |
} |
} |
1651 |
// drop failed |
// drop failed |