-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
#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();
}
/**
- Set objects.
+ Set objects which could be used for rules definition.
+ @param theObjects the ordered list of objects
*/
void HYDROGUI_PriorityWidget::setObjects( const QList<Handle(HYDROData_Object)>& theObjects )
{
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