From 7961d43ecf6949a0b203e031bef4d31be864896e Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 17 Jun 2013 12:34:18 +0000 Subject: [PATCH] 0021684: EDF 2221 : Display the arguments and the name of the operations + GEOMGUI_CreationInfoWdg.cxx --- src/GEOMGUI/GEOMGUI_CreationInfoWdg.cxx | 104 ++++++++++++++++++++++++ src/GEOMGUI/GEOMGUI_CreationInfoWdg.h | 63 ++++++++++++++ src/GEOMGUI/Makefile.am | 7 +- 3 files changed, 172 insertions(+), 2 deletions(-) create mode 100644 src/GEOMGUI/GEOMGUI_CreationInfoWdg.cxx create mode 100644 src/GEOMGUI/GEOMGUI_CreationInfoWdg.h diff --git a/src/GEOMGUI/GEOMGUI_CreationInfoWdg.cxx b/src/GEOMGUI/GEOMGUI_CreationInfoWdg.cxx new file mode 100644 index 000000000..ad8282be6 --- /dev/null +++ b/src/GEOMGUI/GEOMGUI_CreationInfoWdg.cxx @@ -0,0 +1,104 @@ +// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// +// 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. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// +// File : GEOMGUI_CreationInfoWdg.cxx +// Created : Fri Jun 7 13:07:59 2013 +// Author : Edward AGAPOV (eap) + +#include "GEOMGUI_CreationInfoWdg.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +GEOMGUI_CreationInfoWdg::GEOMGUI_CreationInfoWdg( SalomeApp_Application* app ) +//:QWidget( app->desktop() ) +{ + setWindowTitle(tr("CREATION_INFO_TITLE")); + + QFrame* frame = new QFrame( this ); + + QVBoxLayout* myLayout = new QVBoxLayout( this ); + myLayout->addWidget( frame ); + myLayout->setMargin(0); + + QGroupBox* operationGB = new QGroupBox( tr( "OPERATION" ), frame ); + + myIconLbl = new QLabel( operationGB ); + myOperaionLnEd = new QLineEdit( operationGB ); + myParamsTreeWd = new QTreeWidget( frame ); + myParamsTreeWd->setColumnCount( 2 ); + myParamsTreeWd->setHeaderLabels( QStringList() << tr( "PARAMETER" ) << tr( "VALUE" ) ); + myParamsTreeWd->header()->setStretchLastSection( true ); + myParamsTreeWd->header()->setResizeMode( 0, QHeaderView::ResizeToContents ); + + QHBoxLayout* operationLay = new QHBoxLayout( operationGB ); + operationLay->addWidget( myIconLbl ); + operationLay->addWidget( myOperaionLnEd ); + operationLay->setMargin(5); + + QVBoxLayout* aLayout = new QVBoxLayout( frame ); + aLayout->addWidget( operationGB ); + aLayout->addWidget( myParamsTreeWd ); + + // get a free dockable window id + myWindowID = 1; + while( app->dockWindow( myWindowID )) + ++myWindowID; +} + +void GEOMGUI_CreationInfoWdg::setOperation(const QPixmap& icon, const QString& name) +{ + myIconLbl->setPixmap( icon ); + myOperaionLnEd->setText( name ); + myParamsTreeWd->clear(); + + if ( name.isEmpty() ) + myOperaionLnEd->setText( tr("NO_INFO")); +} + +void GEOMGUI_CreationInfoWdg::addParam (const QString& name, const QString& value) +{ + QTreeWidgetItem* item = new QTreeWidgetItem( myParamsTreeWd ); + + item->setFlags( item->flags() | Qt::ItemIsEditable ); + item->setExpanded( true ); + + item->setText( 0, name ); + item->setText( 1, value ); +} + +void GEOMGUI_CreationInfoWdg::clear() +{ + myIconLbl->setPixmap( QPixmap() ); + myOperaionLnEd->setText( "" ); + myParamsTreeWd->clear(); +} + +GEOMGUI_CreationInfoWdg::~GEOMGUI_CreationInfoWdg() +{ + std::cout<<"~GEOMGUI_CreationInfoWdg"< + +class QString; +class QLabel; +class QLineEdit; +class QTreeWidget; +class SalomeApp_Application; + +/*! + * \brief A widget showing information about object creation: + * - operation icon + * - operation name + * - parameter values + * + * Issue 0021684 + */ +class GEOMGUI_EXPORT GEOMGUI_CreationInfoWdg : public QWidget +{ + Q_OBJECT; + + public: + GEOMGUI_CreationInfoWdg( SalomeApp_Application* app ); + ~GEOMGUI_CreationInfoWdg(); + + int getWinID() { return myWindowID; } + + void clear(); + void setOperation(const QPixmap& icon, const QString& name); + void addParam (const QString& name, const QString& value); + + private: + + QLabel* myIconLbl; + QLineEdit* myOperaionLnEd; + QTreeWidget* myParamsTreeWd; + int myWindowID; + +}; +#endif diff --git a/src/GEOMGUI/Makefile.am b/src/GEOMGUI/Makefile.am index 54bc852bd..213fe3bde 100644 --- a/src/GEOMGUI/Makefile.am +++ b/src/GEOMGUI/Makefile.am @@ -35,16 +35,19 @@ salomeinclude_HEADERS = \ GEOM_Displayer.h \ GEOMGUI_OCCSelector.h \ GEOMGUI_Selection.h \ - GEOM_GEOMGUI.hxx + GEOM_GEOMGUI.hxx \ + GEOMGUI_CreationInfoWdg.h dist_libGEOM_la_SOURCES = \ GeometryGUI.cxx \ GEOMGUI.cxx \ GEOM_Displayer.cxx \ GEOMGUI_OCCSelector.cxx \ - GEOMGUI_Selection.cxx + GEOMGUI_Selection.cxx \ + GEOMGUI_CreationInfoWdg.cxx MOC_FILES = \ + GEOMGUI_CreationInfoWdg_moc.cxx \ GeometryGUI_moc.cxx nodist_libGEOM_la_SOURCES = \