Classes | Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes

QmitkLevelWindowPresetDefinitionDialog Class Reference

#include <QmitkLevelWindowPresetDefinitionDialog.h>

Inheritance diagram for QmitkLevelWindowPresetDefinitionDialog:
Inheritance graph
[legend]
Collaboration diagram for QmitkLevelWindowPresetDefinitionDialog:
Collaboration graph
[legend]

List of all members.

Classes

class  PresetTableModel

Public Member Functions

 QmitkLevelWindowPresetDefinitionDialog (QWidget *parent=0, Qt::WindowFlags f=0)
 ~QmitkLevelWindowPresetDefinitionDialog ()
void setPresets (std::map< std::string, double > &level, std::map< std::string, double > &window, QString initLevel, QString initWindow)
std::map< std::string, double > getLevelPresets ()
std::map< std::string, double > getWindowPresets ()

Protected Slots

void addPreset ()
void removePreset ()
void changePreset ()
void ListViewSelectionChanged (const QItemSelection &, const QItemSelection &)
void sortPresets (int index)

Protected Member Functions

void resizeEvent (QResizeEvent *event)
void showEvent (QShowEvent *event)
void resizeColumns ()

Protected Attributes

PresetTableModelm_TableModel
QSortFilterProxyModel m_SortModel

Detailed Description

Definition at line 31 of file QmitkLevelWindowPresetDefinitionDialog.h.


Constructor & Destructor Documentation

QmitkLevelWindowPresetDefinitionDialog::QmitkLevelWindowPresetDefinitionDialog ( QWidget *  parent = 0,
Qt::WindowFlags  f = 0 
)

Definition at line 24 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References Ui_QmitkLevelWindowPresetDefinition::addButton, addPreset(), Ui_QmitkLevelWindowPresetDefinition::changeButton, changePreset(), m_SortModel, Ui_QmitkLevelWindowPresetDefinition::presetView, Ui_QmitkLevelWindowPresetDefinition::removeButton, removePreset(), Ui_QmitkLevelWindowPresetDefinition::setupUi(), and sortPresets().

 : QDialog(parent, f), m_TableModel(0), m_SortModel(this)
{
  this->setupUi(this);
  
  QObject::connect(addButton, SIGNAL(clicked()), this, SLOT(addPreset()));
  QObject::connect(removeButton, SIGNAL(clicked()), this, SLOT(removePreset()));
  QObject::connect(changeButton, SIGNAL(clicked()), this, SLOT(changePreset()));
  
  QObject::connect(presetView->horizontalHeader(), SIGNAL(sectionClicked(int)), this, SLOT(sortPresets(int)));
  
  presetView->verticalHeader()->setVisible(false);
  presetView->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
  //presetView->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
  //presetView->horizontalHeader()->setResizeMode(1, QHeaderView::ResizeToContents);
  //presetView->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents);
  
  presetView->setModel(&m_SortModel);
}
QmitkLevelWindowPresetDefinitionDialog::~QmitkLevelWindowPresetDefinitionDialog (  )

Definition at line 44 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References m_TableModel.

{
  delete m_TableModel;
}

Member Function Documentation

void QmitkLevelWindowPresetDefinitionDialog::addPreset (  ) [protected, slot]

Definition at line 80 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References QmitkLevelWindowPresetDefinitionDialog::PresetTableModel::addPreset(), QmitkLevelWindowPresetDefinitionDialog::PresetTableModel::contains(), Ui_QmitkLevelWindowPresetDefinition::levelSpinBox, m_TableModel, Ui_QmitkLevelWindowPresetDefinition::presetnameLineEdit, and Ui_QmitkLevelWindowPresetDefinition::windowSpinBox.

Referenced by QmitkLevelWindowPresetDefinitionDialog().

{
  std::string name(presetnameLineEdit->text().toStdString());
  if (m_TableModel->contains(name))
  {
    QMessageBox::critical( this, "Preset definition",
    "Presetname already exists.\n"
    "You have to enter another one." );
  }
  else if (presetnameLineEdit->text() == "")
  {
    QMessageBox::critical( this, "Preset definition",
    "Presetname has to be set.\n"
    "You have to enter a Presetname." );
  }
  else
  {  
    m_TableModel->addPreset(name, levelSpinBox->value(), windowSpinBox->value());
  }
}
void QmitkLevelWindowPresetDefinitionDialog::changePreset (  ) [protected, slot]

Definition at line 111 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References QmitkLevelWindowPresetDefinitionDialog::PresetTableModel::changePreset(), QmitkLevelWindowPresetDefinitionDialog::PresetTableModel::contains(), QmitkLevelWindowPresetDefinitionDialog::PresetTableModel::getPreset(), Ui_QmitkLevelWindowPresetDefinition::levelSpinBox, m_TableModel, Ui_QmitkLevelWindowPresetDefinition::presetnameLineEdit, Ui_QmitkLevelWindowPresetDefinition::presetView, and Ui_QmitkLevelWindowPresetDefinition::windowSpinBox.

Referenced by QmitkLevelWindowPresetDefinitionDialog().

