FermentableDialog::FermentableDialog(MainWindow* parent) : QDialog(parent), mainWindow(parent), fermEdit(new FermentableEditor(this)), numFerms(0) { doLayout(); fermTableModel = new FermentableTableModel(tableWidget, false); fermTableModel->setInventoryEditable(true); fermTableProxy = new FermentableSortFilterProxyModel(tableWidget); fermTableProxy->setSourceModel(fermTableModel); tableWidget->setModel(fermTableProxy); tableWidget->setSortingEnabled(true); tableWidget->sortByColumn( FERMNAMECOL, Qt::AscendingOrder ); fermTableProxy->setDynamicSortFilter(true); fermTableProxy->setFilterKeyColumn(1); connect( pushButton_addToRecipe, SIGNAL( clicked() ), this, SLOT( addFermentable() ) ); connect( pushButton_edit, SIGNAL( clicked() ), this, SLOT( editSelected() ) ); connect( pushButton_remove, SIGNAL( clicked() ), this, SLOT( removeFermentable() ) ); connect( pushButton_new, SIGNAL( clicked() ), this, SLOT( newFermentable() ) ); connect( tableWidget, SIGNAL( doubleClicked(const QModelIndex&) ), this, SLOT(addFermentable(const QModelIndex&)) ); connect( qLineEdit_searchBox, SIGNAL(textEdited(QString)), this, SLOT(filterFermentables(QString))); // Let me see if this works fermTableModel->observeDatabase(true); }
void MainWindow::keyReleaseEvent(QKeyEvent *event) { QMainWindow::keyReleaseEvent(event); switch(event->key()) { case Qt::Key_Left: back(); break; case Qt::Key_Right: originalSelected(); break; case Qt::Key_Up: backwardSelected(); break; case Qt::Key_Down: fordwardSelected(); break; case Qt::Key_Escape: editSelected(); break; } }
// ****************************************************************************************** // Create the main content widget // ****************************************************************************************** QWidget* VirtualJointsWidget::createContentsWidget() { // Main widget QWidget *content_widget = new QWidget( this ); // Basic widget container QVBoxLayout *layout = new QVBoxLayout( this ); // Table ------------ ------------------------------------------------ data_table_ = new QTableWidget( this ); data_table_->setColumnCount(4); data_table_->setSortingEnabled(true); data_table_->setSelectionBehavior( QAbstractItemView::SelectRows ); connect( data_table_, SIGNAL( cellDoubleClicked( int, int ) ), this, SLOT( editDoubleClicked( int, int ) ) ); connect( data_table_, SIGNAL( cellClicked( int, int ) ), this, SLOT( previewClicked( int, int ) ) ); layout->addWidget( data_table_ ); // Set header labels QStringList header_list; header_list.append("Virtual Joint Name"); header_list.append("Child Link"); header_list.append("Parent Frame"); header_list.append("Type"); data_table_->setHorizontalHeaderLabels(header_list); // Bottom Buttons -------------------------------------------------- QHBoxLayout *controls_layout = new QHBoxLayout(); // Spacer QWidget *spacer = new QWidget( this ); spacer->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); controls_layout->addWidget( spacer ); // Edit Selected Button btn_edit_ = new QPushButton( "&Edit Selected", this ); btn_edit_->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred ); btn_edit_->setMaximumWidth(300); btn_edit_->hide(); // show once we know if there are existing poses connect(btn_edit_, SIGNAL(clicked()), this, SLOT(editSelected())); controls_layout->addWidget(btn_edit_); controls_layout->setAlignment( btn_edit_, Qt::AlignRight ); // Delete Selected Button btn_delete_ = new QPushButton( "&Delete Selected", this ); connect( btn_delete_, SIGNAL(clicked()), this, SLOT( deleteSelected() ) ); controls_layout->addWidget( btn_delete_ ); controls_layout->setAlignment(btn_delete_, Qt::AlignRight); // Add VJoint Button QPushButton *btn_add = new QPushButton( "&Add Virtual Joint", this ); btn_add->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred ); btn_add->setMaximumWidth(300); connect(btn_add, SIGNAL(clicked()), this, SLOT(showNewScreen())); controls_layout->addWidget(btn_add); controls_layout->setAlignment( btn_add, Qt::AlignRight ); // Add layout layout->addLayout( controls_layout ); // Set layout ----------------------------------------------------- content_widget->setLayout(layout); return content_widget; }
// ****************************************************************************************** // Edit whatever element is selected // ****************************************************************************************** void VirtualJointsWidget::editDoubleClicked( int row, int column ) { editSelected(); }
// ****************************************************************************************** // Edit whatever element is selected // ****************************************************************************************** void EndEffectorsWidget::editDoubleClicked( int row, int column ) { editSelected(); }