/[svn]/gigedit/trunk/src/gigedit/mainwindow.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/mainwindow.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2689 by schoenebeck, Sun Jan 4 17:19:19 2015 UTC revision 2695 by schoenebeck, Tue Jan 6 18:11:27 2015 UTC
# Line 503  MainWindow::MainWindow() : Line 503  MainWindow::MainWindow() :
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      );      );
# Line 562  MainWindow::MainWindow() : Line 562  MainWindow::MainWindow() :
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(
# Line 943  bool MainWindow::close_confirmation_dial Line 947  bool MainWindow::close_confirmation_dial
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
# Line 1883  void MainWindow::on_instrument_selection Line 1893  void MainWindow::on_instrument_selection
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 =
# Line 2836  void MainWindow::on_action_view_referenc Line 2898  void MainWindow::on_action_view_referenc
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();

Legend:
Removed from v.2689  
changed lines
  Added in v.2695

  ViewVC Help
Powered by ViewVC