{
  if (presetView->selectionModel()->hasSelection())
  {
    std::string name(presetnameLineEdit->text().toStdString());
    if (name == "")
    {
      QMessageBox::critical( this, "Preset definition",
      "Presetname has to be set.\n"
      "You have to enter a Presetname." );
    }
    else if (m_TableModel->contains(name) 
        && (m_TableModel->getPreset(presetView->selectionModel()->currentIndex()).name
            != name))
    {
      QMessageBox::critical( this, "Preset definition",
      "Presetname already exists.\n"
      "You have to enter another one." );
    }
    else
    {
      m_TableModel->changePreset(presetView->selectionModel()->currentIndex().row(), 
                                 name, levelSpinBox->value(), windowSpinBox->value());
    }
  }
}
std::map< std::string, double > QmitkLevelWindowPresetDefinitionDialog::getLevelPresets (  )

Definition at line 157 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References QmitkLevelWindowPresetDefinitionDialog::PresetTableModel::getLevels(), and m_TableModel.

Referenced by QmitkLevelWindowWidgetContextMenu::addPreset().

{
  std::map<std::string, double> levels;
  m_TableModel->getLevels(levels);
  return levels;
}
std::map< std::string, double > QmitkLevelWindowPresetDefinitionDialog::getWindowPresets (  )

Definition at line 165 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References QmitkLevelWindowPresetDefinitionDialog::PresetTableModel::getWindows(), and m_TableModel.

Referenced by QmitkLevelWindowWidgetContextMenu::addPreset().

{
  std::map<std::string, double> windows;
  m_TableModel->getWindows(windows);
  return windows;
}
void QmitkLevelWindowPresetDefinitionDialog::ListViewSelectionChanged ( const QItemSelection &  selected,
const QItemSelection &   
) [protected, slot]
void QmitkLevelWindowPresetDefinitionDialog::removePreset (  ) [protected, slot]

Definition at line 102 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References m_TableModel, Ui_QmitkLevelWindowPresetDefinition::presetView, and QmitkLevelWindowPresetDefinitionDialog::PresetTableModel::removePreset().

Referenced by QmitkLevelWindowPresetDefinitionDialog().

{
  QModelIndex index(presetView->selectionModel()->currentIndex());
  if (!index.isValid()) return;
  
  m_TableModel->removePreset(index);
}
void QmitkLevelWindowPresetDefinitionDialog::resizeColumns (  ) [protected]

Definition at line 72 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References Ui_QmitkLevelWindowPresetDefinition::presetView.

Referenced by resizeEvent(), and showEvent().

{
  int width = presetView->viewport()->size().width() - presetView->columnWidth(1) - presetView->columnWidth(2);
  if (width < 50) width = 50;
    
  presetView->setColumnWidth(0, width);
}
void QmitkLevelWindowPresetDefinitionDialog::resizeEvent ( QResizeEvent *  event ) [protected]

Definition at line 58 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References resizeColumns().

{
  QDialog::resizeEvent(event);
  
  this->resizeColumns();
}
void QmitkLevelWindowPresetDefinitionDialog::setPresets ( std::map< std::string, double > &  level,
std::map< std::string, double > &  window,
QString  initLevel,
QString  initWindow 
)

Definition at line 139 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References Ui_QmitkLevelWindowPresetDefinition::levelSpinBox, ListViewSelectionChanged(), m_SortModel, m_TableModel, Ui_QmitkLevelWindowPresetDefinition::presetView, sortPresets(), and Ui_QmitkLevelWindowPresetDefinition::windowSpinBox.

Referenced by QmitkLevelWindowWidgetContextMenu::addPreset().

{
  levelSpinBox->setValue(initLevel.toInt());
  windowSpinBox->setValue(initWindow.toInt());
  
  delete m_TableModel;
  m_TableModel = new PresetTableModel(level, window, this);
  
  m_SortModel.setSourceModel(m_TableModel);
  
  QObject::connect(presetView->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(ListViewSelectionChanged(const QItemSelection&, const QItemSelection&)));

  this->sortPresets(0);
  
  presetView->resizeColumnsToContents();
}
void QmitkLevelWindowPresetDefinitionDialog::showEvent ( QShowEvent *  event ) [protected]

Definition at line 65 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References resizeColumns().

{
  this->resizeColumns();
  
  QDialog::showEvent(event);
}
void QmitkLevelWindowPresetDefinitionDialog::sortPresets ( int  index ) [protected, slot]

Definition at line 49 of file QmitkLevelWindowPresetDefinitionDialog.cpp.

References Ui_QmitkLevelWindowPresetDefinition::presetView.

Referenced by QmitkLevelWindowPresetDefinitionDialog(), and setPresets().

{
  static Qt::SortOrder order[3] = {Qt::AscendingOrder};
  
  presetView->sortByColumn(index, order[index]);
  if (order[index] == Qt::AscendingOrder) order[index] = Qt::DescendingOrder;
  else order[index] = Qt::AscendingOrder;
}

Member Data Documentation

QSortFilterProxyModel QmitkLevelWindowPresetDefinitionDialog::m_SortModel [protected]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines