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

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

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

revision 2845 by persson, Sun Sep 20 10:18:22 2015 UTC revision 2921 by schoenebeck, Wed May 18 11:57:58 2016 UTC
# Line 392  void DimensionManager::set_region(gig::R Line 392  void DimensionManager::set_region(gig::R
392  }  }
393    
394  void DimensionManager::onColumnClicked() {  void DimensionManager::onColumnClicked() {
395        printf("DimensionManager::onColumnClicked()\n");
396    
397        //FIXME: BUG: this method is currently very unreliably called, it should actually be called when the user selects another column, it is ATM however also called when the table content changed programmatically causing the dialog below to popup at undesired times !
398    
399      //HACK: Prevents that onColumnClicked() gets called multiple times or at times where it is not desired      //HACK: Prevents that onColumnClicked() gets called multiple times or at times where it is not desired
400      if (ignoreColumnClicked) {      if (ignoreColumnClicked) {
401          ignoreColumnClicked = false;          ignoreColumnClicked = false;
402          return;          return;
403      }      }
404    #if (GTKMM_MAJOR_VERSION == 2 && GTKMM_MINOR_VERSION >= 18) || GTKMM_MAJOR_VERSION > 2
405        // prevents app to crash if this dialog is closed
406        if (!get_visible())
407            return;
408    #else
409    # warning Your GTKMM version is too old; dimension manager dialog might crash when changing a dimension type !
410    #endif
411    
412      Gtk::TreeModel::Path path;      Gtk::TreeModel::Path path;
413      Gtk::TreeViewColumn* focus_column;      Gtk::TreeViewColumn* focus_column;
# Line 438  void DimensionManager::onColumnClicked() Line 449  void DimensionManager::onColumnClicked()
449          comboDimType.set_active(oldTypeIndex);          comboDimType.set_active(oldTypeIndex);
450    
451          if (!dialog.run()) { // OK selected ...          if (!dialog.run()) { // OK selected ...
452                ignoreColumnClicked = true;
453              Gtk::TreeModel::iterator iterType = comboDimType.get_active();              Gtk::TreeModel::iterator iterType = comboDimType.get_active();
454              if (!iterType) return;              if (!iterType) return;
455              Gtk::TreeModel::Row rowType = *iterType;              Gtk::TreeModel::Row rowType = *iterType;
# Line 446  void DimensionManager::onColumnClicked() Line 458  void DimensionManager::onColumnClicked()
458              gig::dimension_t newType = static_cast<gig::dimension_t>(iTypeID);              gig::dimension_t newType = static_cast<gig::dimension_t>(iTypeID);
459              if (newType == oldType) return;              if (newType == oldType) return;
460              //printf("change 0x%x -> 0x%x\n", oldType, newType);              //printf("change 0x%x -> 0x%x\n", oldType, newType);
             ignoreColumnClicked = true;  
461    
462              // assemble the list of regions where the selected dimension type              // assemble the list of regions where the selected dimension type
463              // shall be changed              // shall be changed

Legend:
Removed from v.2845  
changed lines
  Added in v.2921

  ViewVC Help
Powered by ViewVC