]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Additional methods for Copy/Paste functionality.
authornds <nds@opencascade.com>
Fri, 28 Sep 2007 05:34:57 +0000 (05:34 +0000)
committernds <nds@opencascade.com>
Fri, 28 Sep 2007 05:34:57 +0000 (05:34 +0000)
src/Qtx/QtxTable.cxx
src/Qtx/QtxTable.h

index ceef59d6d0991b5f88c52063c736b265954816ad..724ab727df83295ede009591c24bbd0d2abd0d86 100644 (file)
@@ -1236,7 +1236,7 @@ QFont QtxTable::cellFont( const int row, const int col ) const
 
 QColor QtxTable::cellForeground( const int row, const int col ) const
 {
-  QColor res;
+  QColor res = Qt::black;
   QTableWidgetItem* anItem = item( row, col );
   if ( anItem && anItem->foreground().style() != Qt::NoBrush )
     res = anItem->foreground().color();
@@ -1245,7 +1245,7 @@ QColor QtxTable::cellForeground( const int row, const int col ) const
 
 QColor QtxTable::cellBackground( const int row, const int col ) const
 {
-  QColor res;
+  QColor res = Qt::white;
   QTableWidgetItem* anItem = item( row, col );
   if ( anItem && anItem->background().style() != Qt::NoBrush )
     res = anItem->background().color();
@@ -1289,6 +1289,46 @@ void QtxTable::setCellBackground( const int row, const int col, const QColor& c
     anItem->setBackground( c );
 }
 
+/*!
+  Return item from cell 
+  \param row - table row
+  \param col - table column
+  \param created - if item not exit and create=true, it will be created
+*/
+QTableWidgetItem* QtxTable::getItem( const int row, const int col, const bool created )
+{
+  QTableWidgetItem* anItem = item( row, col );
+  if ( !anItem && created && row < rowCount() && col < columnCount() ) {
+    anItem = new QTableWidgetItem();
+    setItem( row, col, anItem );
+  }
+  return anItem;
+}
+
+QModelIndexList QtxTable::getSelectedIndexes()
+{
+  return selectedIndexes();
+}
+
+bool QtxTable::indexPosition( const QModelIndex& theIndex, int& theRow,
+                              int& theCol ) const
+{
+  theRow = -1;
+  theCol = -1;
+  QAbstractTableModel* aModel = ::qobject_cast<QAbstractTableModel*>
+                                ( model() );
+  if ( aModel ) {
+    for ( int i = 0, aNbCols = columnCount(); i < aNbCols; i++ )
+      for ( int j = 0, aNbRows = rowCount(); j < aNbRows; j++ )
+        if ( aModel->index( j, i ) == theIndex ) {
+          theRow = i;
+          theCol = j;
+          break;
+        }
+  }
+  return theRow != -1 && theCol != -1;
+}
+
 /*void QtxTable::paintCell( QPainter* p, int row, int col, const QRect& cr,
                           bool selected, const QColorGroup& cg )
 {
@@ -1387,23 +1427,6 @@ void QtxTable::resizeEvent( QResizeEvent* e )
   //updateGeometries();
 }
 
-/*!
-  Return item from cell 
-  \param row - table row
-  \param col - table column
-  \param created - if item not exit and create=true, it will be created
-*/
-QTableWidgetItem* QtxTable::getItem( const int row, const int col, const bool created )
-{
-  QTableWidgetItem* anItem = item( row, col );
-  if ( !anItem && created && row < rowCount() && col < columnCount() ) {
-    anItem = new QTableWidgetItem();
-    setItem( row, col, anItem );
-  }
-  return anItem;
-}
-
-
 /*!
   Starts edition of header
   \param o - header orientation
index 077dc9cb05131e651021c0faafbc9c5ed696f32f..019fb901263d4ac277d41cc8fdfa2afb4f622aff 100644 (file)
@@ -29,6 +29,7 @@
 #include <QTableWidget>
 #include <QHeaderView>
 #include <QIcon>
+#include <QModelIndex>
 //#include <qvariant.h>
 //#include <qptrvector.h>
 
@@ -101,7 +102,11 @@ public:
   void             setCellFont( const int, const int, const QFont& );
   void             setCellForeground( const int, const int, const QColor& );
   void             setCellBackground( const int, const int, const QColor& );
-  void             setCellIcont( const int, const int, QIcon& );
+  void             setCellIcon( const int, const int, QIcon& );
+
+  virtual QTableWidgetItem* getItem( const int, const int, const bool = true );
+  QModelIndexList getSelectedIndexes();
+  bool             indexPosition( const QModelIndex&, int&, int& ) const;
 
   //virtual void     paintCell( QPainter*, int, int, const QRect&, bool, const QColorGroup& );
 
@@ -152,8 +157,6 @@ protected:
   QHeaderView*     header( Qt::Orientation o ) const;
   virtual QRect    headerSectionRect( QHeaderView*, const int, int* = 0 ) const;
 
-  QTableWidgetItem* getItem( const int, const int, const bool = true );
-
 private:
   typedef QMap<QHeaderView*, bool>  HeaderState;
   typedef QVector<QHeaderView*> HeaderVector;