void SettingsDialog::on_pbPosition_clicked() { QScopedPointer< Gui::Dialog > dialog(new Gui::Dialog(Gui::Dialog::CenterOfScreen,this)); PositionModel *model = new PositionModel(dialog.data()); QTableView *view = new QTableView(dialog.data()); QItemSelectionModel *selectionModel = new QItemSelectionModel(model,dialog.data()); dialog->setWindowTitle(tr("Set position")); QVBoxLayout *layout = new QVBoxLayout; QDialogButtonBox *dialogButtons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal,dialog.data()); connect(dialogButtons,SIGNAL(accepted()),dialog.data(),SLOT(accept())); connect(dialogButtons,SIGNAL(rejected()),dialog.data(),SLOT(reject())); view->setModel(model); view->setItemDelegateForColumn(0,new PositionLabelDelegate); view->setItemDelegateForColumn(1,new PositionDelegate(QApplication::palette())); view->setSelectionBehavior(QAbstractItemView::SelectRows); view->setSelectionMode(QAbstractItemView::SingleSelection); view->setSelectionModel(selectionModel); view->verticalHeader()->setVisible(false); view->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); view->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); view->setEditTriggers(QAbstractItemView::NoEditTriggers); layout->addWidget(view); layout->addWidget(dialogButtons); dialog->setLayout(layout); dialog->resize(700,500); connect(dialog.data(),SIGNAL(executed()),view,SLOT(resizeColumnsToContents())); connect(dialog.data(),SIGNAL(executed()),view,SLOT(resizeRowsToContents())); selectionModel->select(model->index(pbPosition->property("wallPosition").toInt(),0), QItemSelectionModel::SelectCurrent | QItemSelectionModel::Rows); view->scrollTo(model->index(pbPosition->property("wallPosition").toInt(),0)); if (dialog->exec() == QDialog::Accepted) { Wally::Application::Position p = static_cast<Wally::Application::Position> (selectionModel->currentIndex().row()); pbPosition->setProperty("wallPosition",static_cast<int> (p)); pbPosition->setText(positionToString(p).replace("&","&&")); settingsModified(); } }
QmitkModulesDialog::QmitkModulesDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { this->setWindowTitle("MITK Modules"); QVBoxLayout* layout = new QVBoxLayout(); this->setLayout(layout); QTableView* tableView = new QTableView(this); QmitkModuleTableModel* tableModel = new QmitkModuleTableModel(tableView); QSortFilterProxyModel* sortProxyModel = new QSortFilterProxyModel(tableView); sortProxyModel->setSourceModel(tableModel); sortProxyModel->setDynamicSortFilter(true); tableView->setModel(sortProxyModel); tableView->verticalHeader()->hide(); tableView->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); tableView->setSelectionBehavior(QAbstractItemView::SelectRows); tableView->setSelectionMode(QAbstractItemView::ExtendedSelection); tableView->setTextElideMode(Qt::ElideMiddle); tableView->setSortingEnabled(true); tableView->sortByColumn(0, Qt::AscendingOrder); tableView->horizontalHeader()->setResizeMode(0, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setResizeMode(2, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setResizeMode(5, QHeaderView::ResizeToContents); tableView->horizontalHeader()->setStretchLastSection(true); tableView->horizontalHeader()->setCascadingSectionResizes(true); layout->addWidget(tableView); QDialogButtonBox* btnBox = new QDialogButtonBox(QDialogButtonBox::Close); layout->addWidget(btnBox); this->resize(800, 600); connect(btnBox, SIGNAL(rejected()), this, SLOT(reject())); }