#include <SUIT_MessageBox.h>
#include <QComboBox>
+#include <QHeaderView>
#include <QLayout>
-#include <QStyledItemDelegate>
#include <QTableView>
#include <QToolButton>
-/**
- Custom item delegate (combobox)
- */
-class HYDROGUI_PriorityWidget::Delegate : public QStyledItemDelegate
-{
-public:
- Delegate( QObject* theParent = 0 );
-
- QWidget* createEditor( QWidget*, const QStyleOptionViewItem&,
- const QModelIndex& ) const;
-
- void setEditorData( QWidget*, const QModelIndex& ) const;
- void setModelData( QWidget*, QAbstractItemModel*, const QModelIndex& ) const;
-};
-
/**
Constructor.
@param theParent the parent object
aComboBox->addItem( aText, aMap.value( aText ).toInt() );
}
} else if ( theIndex.column() == 0 || theIndex.column() == 2 ) {
- QStringList anItems = theIndex.data( Qt::UserRole ).toStringList();
QStringList anObjNames = theIndex.data( Qt::UserRole ).toStringList();
aComboBox->addItems( anObjNames );
}
+ connect( aComboBox, SIGNAL( activated( int ) ), this, SLOT( finishEditing() ) );
+
return aComboBox;
}
}
}
+/**
+ Emit signal indicating that the user has finished editing.
+ */
+void HYDROGUI_PriorityWidget::Delegate::finishEditing()
+{
+ QWidget* anEditor = qobject_cast<QWidget*>( sender() );
+ if ( anEditor ) {
+ emit commitData( anEditor );
+ emit closeEditor( anEditor );
+ }
+}
+
/**
Constructor.
// Table view
myTable = new QTableView( this );
myTable->setItemDelegate( new Delegate( this ) );
- myTable->setEditTriggers( QAbstractItemView::DoubleClicked | QAbstractItemView::SelectedClicked );
-
+ myTable->setEditTriggers( QAbstractItemView::DoubleClicked |
+ QAbstractItemView::SelectedClicked |
+ QAbstractItemView::EditKeyPressed );
+
// Set the custom model
HYDROGUI_PriorityTableModel* aModel = new HYDROGUI_PriorityTableModel();
myTable->setModel( aModel );
+ // Set resize mode
+ myTable->horizontalHeader()->setStretchLastSection( false);
+ myTable->horizontalHeader()->setResizeMode( 0, QHeaderView::Stretch );
+ myTable->horizontalHeader()->setResizeMode( 1, QHeaderView::ResizeToContents );
+ myTable->horizontalHeader()->setResizeMode( 2, QHeaderView::Stretch );
+ myTable->horizontalHeader()->setResizeMode( 3, QHeaderView::ResizeToContents );
+
+ myTable->verticalHeader()->setResizeMode( QHeaderView::ResizeToContents );
+
// Layout
// buttons
QHBoxLayout* aButtonsLayout = new QHBoxLayout();
myAdd->setEnabled( aModel->canCreateNewRule() );
bool isTableNotEmpty = aModel->rowCount() > 0;
myClear->setEnabled( isTableNotEmpty );
- if ( isTableNotEmpty ) {
- myTable->resizeColumnsToContents();
- }
}
onSelectionChanged();
}
Show error message.
*/
void HYDROGUI_PriorityWidget::onShowError( const QString& theMsg ) {
- SUIT_MessageBox::critical( this, tr( "ERROR" ), theMsg );
+ SUIT_MessageBox::warning( this, tr( "INCORRECT_INPUT" ), theMsg );
}
\ No newline at end of file
#include <HYDROData_Object.h>
#include <HYDROData_PriorityQueue.h>
+#include <QStyledItemDelegate>
#include <QWidget>
class QTableView;
QToolButton* myClear; ///< the clear all rules button
};
+/**
+ * \class HYDROGUI_PriorityWidget::Delegate
+ * \brief The class representing custom item delegate (combobox)
+ */
+class HYDROGUI_PriorityWidget::Delegate : public QStyledItemDelegate
+{
+ Q_OBJECT
+
+public:
+ Delegate( QObject* theParent = 0 );
+
+ QWidget* createEditor( QWidget*, const QStyleOptionViewItem&,
+ const QModelIndex& ) const;
+
+ void setEditorData( QWidget*, const QModelIndex& ) const;
+ void setModelData( QWidget*, QAbstractItemModel*, const QModelIndex& ) const;
+
+protected slots:
+ void finishEditing();
+};
+
#endif