Salome HOME
Merge branch 'BR_LAND_COVER_MAP' of ssh://git.salome-platform.org/modules/hydro into...
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_StricklerTableDlg.cxx
index 85897ffeea60ec70554f3043e3d47c603061ce26..4282490f65b55dd5dfe3d92d7287b3f883ddfca4 100644 (file)
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-#include "HYDROGUI_StricklerTableDlg.h"
-
-#include "HYDROGUI_Module.h"
-#include "HYDROGUI_Tool.h"
-#include "HYDROGUI_LineEditDoubleValidator.h"
-#include "HYDROData_StricklerTable.h"
-
-#include <LightApp_Application.h>
-
-#include <SUIT_Session.h>
-#include <SUIT_ResourceMgr.h>
+#include <HYDROGUI_StricklerTableDlg.h>
+#include <HYDROGUI_LineEditDoubleValidator.h>
+#include <HYDROGUI_Tool.h>
+#include <HYDROData_StricklerTable.h>
 #include <SUIT_FileDlg.h>
-#include <SUIT_Desktop.h>
-#include <SUIT_MessageBox.h>
-
+#ifndef LIGHT_MODE
+#include <SUIT_ResourceMgr.h>
+#include <SUIT_Session.h>
+#endif
+#include <QBoxLayout>
+#include <QColorDialog>
 #include <QGroupBox>
-#include <QLineEdit>
-#include <QToolButton>
-#include <QLayout>
+#include <QHeaderView>
 #include <QLabel>
+#include <QLineEdit>
+#include <QPainter>
 #include <QTableWidget>
-#include <QHeaderView>
-#include <QColorDialog>
+#include <QToolButton>
 
 HYDROGUI_ColorDelegate::HYDROGUI_ColorDelegate( QWidget* theParent )
 {
@@ -86,13 +81,13 @@ QSize       HYDROGUI_ColorDelegate::sizeHint( const QStyleOptionViewItem& theOption, c
 
 
 
+const int COLUMNS_COUNT = 4;
+
 
 HYDROGUI_StricklerTableDlg::HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModule, const QString& theTitle, int theType )
 : HYDROGUI_InputPanel( theModule, theTitle ),
   myType( theType )
 {
-    SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
-
     QString fileGroupTitle = theType == Export ? tr( "EXPORT_STRICKLER_TABLE_FILE" ) : tr( "IMPORT_STRICKLER_TABLE_FILE" );
 
     // Import Strickler table from file
@@ -105,7 +100,10 @@ HYDROGUI_StricklerTableDlg::HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModu
     myFileName->setReadOnly( true );
 
     QToolButton* aBrowseBtn = new QToolButton( aFileNameGroup );
+#ifndef LIGHT_MODE
+    SUIT_ResourceMgr* aResMgr = SUIT_Session::session()->resourceMgr();
     aBrowseBtn->setIcon( aResMgr->loadPixmap( "HYDRO", tr( "BROWSE_ICO" ) ) );
+#endif
 
     QBoxLayout* aFileNameLayout = new QHBoxLayout( aFileNameGroup );
     aFileNameLayout->setMargin( 5 );
@@ -161,7 +159,7 @@ HYDROGUI_StricklerTableDlg::HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModu
         QAbstractItemView::SelectedClicked |
         QAbstractItemView::EditKeyPressed );
 
-    myTable->setColumnCount( 4 );
+    myTable->setColumnCount( COLUMNS_COUNT );
     QStringList aColumnNames;
     aColumnNames << tr( "STRICKLER_TYPE" ) << tr( "STRICKLER_COEFFICIENT" ) << tr( "ATTR_VALUE" ) << tr( "COLOR" );
     myTable->setHorizontalHeaderLabels( aColumnNames );
@@ -171,6 +169,7 @@ HYDROGUI_StricklerTableDlg::HYDROGUI_StricklerTableDlg( HYDROGUI_Module* theModu
     myTable->horizontalHeader()->setResizeMode( 1, QHeaderView::ResizeToContents );
     myTable->horizontalHeader()->setResizeMode( 2, QHeaderView::ResizeToContents );
     myTable->horizontalHeader()->setResizeMode( 3, QHeaderView::Stretch );
+    myTable->horizontalHeader()->setMinimumSectionSize( 15 );
 
     myTable->verticalHeader()->setResizeMode( QHeaderView::ResizeToContents );
 
@@ -371,6 +370,11 @@ void HYDROGUI_StricklerTableDlg::onAddCoefficient()
     int aRow = myTable->rowCount();
     myTable->insertRow( aRow );
 
+    for( int i=0; i<COLUMNS_COUNT; i++ )
+    {
+      myTable->setItem( aRow, i, new QTableWidgetItem() );
+    }
+
     // Set default type (=> generate unique type name) and coefficient
     //...
 
@@ -383,9 +387,11 @@ Remove the selected Strickler coefficient.
 void HYDROGUI_StricklerTableDlg::onRemoveCoefficient()
 {
     QList<int> aRows;
-    QModelIndexList aSelectedIndexes = myTable->selectionModel()->selectedRows();
+    QModelIndexList aSelectedIndexes = myTable->selectionModel()->selectedIndexes();
     foreach ( const QModelIndex& anIndex, aSelectedIndexes ) {
-        aRows << anIndex.row();
+      int aRowIndex = anIndex.row();
+      if ( !aRows.contains( aRowIndex ) )
+        aRows << aRowIndex;
     }
 
     removeRows( aRows );
@@ -409,6 +415,6 @@ Slot called on table selection change.
 */
 void HYDROGUI_StricklerTableDlg::onSelectionChanged()
 {
-    QModelIndexList aSelectedIndexes = myTable->selectionModel()->selectedRows();
+    QModelIndexList aSelectedIndexes = myTable->selectionModel()->selectedIndexes();
     myRemoveBtn->setEnabled( aSelectedIndexes.count() > 0 );
 }