/[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 1225 by schoenebeck, Sun Jun 10 10:56:11 2007 UTC revision 1623 by persson, Fri Jan 4 19:42:45 2008 UTC
# Line 1  Line 1 
1  /*                                                         -*- c++ -*-  /*                                                         -*- c++ -*-
2   * Copyright (C) 2006, 2007 Andreas Persson   * Copyright (C) 2006-2008 Andreas Persson
3   *   *
4   * This program is free software; you can redistribute it and/or   * This program is free software; you can redistribute it and/or
5   * modify it under the terms of the GNU General Public License as   * modify it under the terms of the GNU General Public License as
# Line 186  addButton(Gtk::Stock::ADD), removeButton Line 186  addButton(Gtk::Stock::ADD), removeButton
186      scrolledWindow.add(treeView);      scrolledWindow.add(treeView);
187      vbox.pack_start(scrolledWindow);      vbox.pack_start(scrolledWindow);
188      scrolledWindow.show();      scrolledWindow.show();
189      vbox.pack_start(buttonBox);      vbox.pack_start(buttonBox, Gtk::PACK_SHRINK);
190      buttonBox.set_layout(Gtk::BUTTONBOX_END);      buttonBox.set_layout(Gtk::BUTTONBOX_END);
191      buttonBox.set_border_width(5);      buttonBox.set_border_width(5);
192      buttonBox.show();      buttonBox.show();
193      buttonBox.pack_start(addButton);      buttonBox.pack_start(addButton, Gtk::PACK_SHRINK);
194      buttonBox.pack_start(removeButton);      buttonBox.pack_start(removeButton, Gtk::PACK_SHRINK);
195      addButton.show();      addButton.show();
196      removeButton.show();      removeButton.show();
197    
# Line 199  addButton(Gtk::Stock::ADD), removeButton Line 199  addButton(Gtk::Stock::ADD), removeButton
199      refTableModel = Gtk::ListStore::create(tableModel);      refTableModel = Gtk::ListStore::create(tableModel);
200      treeView.set_model(refTableModel);      treeView.set_model(refTableModel);
201      treeView.append_column("Dimension Type", tableModel.m_dim_type);      treeView.append_column("Dimension Type", tableModel.m_dim_type);
202      treeView.append_column_numeric("Bits", tableModel.m_bits, "%d");      treeView.append_column("Bits", tableModel.m_bits);
203      treeView.append_column_numeric("Zones", tableModel.m_zones, "%d");      treeView.append_column("Zones", tableModel.m_zones);
204      treeView.append_column("Description", tableModel.m_description);      treeView.append_column("Description", tableModel.m_description);
205      treeView.show();      treeView.show();
206    
# Line 284  void DimensionManager::addDimension() { Line 284  void DimensionManager::addDimension() {
284                  "Adding dimension (type=0x%x, bits=%d, zones=%d)\n",                  "Adding dimension (type=0x%x, bits=%d, zones=%d)\n",
285                  dim.dimension, dim.bits, dim.zones                  dim.dimension, dim.bits, dim.zones
286              );              );
287                // notify everybody that we're going to update the region
288                region_to_be_changed_signal.emit(region);
289              // add the new dimension to the region              // add the new dimension to the region
290              // (implicitly creates new dimension regions)              // (implicitly creates new dimension regions)
291              region->AddDimension(&dim);              region->AddDimension(&dim);
292              // let everybody know there was a change              // let everybody know there was a change
293              articulation_changed_signal.emit();              region_changed_signal.emit(region);
294              // update all GUI elements              // update all GUI elements
295              refreshManager();              refreshManager();
296          }          }
297      } catch (RIFF::Exception e) {      } catch (RIFF::Exception e) {
298            // notify that the changes are over (i.e. to avoid dead locks)
299            region_changed_signal.emit(region);
300            // show error message
301          Glib::ustring txt = "Could not add dimension: " + e.Message;          Glib::ustring txt = "Could not add dimension: " + e.Message;
302          Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR);          Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR);
303          msg.run();          msg.run();
# Line 304  void DimensionManager::removeDimension() Line 309  void DimensionManager::removeDimension()
309      Gtk::TreeModel::iterator it = sel->get_selected();      Gtk::TreeModel::iterator it = sel->get_selected();
310      if (it) {      if (it) {
311          try {          try {
312                // notify everybody that we're going to update the region
313                region_to_be_changed_signal.emit(region);
314              // remove selected dimension              // remove selected dimension
315              Gtk::TreeModel::Row row = *it;              Gtk::TreeModel::Row row = *it;
316              gig::dimension_def_t* dim = row[tableModel.m_definition];              gig::dimension_def_t* dim = row[tableModel.m_definition];
317              region->DeleteDimension(dim);              region->DeleteDimension(dim);
             // remove respective row from table  
             refTableModel->erase(it);  
318              // let everybody know there was a change              // let everybody know there was a change
319              articulation_changed_signal.emit();              region_changed_signal.emit(region);
320                // update all GUI elements
321                refreshManager();
322          } catch (RIFF::Exception e) {          } catch (RIFF::Exception e) {
323                // notify that the changes are over (i.e. to avoid dead locks)
324                region_changed_signal.emit(region);
325                // show error message
326              Glib::ustring txt = "Could not remove dimension: " + e.Message;              Glib::ustring txt = "Could not remove dimension: " + e.Message;
327              Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR);              Gtk::MessageDialog msg(*this, txt, false, Gtk::MESSAGE_ERROR);
328              msg.run();              msg.run();

Legend:
Removed from v.1225  
changed lines
  Added in v.1623

  ViewVC Help
Powered by ViewVC