#include <QmitkDataManagerHotkeysPrefPage.h>
Public Member Functions | |
QmitkDataManagerHotkeysPrefPage () | |
void | Init (berry::IWorkbench::Pointer workbench) |
void | CreateQtControl (QWidget *parent) |
QWidget * | GetQtControl () const |
virtual bool | PerformOk () |
virtual void | PerformCancel () |
virtual void | Update () |
Protected Attributes | |
berry::IPreferences::WeakPtr | m_DataManagerHotkeysPreferencesNode |
std::map< QString, QmitkHotkeyLineEdit * > | m_HotkeyEditors |
QWidget * | m_MainControl |
Definition at line 30 of file QmitkDataManagerHotkeysPrefPage.h.
QmitkDataManagerHotkeysPrefPage::QmitkDataManagerHotkeysPrefPage | ( | ) |
Definition at line 35 of file QmitkDataManagerHotkeysPrefPage.cpp.
: m_MainControl(0) { }
void QmitkDataManagerHotkeysPrefPage::CreateQtControl | ( | QWidget * | parent ) | [virtual] |
Implements berry::IQtPreferencePage.
Definition at line 46 of file QmitkDataManagerHotkeysPrefPage.cpp.
References ID, m_DataManagerHotkeysPreferencesNode, m_HotkeyEditors, m_MainControl, and Update().
{ IPreferencesService::Pointer prefService = Platform::GetServiceRegistry().GetServiceById<IPreferencesService>(IPreferencesService::ID); berry::IPreferences::Pointer _DataManagerHotkeysPreferencesNode = prefService->GetSystemPreferences()->Node("/DataManager/Hotkeys"); m_DataManagerHotkeysPreferencesNode = _DataManagerHotkeysPreferencesNode; m_HotkeyEditors["Make all nodes invisible"] = new QmitkHotkeyLineEdit("Ctrl+, V"); m_HotkeyEditors["Toggle visibility of selected nodes"] = new QmitkHotkeyLineEdit("V"); m_HotkeyEditors["Delete selected nodes"] = new QmitkHotkeyLineEdit("Del"); m_HotkeyEditors["Reinit selected nodes"] = new QmitkHotkeyLineEdit("R"); m_HotkeyEditors["Global Reinit"] = new QmitkHotkeyLineEdit("Ctrl+, R"); m_HotkeyEditors["Save selected nodes"] = new QmitkHotkeyLineEdit("Ctrl+, S"); m_HotkeyEditors["Load"] = new QmitkHotkeyLineEdit("Ctrl+, L"); m_HotkeyEditors["Show Node Information"] = new QmitkHotkeyLineEdit("Ctrl+, I"); m_MainControl = new QWidget(parent); QGridLayout* layout = new QGridLayout; int i = 0; for (std::map<QString, QmitkHotkeyLineEdit*>::iterator it = m_HotkeyEditors.begin() ; it != m_HotkeyEditors.end(); ++it) { layout->addWidget(new QLabel(it->first), i,0); layout->addWidget(it->second, i,1); layout->setRowStretch(i,0); ++i; } layout->setRowStretch(i+1,10); m_MainControl->setLayout(layout); this->Update(); }
QWidget * QmitkDataManagerHotkeysPrefPage::GetQtControl | ( | ) | const [virtual] |
Implements berry::IQtPreferencePage.
Definition at line 86 of file QmitkDataManagerHotkeysPrefPage.cpp.
References m_MainControl.
{ return m_MainControl; }
void QmitkDataManagerHotkeysPrefPage::Init | ( | berry::IWorkbench::Pointer | workbench ) | [virtual] |
Implements berry::IPreferencePage.
Definition at line 41 of file QmitkDataManagerHotkeysPrefPage.cpp.
{ }
void QmitkDataManagerHotkeysPrefPage::PerformCancel | ( | ) | [virtual] |
Implements berry::IPreferencePage.
Definition at line 143 of file QmitkDataManagerHotkeysPrefPage.cpp.
{ }
bool QmitkDataManagerHotkeysPrefPage::PerformOk | ( | ) | [virtual] |
Implements berry::IPreferencePage.
Definition at line 91 of file QmitkDataManagerHotkeysPrefPage.cpp.
References berry::WeakPointer< TObjectType >::Lock(), m_DataManagerHotkeysPreferencesNode, and m_HotkeyEditors.
{ IPreferences::Pointer _DataManagerHotkeysPreferencesNode = m_DataManagerHotkeysPreferencesNode.Lock(); if(_DataManagerHotkeysPreferencesNode.IsNotNull()) { bool duplicate = false; QString keyString; QString errString; for (std::map<QString, QmitkHotkeyLineEdit*>::iterator it = m_HotkeyEditors.begin() ; it != m_HotkeyEditors.end(); ++it) { keyString = it->second->GetKeySequenceAsString(); if(keyString.isEmpty()) errString = QString("No valid key sequence for \"%1\"").arg(it->first); if(errString.isEmpty()) { std::map<QString, QmitkHotkeyLineEdit*>::iterator it2; // search for duplicated key for (it2 = m_HotkeyEditors.begin(); it2 != m_HotkeyEditors.end(); ++it2) { if(it->first != it2->first && keyString == it2->second->GetKeySequenceAsString()) { duplicate = true; break; } } if(duplicate == true) errString = QString("Duplicate hot key for \"%1\" and \"%2\"").arg(it->first).arg(it2->first); } if(!errString.isEmpty()) { QMessageBox::critical(QApplication::activeWindow(), "Error", errString); return false; } } //# no errors -> save all values and flush to file for (std::map<QString, QmitkHotkeyLineEdit*>::iterator it = m_HotkeyEditors.begin() ; it != m_HotkeyEditors.end(); ++it) _DataManagerHotkeysPreferencesNode->Put(it->first.toStdString() , it->second->GetKeySequenceAsString().toStdString()); _DataManagerHotkeysPreferencesNode->Flush(); return true; } return false; }
void QmitkDataManagerHotkeysPrefPage::Update | ( | ) | [virtual] |
Implements berry::IPreferencePage.
Definition at line 148 of file QmitkDataManagerHotkeysPrefPage.cpp.
References berry::WeakPointer< TObjectType >::Lock(), m_DataManagerHotkeysPreferencesNode, and m_HotkeyEditors.
Referenced by CreateQtControl().
{ IPreferences::Pointer _DataManagerHotkeysPreferencesNode = m_DataManagerHotkeysPreferencesNode.Lock(); if(_DataManagerHotkeysPreferencesNode.IsNotNull()) { for (std::map<QString, QmitkHotkeyLineEdit*>::iterator it = m_HotkeyEditors.begin() ; it != m_HotkeyEditors.end(); ++it) { it->second->setText(QString::fromStdString(_DataManagerHotkeysPreferencesNode->Get(it->first.toStdString() , it->second->text().toStdString()))); } } }
berry::IPreferences::WeakPtr QmitkDataManagerHotkeysPrefPage::m_DataManagerHotkeysPreferencesNode [protected] |
The node from which the properties are taken (will be catched from the preferences service in ctor)
Definition at line 61 of file QmitkDataManagerHotkeysPrefPage.h.
Referenced by CreateQtControl(), PerformOk(), and Update().
std::map<QString, QmitkHotkeyLineEdit*> QmitkDataManagerHotkeysPrefPage::m_HotkeyEditors [protected] |
Maps a label to hotkey lineedit, e.g. "Toggle Visibility of selected nodes" => QmitkHotkeyLineEdit
Definition at line 66 of file QmitkDataManagerHotkeysPrefPage.h.
Referenced by CreateQtControl(), PerformOk(), and Update().
QWidget* QmitkDataManagerHotkeysPrefPage::m_MainControl [protected] |
Definition at line 68 of file QmitkDataManagerHotkeysPrefPage.h.
Referenced by CreateQtControl(), and GetQtControl().