From 2cb9fe1e3dd5a2a73a59e8e1b6c587ff7b6e3b3d Mon Sep 17 00:00:00 2001 From: nds Date: Mon, 15 Oct 2007 12:32:52 +0000 Subject: [PATCH] Move create Actions, Table and ToolBars from constructor to initLayout function for childrens. --- src/TableViewer/TableViewer_ViewModel.cxx | 15 ++++++++-- src/TableViewer/TableViewer_ViewModel.h | 6 +++- src/TableViewer/TableViewer_ViewWindow.cxx | 32 +++++++++++++++------- src/TableViewer/TableViewer_ViewWindow.h | 2 ++ 4 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/TableViewer/TableViewer_ViewModel.cxx b/src/TableViewer/TableViewer_ViewModel.cxx index 12b7058be..db0d1a2e0 100755 --- a/src/TableViewer/TableViewer_ViewModel.cxx +++ b/src/TableViewer/TableViewer_ViewModel.cxx @@ -45,9 +45,18 @@ TableViewer_Viewer::~TableViewer_Viewer() SUIT_ViewWindow* TableViewer_Viewer::createView( SUIT_Desktop* theDesktop ) { TableViewer_ViewWindow* vw = new TableViewer_ViewWindow( theDesktop, this ); - QtxTable* tbl = vw->table(); - if ( tbl && getViewManager() ) - tbl->viewport()->installEventFilter( getViewManager() ); + initView( vw ); return vw; } +/*! + Start initialization of view window + \param theVW - view window to be initialized +*/ +void TableViewer_Viewer::initView( TableViewer_ViewWindow* theVW ) +{ + theVW->initLayout(); + QtxTable* tbl = theVW->table(); + //if ( tbl && getViewManager() ) + // tbl->viewport()->installEventFilter( getViewManager() ); +} diff --git a/src/TableViewer/TableViewer_ViewModel.h b/src/TableViewer/TableViewer_ViewModel.h index cd8f5140b..d0bdac567 100755 --- a/src/TableViewer/TableViewer_ViewModel.h +++ b/src/TableViewer/TableViewer_ViewModel.h @@ -22,6 +22,7 @@ #include "TableViewer.h" #include "SUIT_ViewModel.h" +class TableViewer_ViewWindow; class SUIT_ViewWindow; class SUIT_Desktop; class QString; @@ -37,7 +38,10 @@ public: ~TableViewer_Viewer(); virtual SUIT_ViewWindow* createView(SUIT_Desktop* theDesktop); - virtual QString getType() const { return Type(); } + virtual QString getType() const { return Type(); } +protected: + void initView( TableViewer_ViewWindow* ); + }; #endif // !defined(TABLEVIEWER_VIEWMODEL_H) diff --git a/src/TableViewer/TableViewer_ViewWindow.cxx b/src/TableViewer/TableViewer_ViewWindow.cxx index 7a02cbeca..55c7c4c00 100755 --- a/src/TableViewer/TableViewer_ViewWindow.cxx +++ b/src/TableViewer/TableViewer_ViewWindow.cxx @@ -49,18 +49,8 @@ TableViewer_ViewWindow::TableViewer_ViewWindow( SUIT_Desktop* theDesktop, :SUIT_ViewWindow( theDesktop ) { myModel = theModel; - myTable = new QtxTable( this ); - connect( myTable->selectionModel(), SIGNAL( selectionChanged( const QItemSelection&, - const QItemSelection& ) ), this, SLOT( selectionChanged() ) ); - - //myTable->setReadOnly( true ); - setCentralWidget( myTable ); - myToolBar = new QtxToolBar( true, tr("LBL_TOOLBAR_LABEL"), this ); - createActions(); - createToolBar(); - // fill table /* myTable->setColumnCount(3); @@ -102,6 +92,19 @@ QtxTable* TableViewer_ViewWindow::table() const return myTable; } + +/*! + Internal initialization +*/ +void TableViewer_ViewWindow::initLayout() +{ + myTable = createTable(); + setCentralWidget( myTable ); + + createActions(); + createToolBar(); +} + QImage TableViewer_ViewWindow::dumpView() { return QPixmap::grabWindow( table()->winId() ).toImage(); @@ -517,3 +520,12 @@ bool TableViewer_ViewWindow::canPaste( const int theRow, const int theCol, const return theRow < myTable->rowCount() && theRow >= 0 && theCol < myTable->columnCount() & theCol >= 0; } + +QtxTable* TableViewer_ViewWindow::createTable() +{ + QtxTable* aTable = new QtxTable( this ); + connect( aTable->selectionModel(), SIGNAL( selectionChanged( + const QItemSelection&, const QItemSelection& ) ), + this, SLOT( selectionChanged() ) ); + return aTable; +} diff --git a/src/TableViewer/TableViewer_ViewWindow.h b/src/TableViewer/TableViewer_ViewWindow.h index a346910e3..bc698d73c 100755 --- a/src/TableViewer/TableViewer_ViewWindow.h +++ b/src/TableViewer/TableViewer_ViewWindow.h @@ -47,6 +47,7 @@ public: QtxTable* table() const; QToolBar* getToolBar() { return myToolBar; } + virtual void initLayout(); virtual QImage dumpView(); protected: @@ -62,6 +63,7 @@ protected: virtual bool canCopy( const int, const int ); virtual bool canPaste( const int, const int, const QString& ); + virtual QtxTable* createTable(); void registerAction( const int, QtxAction* ); QtxAction* createAction( const int, const QString&, const QPixmap&, const QString&, const QString&, const int = 0, QObject* = 0 ); -- 2.39.2