]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
no message
authorstv <stv@opencascade.com>
Wed, 14 Feb 2007 17:38:58 +0000 (17:38 +0000)
committerstv <stv@opencascade.com>
Wed, 14 Feb 2007 17:38:58 +0000 (17:38 +0000)
115 files changed:
src/Qtx/Makefile.in [deleted file]
src/Qtx/Qtx.pro [new file with mode: 0644]
src/Qtx/QtxDblSpinBox.cxx [deleted file]
src/Qtx/QtxDblSpinBox.h [deleted file]
src/Qtx/QtxDblValidator.cxx [deleted file]
src/Qtx/QtxDblValidator.h [deleted file]
src/Qtx/QtxDialog.cxx [deleted file]
src/Qtx/QtxDialog.h [deleted file]
src/Qtx/QtxDirListEditor.cxx [deleted file]
src/Qtx/QtxDirListEditor.h [deleted file]
src/Qtx/QtxDockAction.cxx [deleted file]
src/Qtx/QtxDockAction.h [deleted file]
src/Qtx/QtxGroupBox.cxx [deleted file]
src/Qtx/QtxGroupBox.h [deleted file]
src/Qtx/QtxIntSpinBox.cxx [deleted file]
src/Qtx/QtxIntSpinBox.h [deleted file]
src/Qtx/QtxListAction.cxx [deleted file]
src/Qtx/QtxListAction.h [deleted file]
src/Qtx/QtxListBox.cxx [deleted file]
src/Qtx/QtxListBox.h [deleted file]
src/Qtx/QtxListOfOperations.cxx [deleted file]
src/Qtx/QtxListOfOperations.h [deleted file]
src/Qtx/QtxListResourceEdit.cxx [deleted file]
src/Qtx/QtxListResourceEdit.h [deleted file]
src/Qtx/QtxListView.cxx [deleted file]
src/Qtx/QtxListView.h [deleted file]
src/Qtx/QtxLogoMgr.cxx [deleted file]
src/Qtx/QtxLogoMgr.h [deleted file]
src/Qtx/QtxMRUAction.cxx [deleted file]
src/Qtx/QtxMRUAction.h [deleted file]
src/Qtx/QtxMainWindow.cxx
src/Qtx/QtxMainWindow.h
src/Qtx/QtxMenuButton.cxx [deleted file]
src/Qtx/QtxMenuButton.h [deleted file]
src/Qtx/QtxOperations.cxx [deleted file]
src/Qtx/QtxOperations.h [deleted file]
src/Qtx/QtxParser.cxx [deleted file]
src/Qtx/QtxParser.h [deleted file]
src/Qtx/QtxPathDialog.cxx [deleted file]
src/Qtx/QtxPathDialog.h [deleted file]
src/Qtx/QtxPopupMenu.cxx [deleted file]
src/Qtx/QtxPopupMenu.h [deleted file]
src/Qtx/QtxPopupMgr.cxx [deleted file]
src/Qtx/QtxPopupMgr.h [deleted file]
src/Qtx/QtxResourceEdit.cxx [deleted file]
src/Qtx/QtxResourceEdit.h [deleted file]
src/Qtx/QtxResourceMgr.cxx
src/Qtx/QtxResourceMgr.h
src/Qtx/QtxSplash.cxx [deleted file]
src/Qtx/QtxSplash.h [deleted file]
src/Qtx/QtxStdOperations.cxx [deleted file]
src/Qtx/QtxStdOperations.h [deleted file]
src/Qtx/QtxTable.cxx [deleted file]
src/Qtx/QtxTable.h [deleted file]
src/Qtx/QtxToolBar.cxx
src/Qtx/QtxToolBar.h
src/Qtx/QtxToolTip.cxx [deleted file]
src/Qtx/QtxToolTip.h [deleted file]
src/Qtx/QtxWorkspaceAction.cxx [deleted file]
src/Qtx/QtxWorkspaceAction.h [deleted file]
src/Qtx/QtxWorkstack.cxx
src/Qtx/QtxWorkstack.h
src/Qtx/QtxWorkstackAction.cxx [deleted file]
src/Qtx/QtxWorkstackAction.h [deleted file]
src/SUIT/Makefile.in [deleted file]
src/SUIT/SUIT.h
src/SUIT/SUIT_Accel.cxx
src/SUIT/SUIT_Accel.h
src/SUIT/SUIT_ActionOperation.cxx
src/SUIT/SUIT_ActionOperation.h
src/SUIT/SUIT_Application.cxx
src/SUIT/SUIT_Application.h
src/SUIT/SUIT_Convertor.h [deleted file]
src/SUIT/SUIT_DataObject.cxx
src/SUIT/SUIT_DataObject.h
src/SUIT/SUIT_DataObjectIterator.cxx
src/SUIT/SUIT_DataObjectKey.cxx
src/SUIT/SUIT_DataOwner.cxx
src/SUIT/SUIT_DataOwner.h
src/SUIT/SUIT_Desktop.cxx
src/SUIT/SUIT_Desktop.h
src/SUIT/SUIT_ExceptionHandler.cxx
src/SUIT/SUIT_FileDlg.cxx
src/SUIT/SUIT_FileDlg.h
src/SUIT/SUIT_FileValidator.cxx
src/SUIT/SUIT_FileValidator.h
src/SUIT/SUIT_MessageBox.cxx
src/SUIT/SUIT_MessageBox.h
src/SUIT/SUIT_Operation.h
src/SUIT/SUIT_OverrideCursor.cxx
src/SUIT/SUIT_OverrideCursor.h
src/SUIT/SUIT_ParserSettings.cxx [deleted file]
src/SUIT/SUIT_ParserSettings.h [deleted file]
src/SUIT/SUIT_PopupClient.cxx
src/SUIT/SUIT_PopupClient.h
src/SUIT/SUIT_ResourceMgr.cxx
src/SUIT/SUIT_SelectionMgr.cxx
src/SUIT/SUIT_SelectionMgr.h
src/SUIT/SUIT_Selector.cxx
src/SUIT/SUIT_Selector.h
src/SUIT/SUIT_Session.cxx
src/SUIT/SUIT_Session.h
src/SUIT/SUIT_Study.cxx
src/SUIT/SUIT_Study.h
src/SUIT/SUIT_ToolButton.cxx
src/SUIT/SUIT_ToolButton.h
src/SUIT/SUIT_Tools.cxx
src/SUIT/SUIT_Tools.h
src/SUIT/SUIT_ViewManager.cxx
src/SUIT/SUIT_ViewManager.h
src/SUIT/SUIT_ViewModel.cxx
src/SUIT/SUIT_ViewModel.h
src/SUIT/SUIT_ViewWindow.cxx
src/SUIT/SUIT_ViewWindow.h
src/SUIT/utilities.h [deleted file]

diff --git a/src/Qtx/Makefile.in b/src/Qtx/Makefile.in
deleted file mode 100755 (executable)
index ea5bccb..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
-#
-#  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   : Makefile.in
-#  Author : Vladimir Klyachin (OCN)
-#  Module : suit
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-
-VPATH=.:@srcdir@:@srcdir@/resources
-
-@COMMENCE@
-
-# header files 
-
-EXPORT_HEADERS= Qtx.h \
-               QtxAction.h \
-               QtxColorScale.h \
-               QtxComboBox.h \
-               QtxDblSpinBox.h \
-               QtxDialog.h \
-               QtxDockAction.h \
-                QtxDockWindow.h \
-                QtxGroupBox.h \
-               QtxIntSpinBox.h \
-               QtxListAction.h \
-               QtxListBox.h \
-                QtxListOfOperations.h \
-                QtxLogoMgr.h \
-               QtxMenuButton.h \
-               QtxMRUAction.h \
-               QtxOperations.h \
-               QtxPathDialog.h \
-                QtxPopupMgr.h \
-               QtxResourceMgr.h \
-                QtxStdOperations.h \
-                QtxTable.h \
-               QtxToolBar.h \
-               QtxToolTip.h \
-               QtxParser.h \
-                QtxPopupMenu.h \
-               QtxActionMgr.h \
-               QtxActionMenuMgr.h \
-               QtxActionToolMgr.h \
-                QtxMainWindow.h \
-               QtxWorkspaceAction.h \
-               QtxWorkstackAction.h \
-               QtxListResourceEdit.h \
-               QtxWorkstack.h \
-               QtxResourceEdit.h \
-               QtxListView.h \
-               QtxDirListEditor.h \
-               QtxDblValidator.h \
-               QtxSplash.h
-
-# .po files to transform in .qm
-
-PO_FILES = \
-
-# Libraries targets
-
-LIB = libqtx.la
-
-LIB_SRC= \
-        Qtx.cxx \
-       QtxAction.cxx \
-       QtxColorScale.cxx \
-       QtxComboBox.cxx \
-       QtxDblSpinBox.cxx \
-       QtxDialog.cxx \
-       QtxDockAction.cxx \
-        QtxDockWindow.cxx \
-        QtxGroupBox.cxx \
-       QtxIntSpinBox.cxx \
-       QtxListAction.cxx \
-       QtxListBox.cxx \
-        QtxListOfOperations.cxx \
-        QtxLogoMgr.cxx \
-       QtxMenuButton.cxx \
-       QtxMRUAction.cxx \
-       QtxPathDialog.cxx \
-        QtxPopupMgr.cxx \
-       QtxResourceMgr.cxx \
-        QtxStdOperations.cxx \
-        QtxTable.cxx \
-       QtxToolBar.cxx \
-       QtxToolTip.cxx \
-       QtxOperations.cxx \
-       QtxParser.cxx \
-        QtxPopupMenu.cxx \
-       QtxActionMgr.cxx \
-       QtxActionMenuMgr.cxx \
-       QtxActionToolMgr.cxx \
-        QtxMainWindow.cxx \
-       QtxWorkspaceAction.cxx \
-       QtxWorkstackAction.cxx \
-        QtxListResourceEdit.cxx \
-       QtxResourceEdit.cxx \
-       QtxWorkstack.cxx \
-       QtxListView.cxx \
-       QtxDirListEditor.cxx \
-       QtxDblValidator.cxx \
-       QtxSplash.cxx
-
-LIB_MOC = \
-       QtxAction.h \
-        QtxColorScale.h \
-        QtxComboBox.h \
-        QtxDblSpinBox.h \
-        QtxDialog.h \
-        QtxDockAction.h \
-        QtxDockWindow.h \
-        QtxGroupBox.h \
-        QtxIntSpinBox.h \
-        QtxListAction.h \
-        QtxListBox.h \
-        QtxLogoMgr.h \
-        QtxMenuButton.h \
-        QtxMRUAction.h \
-        QtxPathDialog.h \
-        QtxPopupMgr.h \
-        QtxPopupMenu.h \
-        QtxTable.h \
-       QtxToolBar.h \
-        QtxToolTip.h \
-       QtxActionMgr.h \
-       QtxActionMenuMgr.h \
-       QtxActionToolMgr.h \
-        QtxMainWindow.h \
-       QtxWorkspaceAction.h \
-       QtxWorkstackAction.h \
-       QtxWorkstack.h \
-       QtxListView.h \
-       QtxListResourceEdit.h \
-       QtxDirListEditor.h \
-       QtxDblValidator.h \
-       QtxSplash.h
-
-RESOURCES_FILES = \
-
-CPPFLAGS+=$(QT_INCLUDES)
-
-LDFLAGS+=$(QT_MT_LIBS)
-
-@CONCLUDE@
-
-
diff --git a/src/Qtx/Qtx.pro b/src/Qtx/Qtx.pro
new file mode 100644 (file)
index 0000000..b174dfd
--- /dev/null
@@ -0,0 +1,20 @@
+TEMPLATE = lib
+DESTDIR = ../../lib
+MOC_DIR = ../../moc
+OBJECTS_DIR = ../../obj/$$TARGET
+
+QT += xml
+CONFIG -= debug release debug_and_release
+CONFIG += qt thread debug dll shared
+
+win32:DEFINES += WIN32
+DEFINES += QTX_EXPORTS
+
+HEADERS     = *.h
+
+SOURCES     = *.cxx
+
+includes.files = $$HEADERS
+includes.path = ../../include
+
+INSTALLS += includes
diff --git a/src/Qtx/QtxDblSpinBox.cxx b/src/Qtx/QtxDblSpinBox.cxx
deleted file mode 100755 (executable)
index 59f9f61..0000000
+++ /dev/null
@@ -1,603 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxDblSpinBox.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxDblSpinBox.h"
-
-#include <qlineedit.h>
-#include <qvalidator.h>
-#include <qapplication.h>
-
-#include <float.h>
-
-/*!
-  \class  QtxDblSpinBox::Validator [internal]
-  Validator for QtxDblSpinBox (getted from Trolltech Qt - SpinBoxValidator)
-*/
-class QtxDblSpinBox::Validator : public QDoubleValidator
-{
-public:
-    Validator( QtxDblSpinBox* sb, const char* name )
-       : QDoubleValidator( sb, name ), spinBox( sb ) {}
-
-    virtual State validate( QString& str, int& pos ) const;
-
-private:
-    QtxDblSpinBox* spinBox;
-};
-
-
-/*!
-  Checks string and \return QValidator::State
-*/
-QValidator::State QtxDblSpinBox::Validator::validate( QString& str, int& pos ) const
-{
-  QString pref = spinBox->prefix();
-  QString suff = spinBox->suffix();
-  uint overhead = pref.length() + suff.length();
-  State state = Invalid;
-
-  if ( overhead == 0 )
-         state = QDoubleValidator::validate( str, pos );
-  else
-       {
-               if ( str.length() >= overhead && str.startsWith( pref ) &&
-         str.right( suff.length() ) == suff )
-               {
-                       QString core = str.mid( pref.length(), str.length() - overhead );
-                       int corePos = pos - pref.length();
-                       state = QDoubleValidator::validate( core, corePos );
-                       pos = corePos + pref.length();
-                       str.replace( pref.length(), str.length() - overhead, core );
-               }
-               else
-               {
-                       state = QDoubleValidator::validate( str, pos );
-                       if ( state == Invalid )
-                       {
-                               QString special = spinBox->specialValueText().stripWhiteSpace();
-                               QString candidate = str.stripWhiteSpace();
-                               if ( special.startsWith( candidate ) )
-                               {
-                                       if ( candidate.length() == special.length() )
-                                               state = Acceptable;
-                                       else
-                                               state = Intermediate;
-                               }
-                       }
-               }
-  }
-  return state;
-}
-
-/*!
-  Constructor
-*/
-QtxDblSpinBox::QtxDblSpinBox( QWidget* parent, const char* name )
-: QSpinBox( parent, name ),
-myCleared( false ),
-myBlocked( false ),
-myPrecision( 0 )
-{
-  myMin = -DBL_MAX;
-  myMax = DBL_MAX;
-  myStep = QRangeControl::lineStep();
-       myValue = 0;
-  setValidator( new Validator( this, "double_spinbox_validator" ) );
-  rangeChange();
-  updateDisplay();
-
-  connect( editor(), SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
-}
-
-/*!
-  Constructor
-*/
-QtxDblSpinBox::QtxDblSpinBox( double min, double max, double step, QWidget* parent, const char* name )
-: QSpinBox( parent, name ),
-myMin( min ),
-myMax( max ),
-myStep( step ),
-myCleared( false ),
-myBlocked( false ),
-myPrecision( 0 )
-{
-       myValue = myMin;
-  setValidator( new Validator( this, "double_spinbox_validator" ) );
-  rangeChange();
-  updateDisplay();
-
-  connect( editor(), SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
-}
-
-/*!
-  Destructor
-*/
-QtxDblSpinBox::~QtxDblSpinBox()
-{
-}
-
-/*!
-  \return min value of spin box
-*/
-double QtxDblSpinBox::minValue() const
-{
-  return myMin;
-}
-
-/*!
-  \return max value of spin box
-*/
-double QtxDblSpinBox::maxValue() const
-{
-  return myMax;
-}
-
-/*!
-  Changes min value of spin box
-  \param min - new min value
-*/
-void QtxDblSpinBox::setMinValue( int min )
-{
-       setMinValue( (double)min );
-}
-
-/*!
-  Changes min value of spin box
-  \param min - new min value
-*/
-void QtxDblSpinBox::setMinValue( double min )
-{
-  if ( myMin != min )
-  {
-    myMin = min;
-    rangeChange();
-  }
-}
-
-/*!
-  Changes max value of spin box
-  \param max - new max value
-*/
-void QtxDblSpinBox::setMaxValue( int max )
-{
-       setMaxValue( (double)max );
-}
-
-/*!
-  Changes max value of spin box
-  \param max - new max value
-*/
-void QtxDblSpinBox::setMaxValue( double max )
-{
-  if ( myMax != max )
-  {
-    myMax = max;
-    rangeChange();
-  }
-}
-
-/*!
-  Changes min and max value of spin box
-  \param min - new min value
-  \param max - new max value
-*/
-void QtxDblSpinBox::setRange( int min, int max )
-{
-       setRange( (double)min, (double)max );
-}
-
-/*!
-  Changes min and max value of spin box
-  \param min - new min value
-  \param max - new max value
-*/
-void QtxDblSpinBox::setRange( double min, double max )
-{
-  if ( myMin != min || myMax != max )
-  {
-    myMin = min;
-    myMax = max;
-    rangeChange();
-  }
-}
-
-/*!
-  \return step of spin box
-*/
-double QtxDblSpinBox::lineStep() const
-{
-  return myStep;
-}
-
-/*!
-  Changes step of spin box
-  \param step - new step
-*/
-void QtxDblSpinBox::setLineStep( int step )
-{
-  setLineStep( (double)step );
-}
-
-/*!
-  Changes step of spin box
-  \param step - new step
-*/
-void QtxDblSpinBox::setLineStep( double step )
-{
-  myStep = step;
-}
-
-/*!
-  \return value of spin box
-*/
-double QtxDblSpinBox::value() const
-{
-  QSpinBox::value();
-
-  return myValue;
-}
-
-/*!
-  Changes value of spin box
-  \param val - new value of spin box
-*/
-void QtxDblSpinBox::setValue( int val )
-{
-       setValue( (double)val );
-}
-
-/*!
-  Changes value of spin box
-  \param val - new value of spin box
-*/
-void QtxDblSpinBox::setValue( double val )
-{
-       myCleared = false;
-  double prevVal = myValue;
-  myValue = bound( val );
-  if ( prevVal != myValue )
-    valueChange();
-}
-
-/*!
-  Adds step to value
-*/
-void QtxDblSpinBox::stepUp()
-{
-       interpretText();
-       if ( wrapping() && myValue + myStep > myMax )
-               setValue( myMin );
-       else
-               setValue( myValue + myStep );
-}
-
-/*!
-  Subtracks step from value
-*/
-void QtxDblSpinBox::stepDown()
-{
-       interpretText();
-       if ( wrapping() && myValue - myStep < myMin )
-               setValue( myMax );
-       else
-               setValue( myValue - myStep );
-}
-
-/*!
-  \return number of digit after comma
-*/
-int QtxDblSpinBox::precision() const
-{
-       return myPrecision;
-}
-
-/*!
-  Changes number of digit after comma
-  \param prec - new digit number
-*/
-void QtxDblSpinBox::setPrecision( const int prec )
-{
-       int newPrec = QMAX( prec, 0 );
-       int oldPrec = QMAX( myPrecision, 0 );
-       myPrecision = prec;
-       if ( newPrec != oldPrec )
-               updateDisplay();
-}
-
-/*!
-  \return true if spin box is cleared
-*/
-bool QtxDblSpinBox::isCleared() const
-{
-       return myCleared;
-}
-
-/*!
-  Changes cleared status of spin box
-  \param on - new status
-*/
-void QtxDblSpinBox::setCleared( const bool on )
-{
-       if ( myCleared == on )
-               return;
-
-       myCleared = on;
-       updateDisplay();
-}
-
-/*!
-  Selects all content of spin box editor
-*/
-void QtxDblSpinBox::selectAll()
-{
-#if QT_VER >= 3
-       QSpinBox::selectAll();
-#else
-  editor()->selectAll();
-#endif
-}
-
-/*!
-  Custom event filter, updates text of spin box editor
-*/
-bool QtxDblSpinBox::eventFilter( QObject* o, QEvent* e )
-{
-  if ( !myCleared || o != editor() || !editor()->text().stripWhiteSpace().isEmpty() )
-  {
-    bool state = QSpinBox::eventFilter( o, e );
-    if ( e->type() == QEvent::FocusOut && o == editor() )
-      updateDisplay();
-    return state;
-  }
-
-  if ( e->type() == QEvent::FocusOut || e->type() == QEvent::Leave || e->type() == QEvent::Hide )
-    return false;
-
-  if ( e->type() == QEvent::KeyPress &&
-         ( ((QKeyEvent*)e)->key() == Key_Tab || ((QKeyEvent*)e)->key() == Key_BackTab ) )
-  {
-    QApplication::sendEvent( this, e );
-    return true;
-  }
-
-  return QSpinBox::eventFilter( o, e );
-}
-
-/*!
-  Updates text of editor
-*/
-void QtxDblSpinBox::updateDisplay()
-{
-  if ( myBlocked )
-    return;
-
-  bool upd = editor()->isUpdatesEnabled();
-  editor()->setUpdatesEnabled( false );
-
-  bool isBlock = myBlocked;
-  myBlocked = true;
-    
-  QString txt = currentValueText();
-    
-  if ( myValue >= myMax )
-    QSpinBox::setValue( QSpinBox::maxValue() );
-  else if ( myValue <= myMin )
-    QSpinBox::setValue( QSpinBox::minValue() );
-  else
-    QSpinBox::setValue( ( QSpinBox::minValue() + QSpinBox::maxValue() ) / 2 );
-  
-  QSpinBox::updateDisplay();
-
-  editor()->setUpdatesEnabled( upd );
-
-  editor()->setText( myCleared ? QString::null : txt );
-  if ( !myCleared && editor()->hasFocus() )
-  {
-    if ( editor()->text() == specialValueText() )
-      editor()->selectAll();
-    else
-      editor()->setSelection( prefix().length(), editor()->text().length() - prefix().length() - suffix().length() );
-  }
-  else
-    editor()->setCursorPosition( 0 );
-
-  myBlocked = isBlock;
-}
-
-/*!
-  Sets double value by text in editor
-*/
-void QtxDblSpinBox::interpretText()
-{
-  myCleared = false;
-
-  bool ok = true;
-  bool done = false;
-  double newVal = 0;
-  if ( !specialValueText().isEmpty() )
-  {
-         QString s = QString( text() ).stripWhiteSpace();
-         QString t = QString( specialValueText() ).stripWhiteSpace();
-         if ( s == t )
-    {
-      newVal = minValue();
-           done = true;
-    }
-  }
-  if ( !done )
-         newVal = mapTextToDoubleValue( &ok );
-  if ( ok )
-         setValue( newVal );
-  updateDisplay();
-}
-
-/*!
-  Emits signal "valueChanged"
-*/
-void QtxDblSpinBox::valueChange()
-{
-  updateDisplay();
-  emit valueChanged( myValue );
-  emit valueChanged( currentValueText() );
-}
-
-/*!
-  Attune parameters on range changing
-*/
-void QtxDblSpinBox::rangeChange()
-{
-  double min = QMIN( myMin, myMax );
-  double max = QMAX( myMin, myMax );
-  myMin = min;
-  myMax = max;
-  QDoubleValidator* v = ::qt_cast<QDoubleValidator*>( validator() );
-  if ( v )
-    v->setRange( myMin, myMax );
-
-       if ( myMin == myMax )
-               QSpinBox::setRange( 0, 0 );
-       else
-               QSpinBox::setRange( 0, 2 );
-
-  setValue( myValue );
-  updateDisplay();
-}
-
-/*!
-  \return text of editor
-*/
-QString QtxDblSpinBox::currentValueText()
-{
-  QString s;
-  if ( (myValue == minValue()) && !specialValueText().isEmpty() )
-         s = specialValueText();
-  else
-       {
-         s = prefix();
-               s.append( mapValueToText( myValue ) );
-               s.append( suffix() );
-       }
-  return s;
-}
-
-/*!
-  Converts number to string
-  \param v - number to be converted
-*/
-QString QtxDblSpinBox::mapValueToText( double v )
-{
-       QString s;
-  s.setNum( v, myPrecision >= 0 ? 'f' : 'g', myPrecision == 0 ? 6 : QABS( myPrecision ) );
-  return removeTrailingZeroes( s );
-}
-
-/*!
-  Converts value to string
-*/
-QString QtxDblSpinBox::mapValueToText( int )
-{
-  QString s;
-  s.setNum( myValue, myPrecision >= 0 ? 'f' : 'g', myPrecision == 0 ? 6 : QABS( myPrecision ) );
-  return removeTrailingZeroes( s );
-}
-
-/*!
-  Converts current text of editor to double
-*/
-double QtxDblSpinBox::mapTextToDoubleValue( bool* ok )
-{
-  QString s = text();
-  double newVal = s.toDouble( ok );
-  if ( !(*ok) && !( !prefix() && !suffix() ) )
-  {
-         s = cleanText();
-         newVal = s.toDouble( ok );
-  }
-  return newVal;
-}
-
-/*!
-  \return value corrected in accordance with borders
-  \param val - value to be corrected
-*/
-double QtxDblSpinBox::bound( double val )
-{
-  double newVal = val;
-  if ( newVal > myMax )
-    newVal = myMax;
-  if ( newVal < myMin )
-    newVal = myMin;
-  return newVal;
-}
-
-/*!
-  Custom handler for leave event
-*/
-void QtxDblSpinBox::leaveEvent( QEvent* e )
-{
-       if ( !myCleared )
-               QSpinBox::leaveEvent( e );
-}
-
-/*!
-  Custom handler for wheel event
-*/
-void QtxDblSpinBox::wheelEvent( QWheelEvent* e )
-{
-  if ( !isEnabled() )
-    return;
-
-  QSpinBox::wheelEvent( e );
-  updateDisplay();
-}
-
-/*!
-  SLOT: called if text is changed
-*/
-void QtxDblSpinBox::onTextChanged( const QString& str )
-{
-  if ( !myBlocked )
-    myCleared = false;
-}
-
-/*!
-  \return string without excess zeros in start and in end
-*/
-QString QtxDblSpinBox::removeTrailingZeroes( const QString& src ) const
-{
-  QString delim( "." );
-
-  int idx = src.findRev( delim );
-  if ( idx == -1 )
-    return src;
-
-  QString iPart = src.left( idx );
-  QString fPart = src.mid( idx + 1 );
-
-  while ( !fPart.isEmpty() && fPart.at( fPart.length() - 1 ) == '0' )
-    fPart.remove( fPart.length() - 1, 1 );
-
-  QString res = iPart;
-  if ( !fPart.isEmpty() )
-    res += delim + fPart;
-
-  return res;
-}
diff --git a/src/Qtx/QtxDblSpinBox.h b/src/Qtx/QtxDblSpinBox.h
deleted file mode 100755 (executable)
index b715fb3..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxDblSpinBox.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXDBLSPINBOX_H
-#define QTXDBLSPINBOX_H
-
-#include "Qtx.h"
-
-#include <qspinbox.h>
-
-/*!
-  \class  QtxDblSpinBox
-  Spin box for real numbers.
-*/
-class QTX_EXPORT QtxDblSpinBox : public QSpinBox
-{
-  Q_OBJECT
-
-  class Validator;
-
-public:
-       typedef enum QSpinBox::ButtonSymbols ButtonSymbols;
-
-public:
-  QtxDblSpinBox( QWidget* = 0, const char* = 0 );
-  QtxDblSpinBox( double, double, double = 1, QWidget* = 0, const char* = 0 );
-  virtual ~QtxDblSpinBox();
-
-  double                  minValue() const;
-  double                  maxValue() const;
-  void               setMinValue( int );
-  void               setMaxValue( int );
-  void               setMinValue( double );
-  void               setMaxValue( double );
-  void              setRange( int, int );
-  virtual void       setRange( double, double );
-
-  double                  lineStep() const;
-  void               setLineStep( int );
-  virtual void       setLineStep( double );
-
-  double             value() const;
-
-  int                precision() const;
-  virtual void       setPrecision( const int );
-  
-  bool               isCleared() const;
-  virtual void       setCleared( const bool );
-  
-  virtual bool       eventFilter( QObject*, QEvent* );
-    
-signals:
-  void               valueChanged( double );
-  void                    valueChanged( const QString& );
-    
-public slots:
-  virtual void      stepUp();
-  virtual void      stepDown();
-  virtual void       selectAll();
-  virtual void      setValue( int );
-  virtual void      setValue( double );
-  
-protected slots:
-  virtual void       onTextChanged( const QString& );
-
-protected:
-  virtual void      updateDisplay();
-  virtual void      interpretText();
-  
-  virtual void      valueChange();
-  virtual void      rangeChange();
-  
-  QString            currentValueText();
-  virtual QString    mapValueToText( int );
-  virtual QString    mapValueToText( double );
-  virtual double     mapTextToDoubleValue( bool* );
-  
-  virtual void       leaveEvent( QEvent* );
-  virtual void       wheelEvent( QWheelEvent* );
-  
-  double             bound( double );
-
-  QString            removeTrailingZeroes( const QString& ) const;
-
-private:
-  double             myMin;
-  double             myMax;
-  double             myStep;
-  double             myValue;
-  bool               myCleared;
-  bool               myBlocked;
-  int                myPrecision;
-};
-
-#endif
diff --git a/src/Qtx/QtxDblValidator.cxx b/src/Qtx/QtxDblValidator.cxx
deleted file mode 100644 (file)
index b7dd3e9..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxDblValidator.cxx
-// Author:    Alexandre SOLOVYOV
-
-#include "QtxDblValidator.h"
-
-/*!
-  Constructor
-  \param bot - minimal possible value
-  \param top - maximal possible value
-  \param dec - number of digits
-  \param o - parent object
-  \param name - name of validator
-*/
-QtxDblValidator::QtxDblValidator( const double bot, const double top, const int dec,
-                                 QObject* o, const char* name )
-: QDoubleValidator( bot, top, dec, o, name )
-{
-}
-
-/*!
-  Destructor
-*/
-QtxDblValidator::~QtxDblValidator()
-{
-}
-
-/*!
-  Corrects string: if it represent double value less then bottom, it becomes equal to bottom,
-  if it is more then top, it becomes equal to top, if it isn't number is becomes '0'
-*/
-void QtxDblValidator::fixup( QString& str ) const
-{
-  bool ok = false;
-  double d = str.toDouble( &ok );
-  if( ok )
-  {
-    if( d<bottom() )
-      str = QString::number( bottom() );
-    else if( d>top() )
-      str = QString::number( top() );
-  }
-  else
-    str = "0";
-}
diff --git a/src/Qtx/QtxDblValidator.h b/src/Qtx/QtxDblValidator.h
deleted file mode 100644 (file)
index a5b389f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxDblValidator.h
-// Author:    Alexandre SOLOVYOV
-
-#ifndef QTX_DOUBLE_VALIDATOR
-#define QTX_DOUBLE_VALIDATOR
-
-#include "Qtx.h"
-
-#include <qvalidator.h>
-
-class QTX_EXPORT QtxDblValidator : public QDoubleValidator
-{
-  Q_OBJECT
-
-public:
-  QtxDblValidator( const double, const double, const int,
-                  QObject*, const char* = 0 );
-  ~QtxDblValidator();
-
-  virtual void fixup( QString& ) const;
-};
-
-#endif
diff --git a/src/Qtx/QtxDialog.cxx b/src/Qtx/QtxDialog.cxx
deleted file mode 100755 (executable)
index c52cb85..0000000
+++ /dev/null
@@ -1,1454 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxDialog.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxDialog.h"
-
-#include "QtxGroupBox.h"
-
-#include <qlabel.h>
-#include <qframe.h>
-#include <qlayout.h>
-#include <qpushbutton.h>
-#include <qapplication.h>
-
-/*!
-       Class: QtxDialog::Area
-       Level: Internal
-*/
-class QtxDialog::Area : public QFrame
-{
-public:
-       Area( Orientation, QtxDialog*, QWidget* = 0 );
-       virtual ~Area();
-
-       bool                     isBorderEnabled() const;
-       void                     setBorderEnabled( const bool );
-
-       void                     setBorderWidget( QLabel* );
-
-       void                     insertButton( QButton* );
-       void                     removeButton( QButton* );
-       bool                     contains( QButton* ) const;
-
-       int                      policy() const;
-       void                     setPolicy( const int );
-
-       void                     layoutButtons();
-
-       const QPtrList<QButton>& buttons() const;
-
-private:
-       void                     updateBorder();
-
-private:
-       QtxDialog*               myDlg;
-       QLabel*                  myLine;
-       bool                     myBorder;
-       int                      myPolicy;
-       QPtrList<QButton>        myButtons;
-       Orientation              myOrientation;
-};
-
-/*!
-  Contructor
-*/
-QtxDialog::Area::Area( Orientation o, QtxDialog* dlg, QWidget* parent )
-: QFrame( parent ),
-myDlg( dlg ),
-myLine( 0 ),
-myBorder( false ),
-myPolicy( Position ),
-myOrientation( o )
-{
-       if ( myOrientation == Qt::Horizontal )
-               setSizePolicy( QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Maximum ) );
-       else
-               setSizePolicy( QSizePolicy( QSizePolicy::Maximum, QSizePolicy::Preferred ) );
-
-       hide();
-}
-
-/*!
-  Destructor
-*/
-QtxDialog::Area::~Area()
-{
-}
-
-/*!
-  Inserts button to area
-  \param b - button
-*/
-void QtxDialog::Area::insertButton( QButton* b )
-{
-       if ( !b || myButtons.findRef( b ) != -1 )
-               return;
-
-       QWidget* parent = b->parentWidget();
-       if ( parent != this )
-               b->reparent( this, 0, QPoint( 0, 0 ), b->isVisibleTo( parent ) );
-
-       myButtons.append( b );
-
-       if ( myDlg )
-               myDlg->adjustButtons();
-       layoutButtons();
-
-       show();
-
-       updateBorder();
-}
-
-/*!
-  Removes button from area
-  \param b - button
-*/
-void QtxDialog::Area::removeButton( QButton* b )
-{
-       if ( !b )
-               return;
-
-       myButtons.removeRef( b );
-
-       if ( myButtons.isEmpty() )
-               hide();
-
-       updateBorder();
-
-       if ( myDlg )
-               myDlg->adjustButtons();
-
-       layoutButtons();
-}
-
-/*!
-  \return true if area contains button
-  \param b - button
-*/
-bool QtxDialog::Area::contains( QButton* b ) const
-{
-       return myButtons.containsRef( b );
-}
-
-/*!
-  \return policy of button layouting.
-*/
-int QtxDialog::Area::policy() const
-{
-       return myPolicy;
-}
-
-/*!
-  Changes policy of button layouting.
-  \param p - new policy
-*/
-void QtxDialog::Area::setPolicy( const int p )
-{
-       if ( myPolicy == p )
-               return;
-
-       myPolicy = p;
-       layoutButtons();
-}
-
-/*!
-  \return true if border enabled
-*/
-bool QtxDialog::Area::isBorderEnabled() const
-{
-       return myLine && myBorder;
-}
-
-/*!
-  Enables/disable separator between main frame and button frame
-  \param on - new state
-*/
-void QtxDialog::Area::setBorderEnabled( const bool on )
-{
-       if ( !myLine || myBorder == on )
-               return;
-
-       myBorder = on;
-       updateBorder();
-}
-
-/*!
-  Sets label as separator between main frame and button frame
-  \param line - new separator
-*/
-void QtxDialog::Area::setBorderWidget( QLabel* line )
-{
-       if ( myLine == line )
-               return;
-
-       delete myLine;
-       myLine = line;
-       updateBorder();
-}
-
-/*!
-  \return const reference to list of buttons
-*/
-const QPtrList<QButton>& QtxDialog::Area::buttons() const
-{
-       return myButtons;
-}
-
-/*!
-  Updates visibility of border
-*/
-void QtxDialog::Area::updateBorder()
-{
-       if ( !myLine )
-               return;
-
-       bool isVis = isVisibleTo( parentWidget() );
-#if QT_VER >= 3    
-       if ( isVis )
-#else
-       if ( isVis && myBorder )
-#endif
-               myLine->show();
-       else
-               myLine->hide();
-
-       myLine->setLineWidth( myBorder ? 1 : 0 );
-}
-
-/*!
-  Installs buttons into layout
-*/
-void QtxDialog::Area::layoutButtons()
-{
-       int aPolicy = policy();
-
-       QMap<QButton*, int> buttonId;
-       for ( QPtrListIterator<QButton> it1( myButtons ); it1.current(); ++it1 )
-               buttonId.insert( it1.current(), 0 );
-
-       QPtrList<QButton> src;
-       for ( ButtonMap::Iterator mit = myDlg->myButton.begin();
-                 mit != myDlg->myButton.end(); ++mit )
-       {
-               if ( buttonId.contains( mit.data() ) )
-               {
-                       buttonId[mit.data()] = mit.key();
-                       if ( mit.key() >= 0 )
-                               src.append( mit.data() );
-               }
-       }
-
-       for ( QPtrListIterator<QButton> it2( myButtons ); it2.current(); ++it2 )
-               if ( buttonId[it2.current()] < 0 )
-                       src.append( it2.current() );
-
-       QPtrList<QButton> left, right, center, other;
-       for ( QPtrListIterator<QButton> it( src ); it.current(); ++it )
-       {
-               if ( !it.current()->isVisibleTo( this ) )
-                       continue;
-
-               int aPosition = myDlg->buttonPosition( it.current() );
-               if ( aPosition == -1 )
-                       continue;
-
-               if ( aPolicy != QtxDialog::Position )
-                       other.append( it.current() );
-               else if ( aPosition == QtxDialog::Left )
-                       left.append( it.current() );
-               else if ( aPosition == QtxDialog::Right )
-                       right.append( it.current() );
-               else if ( aPosition == QtxDialog::Center )
-                       center.append( it.current() );
-       }
-
-  delete layout();
-
-       QBoxLayout* buttonLayout = 0;
-       if ( myOrientation == Qt::Vertical )
-               buttonLayout = new QVBoxLayout( this, 0, 5 );
-       else
-               buttonLayout = new QHBoxLayout( this, 0, 5 );
-
-       if ( !buttonLayout )
-               return;
-
-       if ( aPolicy == QtxDialog::Position )
-       {
-               for ( QPtrListIterator<QButton> lit( left ); lit.current(); ++lit )
-                       buttonLayout->addWidget( lit.current() );
-               buttonLayout->addStretch( 1 );
-               for ( QPtrListIterator<QButton> cit( center ); cit.current(); ++cit )
-                       buttonLayout->addWidget( cit.current() );
-               buttonLayout->addStretch( 1 );
-               for ( QPtrListIterator<QButton> rit( right ); rit.current(); ++rit )
-                       buttonLayout->addWidget( rit.current() );
-       }
-       else
-       {
-               for ( QPtrListIterator<QButton> oit( other ); oit.current(); ++oit )
-               {
-                       buttonLayout->addWidget( oit.current() );
-                       if ( aPolicy == QtxDialog::Uniform && !oit.atLast() )
-                               buttonLayout->addStretch( 1 );
-               }
-       }
-
-  QWidgetList wids;
-  if ( layout() )
-  {
-    for ( QLayoutIterator it = layout()->iterator(); it.current(); ++it )
-    {
-      if ( !it.current()->widget() )
-        continue;
-
-      if ( QApplication::reverseLayout() )
-        wids.prepend( it.current()->widget() );
-      else
-        wids.append( it.current()->widget() );
-    }
-  }
-  Qtx::setTabOrder( wids );
-}
-
-
-/*!
-  \class QtxDialog::Border
-
-  Special label used as separator between main frame and button frame
-*/
-class QtxDialog::Border : public QLabel
-{
-public:
-       Border( QWidget* = 0 );
-       virtual ~Border();
-
-       virtual void setLineWidth( int );
-
-       virtual QSize sizeHint() const;
-       virtual QSize minimumSizeHint() const;
-};
-
-/*!
-  Constructor
-*/
-QtxDialog::Border::Border( QWidget* parent )
-: QLabel( parent )
-{
-    setAlignment( Qt::AlignCenter );
-}
-
-/*!
-  Destructor
-*/
-QtxDialog::Border::~Border()
-{
-}
-
-/*!
-  Set line width of separator
-  \param lw - new line width
-*/
-void QtxDialog::Border::setLineWidth( int lw )
-{
-  bool isOn = lineWidth() > 0;
-
-  QLabel::setLineWidth( lw );
-    
-  if ( isOn != ( lineWidth() > 0 ) )
-    updateGeometry();
-}
-
-/*!
-  \return the recommended size for the widget
-*/
-QSize QtxDialog::Border::sizeHint() const
-{
-  QSize sz( 5, 5 );
-
-#if QT_VER >= 3    
-  if ( lineWidth() > 0 )
-       {
-    if ( frameShape() == VLine )
-      sz += QSize( 5 + lineWidth(), 0 );
-               else if ( frameShape() == HLine )
-      sz += QSize( 0, 5 + lineWidth() );
-       }
-#endif
-
-  return sz;
-}
-
-/*!
-  \return the recommended minimum size for the widget
-*/
-QSize QtxDialog::Border::minimumSizeHint() const
-{
-       return sizeHint();
-}
-
-/*!
-  Constructor
-  Construct a dialog with specified parent and name.
-  \param modal define modal status of dialog (default non modal dialog created).
-  \param allowResize - if it is true then dialog can be resize by user (default non resizable dialog created).
-  \param Button flags specified control buttons for dialog (default buttons is OK, Cancel and Help).
-  \param Widget flags used as in any widget.
-*/
-QtxDialog::QtxDialog( QWidget* parent, const char* name,
-                                         bool modal, bool allowResize, const int f, WFlags wf )
-: QDialog( parent, name, modal,
-           wf | WStyle_Customize | WStyle_Title | WStyle_SysMenu |
-#ifdef WIN32
-           ( allowResize ? WStyle_NormalBorder : WStyle_NoBorderEx ) |
-#else
-           WStyle_NormalBorder |
-#endif
-           ( allowResize ? WStyle_Maximize : 0 ) ),
-mySender( 0 ),
-myAlignment( 0 ),
-myInited( false ),
-myDialogFlags( Accept | SetFocus )
-{
-       QVBoxLayout* base = new QVBoxLayout( this, 5, 0 );
-       QtxGroupBox* main = new QtxGroupBox( 1, Qt::Horizontal, "", this );
-       main->setFrameStyle( QFrame::NoFrame );
-       main->setInsideMargin( 0 );
-       main->setInsideSpacing( 0 );
-       base->addWidget( main );
-
-       Area* topArea = new Area( Qt::Horizontal, this, main );
-       QLabel* topLine = new Border( main );
-       QtxGroupBox* midGroup = new QtxGroupBox( 1, Qt::Vertical, "", main );
-       QLabel* botLine = new Border( main );
-       Area* botArea = new Area( Qt::Horizontal, this, main );
-
-       midGroup->setFrameStyle( QFrame::NoFrame );
-       midGroup->setInsideMargin( 0 );
-       midGroup->setInsideSpacing( 0 );
-
-       Area* leftArea = new Area( Qt::Vertical, this, midGroup );
-       QLabel* leftLine = new Border( midGroup );
-       myMainFrame = new QFrame( midGroup );
-       QLabel* rightLine = new Border( midGroup );
-       Area* rightArea = new Area( Qt::Vertical, this, midGroup );
-
-       myMainFrame->setSizePolicy( QSizePolicy( QSizePolicy::Expanding,
-                                                                                               QSizePolicy::Expanding ) );
-
-       topLine->setFrameStyle( QFrame::Sunken | QFrame::HLine );
-       botLine->setFrameStyle( QFrame::Sunken | QFrame::HLine );
-       leftLine->setFrameStyle( QFrame::Sunken | QFrame::VLine );
-       rightLine->setFrameStyle( QFrame::Sunken | QFrame::VLine );
-       topArea->setBorderWidget( topLine );
-       botArea->setBorderWidget( botLine );
-       leftArea->setBorderWidget( leftLine );
-       rightArea->setBorderWidget( rightLine );
-
-       myArea.insert( TopArea,    topArea );
-       myArea.insert( BottomArea, botArea );
-       myArea.insert( LeftArea,   leftArea );
-       myArea.insert( RightArea,  rightArea );
-
-       for ( AreaMap::Iterator itr = myArea.begin(); itr != myArea.end(); ++ itr )
-               itr.data()->setBorderEnabled( false );
-
-       myButton.insert( OK,     new QPushButton( tr( "&OK" ),     this ) );
-       myButton.insert( Cancel, new QPushButton( tr( "&Cancel" ), this ) );
-       myButton.insert( Close,  new QPushButton( tr( "C&lose" ),  this ) );
-       myButton.insert( Help,   new QPushButton( tr( "&Help" ),   this ) );
-       myButton.insert( Apply,  new QPushButton( tr( "&Apply" ),  this ) );
-       myButton.insert( Yes,    new QPushButton( tr( "&Yes" ),    this ) );
-       myButton.insert( No,     new QPushButton( tr( "&No" ),     this ) );
-
-       for ( ButtonMap::Iterator it = myButton.begin(); it != myButton.end(); ++it )
-       {
-               ((QPushButton*)it.data())->setAutoDefault( false );
-#if QT_VER >= 3
-               connect( it.data(), SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
-#endif
-       }
-
-       setButtonPosition( Left,   OK | Cancel | Apply );
-       setButtonPosition( Center, Yes | No | Close );
-       setButtonPosition( Right,  Help );
-       setButtonPlace( BottomArea, All );
-
-       connect( myButton[Apply],  SIGNAL( clicked() ), this, SIGNAL( dlgApply() ) );
-       connect( myButton[Help],   SIGNAL( clicked() ), this, SIGNAL( dlgHelp() ) );
-
-       connect( myButton[OK],     SIGNAL( clicked() ), this, SLOT( onAccept() ) );
-       connect( myButton[Cancel], SIGNAL( clicked() ), this, SLOT( onReject() ) );
-       connect( myButton[Yes],    SIGNAL( clicked() ), this, SLOT( onAccept() ) );
-       connect( myButton[No],     SIGNAL( clicked() ), this, SLOT( onReject() ) );
-       connect( myButton[Close],  SIGNAL( clicked() ), this, SLOT( onReject() ) );
-
-       QPixmap icon;
-       if ( qApp && qApp->mainWidget() && qApp->mainWidget()->icon() )
-               setIcon( *qApp->mainWidget()->icon() );
-
-       myButtonFlags = f;
-
-#ifndef WIN32
-       if ( !allowResize )
-               setMaximumSize( minimumSize() );
-#endif
-
-       update();
-}
-
-/*!
-       Name: ~QtxDialog [public]
-       Desc: Destructor
-*/
-
-QtxDialog::~QtxDialog()
-{
-}
-
-/*!
-       Name: setButtonFlags [public]
-       Desc: Allow to set specified control button(s) into dialog.
-*/
-
-void QtxDialog::setButtonFlags( const int f )
-{
-       int old = myButtonFlags;
-       myButtonFlags = myButtonFlags | f;
-       if ( old != myButtonFlags )
-               update();
-}
-
-/*!
-       Name: clearButtonFlags [public]
-       Desc: Allow to unset specified control button(s) from dialog.
-*/
-
-void QtxDialog::clearButtonFlags( const int f )
-{
-       int old = myButtonFlags;
-       myButtonFlags = myButtonFlags & ~f;
-       if ( old != myButtonFlags )
-               update();
-}
-
-/*!
-       Name: testButtonFlags [public]
-       Desc: Return true if specified control button is used in dialog.
-*/
-
-bool QtxDialog::testButtonFlags( const int f ) const
-{
-    return ( myButtonFlags & f ) == f;
-}
-
-/*!
-       Name: setDialogFlags [public]
-       Desc: Allow to set the dialog flags.
-
-                 Following flags can be used:
-                       Accept    - Allow to control dialog accepting. See also acceptData().
-                       Reject    - Allow to control dialog rejecting. See also rejectData().
-                       AlignOnce - Allow to align dialog only when it first time shown.
-                       SetFocus  - Allow to set focus on dialog when it shown. User can use
-                  setFocusProxy() and specify own initial focus widget.
-*/
-
-void QtxDialog::setDialogFlags( const int f )
-{
-       myDialogFlags = myDialogFlags | f;
-}
-
-/*!
-       Name: clearDialogFlags [public]
-       Desc: Allow to clear the dialog flags. See also setDialogFlags().
-*/
-
-void QtxDialog::clearDialogFlags( const int f )
-{
-       myDialogFlags = myDialogFlags & ~f;
-}
-
-/*!
-       Name: testDialogFlags [public]
-       Desc: Returns true if specified dialog flag is setted (see setDialogFlags()).
-*/
-
-bool QtxDialog::testDialogFlags( const int f ) const
-{
-    return ( myDialogFlags & f ) == f;
-}
-
-/*!
-       Name: mainFrame [public]
-       Desc: Returns main frame of dialog. Main frame should contains all
-          elements of dialog except control buttons.
-*/
-
-QFrame* QtxDialog::mainFrame() const
-{
-    return myMainFrame;
-}
-
-/*!
-       Name: buttonPosition [public]
-       Desc: Returns position of specified button.
-*/
-
-int QtxDialog::buttonPosition( const int id ) const
-{
-       int pos = -1;
-       if ( myPosition.contains( id ) )
-               pos = myPosition[id];
-       return pos;
-}
-
-/*!
-       Name: setButtonPosition [public]
-       Desc: Sets the position for specified button(s). Following positions
-                 may be used: Left, Right, Center, Top, Bottom.
-*/
-
-void QtxDialog::setButtonPosition( const int pos, const int id )
-{
-       ButtonMap map = buttons( id );
-
-       QMap<QObject*, int> changed;
-       for ( ButtonMap::Iterator it = map.begin(); it != map.end(); ++it )
-       {
-               if ( myPosition[it.key()] == pos )
-                       continue;
-      
-               myPosition[it.key()] = pos;
-               if ( button( it.key() ) )
-                       changed.insert( button( it.key() )->parent(), 0 );
-    }
-
-       for ( AreaMap::Iterator itr = myArea.begin(); itr != myArea.end(); ++itr )
-               if ( changed.contains( itr.data() ) )
-                       itr.data()->layoutButtons();
-}
-
-/*!
-       Name: setPlacePosition [public]
-       Desc: Sets button position for all buttons in given place.
-*/
-
-void QtxDialog::setPlacePosition( const int pos, const int area )
-{
-       if ( !myArea.contains( area ) )
-               return;
-
-       Area* anArea = myArea[area];
-
-       bool changed = false;
-       for ( ButtonMap::Iterator it = myButton.begin(); it != myButton.end(); ++it )
-       {
-               if ( !anArea->contains( it.data() ) )
-                       continue;
-
-               changed = changed &&  myPosition[it.key()] != pos;
-
-               myPosition[it.key()] = pos;
-    }
-
-       if ( changed )
-               anArea->layoutButtons();
-}
-
-/*!
-       Name: placePolicy [public]
-       Desc: Returns policy of button layouting for specified place.
-
-                 Following place may be used:
-                       TopArea    - Horizontal area in the top side of dialog.
-                       BottomArea - Horizontal area in the bottom side of dialog.
-                       LeftArea   - Vertical area in the left side of dialog.
-                       RightArea  - Vertical area in the right side of dialog.
-
-                 Following policy may be used:
-                   Position - Buttons placed according their position.
-                       Expand   - Buttons fills all available space.
-                       Uniform  - Buttons uniformly placed in area.
-*/
-
-int QtxDialog::placePolicy( const int area ) const
-{
-       int res = -1;
-       if ( myArea.contains( area ) )
-               res = myArea[area]->policy();
-       return res;
-}
-
-/*!
-       Name: setPlacePolicy [public]
-       Desc: Sets the policy of button layouting for specified place.
-                 See also placePolicy().
-*/
-
-void QtxDialog::setPlacePolicy( const int policy, const int area )
-{
-       if ( area < 0 )
-               for ( AreaMap::Iterator itr = myArea.begin(); itr != myArea.end(); ++itr )
-                       itr.data()->setPolicy( policy );
-       else if ( myArea.contains( area ) )
-               myArea[area]->setPolicy( policy );
-}
-
-/*!
-       Name: setButtonPlace [public]
-       Desc: Move given button(s) into specified place.
-*/
-
-void QtxDialog::setButtonPlace( const int area, const int ids )
-{
-       if ( !myArea.contains( area ) )
-               return;
-
-       Area* anArea = myArea[area];
-
-       ButtonMap map = buttons( ids );
-
-       QMap<Area*, int> areaMap;
-       for ( AreaMap::ConstIterator aIt = myArea.begin(); aIt != myArea.end(); ++aIt )
-               areaMap.insert( aIt.data(), 0 );
-
-       for ( ButtonMap::Iterator it = map.begin(); it != map.end(); ++it )
-       {
-               Area* old = (Area*)it.data()->parent();
-               if ( old == anArea )
-                       continue;
-
-               if ( areaMap.contains( old ) )
-                       old->removeButton( it.data() );
-               anArea->insertButton( it.data() );
-    }
-}
-
-/*!
-       Name: isBorderEnabled [public]
-       Desc: Returns true if border is shown for specified button area.
-*/
-
-bool QtxDialog::isBorderEnabled( const int area ) const
-{
-       bool res = false;
-       if ( myArea.contains( area ) )
-               res  = myArea[area]->isBorderEnabled();
-       return res;
-}
-
-/*!
-       Name: setBorderEnabled [public]
-       Desc: Show/hide border for specified button area. Border are
-             line which separate main frame and control buttons.
-*/
-
-void QtxDialog::setBorderEnabled( const bool on, const int area )
-{
-       if ( !myArea.contains( area ) )
-               return;
-
-       if ( myArea[area]->isBorderEnabled() == on )
-               return;
-
-       myArea[area]->setBorderEnabled( on );
-
-       if ( isVisible() )
-       {
-               QApplication::sendPostedEvents();
-               adjustSize();
-       }
-}
-
-/*!
-       Name: isButtonEnabled [public]
-       Desc: Returns true if all specified button(s) is enabled.
-*/
-
-bool QtxDialog::isButtonEnabled( const int f ) const
-{
-       ButtonMap map = buttons( f );
-       bool result = !map.isEmpty();
-       for ( ButtonMap::Iterator it = map.begin(); it != map.end(); ++it )
-               result = result && it.data()->isEnabled();
-       return result;
-}
-
-/*!
-       Name: setButtonEnabled [public]
-       Desc: Enable/disable specified button(s).
-*/
-
-void QtxDialog::setButtonEnabled( const bool on, const int ids )
-{
-       ButtonMap map = buttons( ids );
-       for ( ButtonMap::Iterator it = map.begin(); it != map.end(); ++it )
-               it.data()->setEnabled( on );
-}
-
-/*!
-       Name: hasButtonFocus [public]
-       Desc: Retruns true if specified button has keyboard focus.
-*/
-
-bool QtxDialog::hasButtonFocus( const int id ) const
-{
-       bool res = false;
-       QButton* pb = button( id );
-       if ( pb )
-        res = pb->hasFocus();
-       return res;
-}
-
-/*!
-       Name: setButtonFocus [public]
-       Desc: Sets the keyboard focus on specified button.
-*/
-
-void QtxDialog::setButtonFocus( const int id )
-{
-       QButton* pb = button( id );
-       if ( pb )
-           pb->setFocus();
-}
-
-/*!
-       Name: buttonText [public]
-       Desc: Return text of specified button.
-*/
-
-QString QtxDialog::buttonText( const int id )
-{
-       QString retval;
-       QButton* but = button( id );
-       if ( but )
-               retval = but->text();
-       return retval;
-}
-
-/*!
-       Name: setButtonText [public]
-       Desc: Sets text to specified button.
-*/
-
-void QtxDialog::setButtonText( const int id, const QString& text )
-{
-       QButton* but = button( id );
-       if ( but && but->text() != text )
-       {
-               but->setText( text );
-               adjustButtons();
-       }
-}
-
-/*!
-       Name: setAlignment [public]
-       Desc: Sets alignment policy. Returns the previous alignment.
-                 Use the function before the first show of the dialog.
-                 If dialog flag AlignOnce is setted then align will performed
-                 only one time otherwise dialog will be aligned every time
-                 when it shown. Dialog will be aligned relative to it parent.
-
-                 Following align flags may be used:
-                       Qtx::AlignAuto      - Align to center of desktop (default).
-                       Qtx::AlignLeft      - Align left side of dialog to left side of parent.
-                       Qtx::AlignRight     - Align right side of dialog to right side of parent.
-                       Qtx::AlignTop       - Align top side of dialog to top side of parent.
-                       Qtx::AlignBottom    - Align bottom side of dialog to bottom side of parent.
-                       Qtx::AlignHCenter   - Align dialog to center of parent in horizontal dimension.
-                       Qtx::AlignVCenter   - Align dialog to center of parent in vertical dimension.
-                       Qtx::AlignCenter    - Align dialog to center of parent in both dimensions.
-                       Qtx::AlignOutLeft   - Align right side of dialog to left side of parent.
-                       Qtx::AlignOutRight  - Align left side of dialog to right side of parent.
-                       Qtx::AlignOutTop    - Align bottom side of dialog to top side of parent.
-                       Qtx::AlignOutBottom - Align top side of dialog to bottom side of parent.
-*/
-
-uint QtxDialog::setAlignment( uint align )
-{
-  uint oldAlign = myAlignment;
-  myAlignment = align;
-  return oldAlign;
-}
-
-/*!
-       Name: update [virtual public slot]
-       Desc: Updates dialog, show selected buttons and hide unselected.
-*/
-
-void QtxDialog::update()
-{
-       for ( ButtonMap::Iterator it = myButton.begin(); it != myButton.end(); ++it )
-               if ( it.key() >= 0 )
-                       testButtonFlags( it.key() ) ? it.data()->show() : it.data()->hide();
-
-       for ( AreaMap::Iterator itr = myArea.begin(); itr != myArea.end(); ++itr )
-               itr.data()->layoutButtons();
-
-       adjustButtons();
-
-       QDialog::update();
-}
-
-/*!
-       Name: show [virtual public]
-       Desc: Show dialog, set keyboard focus on dialog.
-*/
-
-void QtxDialog::show()
-{
-       QDialog::show();
-
-       if ( testDialogFlags( SetFocus ) )
-         setFocus();
-
-       myInited = true;
-}
-
-/*!
-       Name: hide [virtual public]
-       Desc: Hides dialog, processed all posted events.
-*/
-
-void QtxDialog::hide()
-{
-       QDialog::hide();
-       qApp->processEvents();
-}
-
-/*!
-       Name: userButton [public]
-       Desc: Return user dialog button using specified identificator.
-*/
-
-QButton* QtxDialog::userButton( const int id ) const
-{
-       QButton* b = 0;
-       if ( id < -1 && myButton.contains( id ) )
-               b = myButton[id];
-    return b;
-}
-
-/*!
-       Name: userButtonIds [public]
-       Desc: Return list of user dialog button identificators.
-*/
-
-QValueList<int> QtxDialog::userButtonIds() const
-{
-       QValueList<int> retlist;
-       for ( ButtonMap::ConstIterator it = myButton.begin(); it != myButton.end(); ++it )
-               if ( it.key() < 0 )
-                       retlist.append( it.key() );
-       return retlist;
-}
-
-/*!
-       Name: insertButton [public]
-       Desc: Add new user dialog button. Function return identificator of
-                 newly added button in successfull case otherwise -1 will be returned.
-*/
-
-int QtxDialog::insertButton( const QString& text, const int area )
-{
-       if ( !myArea.contains( area ) )
-               return -1;
-
-       int id = -2;
-       while ( myButton.contains( id ) )
-               id--;
-
-       Area* anArea = myArea[area];
-       QButton* b = createButton( this );
-       if ( b )
-       {
-               b->setText( text );
-               myButton.insert( id, b );
-               myPosition.insert( id, Left );
-
-               connect( b, SIGNAL( clicked() ), this, SLOT( onButton() ) );
-#if QT_VER >= 3
-               connect( b, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
-#endif
-
-               anArea->insertButton( b );
-               update();
-       }
-       else
-               id = -1;
-
-       return id;
-}
-
-/*!
-       Name: removeButton [public]
-       Desc: Remove user dialog button with specified identificator. If
-                 identificator equal -1 then method will remove all user dialog buttons.
-*/
-
-void QtxDialog::removeButton( const int id )
-{
-       if ( id >= 0 )
-               return;
-
-       ButtonMap map;
-       if ( id == -1 )
-       {
-               for ( ButtonMap::Iterator it = myButton.begin(); it != myButton.end(); ++it )
-               {
-                       if ( it.key() < 0 )
-                               map.insert( it.key(), it.data() );
-               }
-       }
-       else if ( myButton.contains( id ) )
-               map.insert( id, myButton[id] );
-
-       for ( ButtonMap::Iterator itr = map.begin(); itr != map.end(); ++itr )
-       {
-               for ( AreaMap::Iterator it = myArea.begin(); it != myArea.end(); ++it )
-                       it.data()->removeButton( itr.data() );
-
-               myButton.remove( itr.key() );
-               myPosition.remove( itr.key() );
-
-               delete itr.data();
-       }
-    update();
-}
-
-/*!
-       Name: setUnits [static public]
-       Desc: Sets specified measure units in given label. Measure units close
-                 in braces. If measure units not exist then they will be added.
-                 For example:
-                       1. Label contains text 'Radius'.
-                          setUnits( aLabel, "mm" )    => aLabel contains 'Radius (mm)'
-               setUnits( aLabel, "cm" )    => aLabel contains 'Radius (cm)'
-            2. Label "aLabel" contains text 'Radius ():'.
-               setUnits( aLabel, "mm" )    => aLabel contains 'Radius (mm):'
-               setUnits( aLabel, "cm" )    => aLabel contains 'Radius (cm):'
-*/
-
-void QtxDialog::setUnits( QLabel* aLabel, const QString& aUnits )
-{
-       QString label = aLabel->text();
-       int begin;
-       int end = label.findRev( ')' );
-
-       QString startLabel = label;
-       QString finalLabel;
-
-       if ( end != -1 )
-       {
-               begin = label.left( end ).findRev( '(' );
-               if ( begin != -1 )
-               {
-                       startLabel = label.mid( 0, begin );
-                       finalLabel = label.mid( end + 1 );
-               }
-       }
-       else
-       {
-               startLabel = startLabel.stripWhiteSpace();
-               if ( startLabel.at( startLabel.length() - 1 ) == ':' )
-               {
-                       finalLabel = startLabel.mid( startLabel.length() - 1 );
-                       startLabel = startLabel.mid( 0, startLabel.length() - 1 );
-               }
-       }
-       if ( aUnits.length() )
-               label = startLabel.stripWhiteSpace() +
-               " (" + aUnits + ") " + finalLabel.stripWhiteSpace();
-       else
-               label = startLabel.stripWhiteSpace() +
-               " " + finalLabel.stripWhiteSpace();
-       aLabel->setText( label );
-}
-
-/*!
-       Name: acceptData [virtual protected]
-       Desc: If returns true dialog will be accepted and closed. This method
-             called if dialog flag Accept is setted.
-*/
-
-bool QtxDialog::acceptData() const
-{
-  return true;
-}
-
-/*!
-       Name: rejectData [virtual protected]
-       Desc: If returns true dialog will be rejected and closed. This method
-             called if dialog flag Reject is setted.
-*/
-
-bool QtxDialog::rejectData() const
-{
-       return true;
-}
-
-/*!
-       Name: createButton [virtual protected]
-       Desc: Create new user button. Invoked from method "insertButton".
-*/
-
-QButton* QtxDialog::createButton( QWidget* parent )
-{
-       QPushButton* pb = new QPushButton( parent );
-       pb->setAutoDefault( false );
-       return pb;
-}
-
-/*!
-       Name: button [protected]
-       Desc: Return pointer on control button specified by identifier.
-                 If identifier is wrong then null pointer will returned.
-*/
-
-QButton* QtxDialog::button( const int f ) const
-{
-       QButton* retval = 0;
-       if ( myButton.contains( f ) )
-               retval = myButton[f];
-       return retval;
-}
-
-/*!
-       Name: buttons [protected]
-       Desc: Return map with control dialog buttons accordance to given button flags.
-*/
-
-QtxDialog::ButtonMap QtxDialog::buttons( const int f ) const
-{
-       ButtonMap retmap;
-       if ( f < -1 )
-       {
-               if ( myButton.contains( f ) )
-                       retmap.insert( f, myButton[f] );
-       }
-       else
-       {
-               for ( ButtonMap::ConstIterator it = myButton.begin(); it != myButton.end(); ++it )
-                       if ( f == -1 || ( it.key() >= 0 && f & it.key() ) )
-                               retmap.insert( it.key(), it.data() );
-       }
-
-       return retmap;
-}
-
-/*!
-       Name: buttonId [protected]
-       Desc: Return identifier of specified button.
-*/
-
-int QtxDialog::buttonId( const QButton* b ) const
-{
-       int id = -1;
-       for ( ButtonMap::ConstIterator it = myButton.begin(); it != myButton.end() && id == -1; ++it )
-               if ( it.data() == b )
-                       id = it.key();
-       return id;
-}
-
-/*!
-       Name: buttonPosition
-       Desc: Returns position of specified button. [protected]
-*/
-
-int QtxDialog::buttonPosition( QButton* b ) const
-{
-       return buttonPosition( buttonId( b ) );
-}
-
-/*!
-       Name: showEvent [virtual protected]
-       Desc: Aligns this dialog according the parent widget and alignment
-             policy before the show.
-*/
-
-void QtxDialog::showEvent( QShowEvent* e )
-{
-       if ( !testDialogFlags( AlignOnce ) || !myInited )
-               Qtx::alignWidget( this, parentWidget(), myAlignment );
-       QDialog::showEvent( e );
-}
-
-/*!
-       Name: hideEvent [virtual protected]
-       Desc: Process all existing events when dialog is closed.
-*/
-
-void QtxDialog::hideEvent( QHideEvent* e )
-{
-       qApp->processEvents();
-       QDialog::hideEvent( e );
-}
-
-/*!
-       Name: childEvent [virtual protected]
-       Desc: Setting up layout when size grip is added.
-*/
-
-void QtxDialog::childEvent( QChildEvent* e )
-{
-       QDialog::childEvent( e );
-       if ( layout() && e->inserted() && e->child()->inherits( "QSizeGrip" ) )
-       {
-               layout()->setMargin( 12 );
-#if QT_VER >= 3
-               connect( e->child(), SIGNAL( destroyed() ), this, SLOT( onSizeGripDestroyed() ) );
-#endif
-       }
-}
-
-/*!
-       Name: keyPressEvent [virtual protected]
-       Desc: Calls reject() if key Escape is pressed.
-             Calls accept() if key "Ctrl+Enter" is pressed.
-                 Process key "F1" and emit signal dlgHelp().
-                 Transfer key "Ctrl+(Shift+)Tab" press event to Tab Widget.
-*/
-
-void QtxDialog::keyPressEvent( QKeyEvent* e )
-{
-       QDialog::keyPressEvent( e );
-       if ( e->isAccepted() )
-           return;
-
-       if ( ( e->state() == 0 ) && ( e->key() == Key_Escape ) )
-               reject();
-
-       if ( ( e->state() == ControlButton ) && ( e->key() == Key_Return ) )
-       {
-               if ( testButtonFlags( OK ) || testButtonFlags( Yes ) )
-                       accept();
-               else if ( testButtonFlags( Apply ) && isButtonEnabled( Apply ) )
-                       emit dlgApply();
-               e->accept();
-       }
-
-       if ( e->key() == Key_F1 && testButtonFlags( Help ) && isButtonEnabled( Help ) )
-       {
-               e->accept();
-               emit dlgHelp();
-       }
-
-       if ( ( e->key() == Key_Tab ) && ( e->state() & ControlButton ) )
-       {
-               QObject* tab = child( 0, "QTabWidget" );
-               if ( tab )
-                       tab->event( e );
-       }
-}
-
-/*!
-       Name: closeEvent [virtual protected]
-       Desc: Reject the dialog.
-*/
-
-void QtxDialog::closeEvent( QCloseEvent* )
-{
-       reject();
-}
-
-/*!
-       Name: accept [virtual protected slot]
-       Desc: Invoke function acceptData() if it needed and if acceptData() return
-                 false does nothing. Otherwise hides the dialog and sets the result code
-                 to Accepted. Emit signal according to the pressed control button.
-*/
-
-void QtxDialog::accept()
-{
-       if ( !mySender )
-       {
-               if ( testButtonFlags( OK ) )
-                       mySender = button( OK );
-               else if ( testButtonFlags( Yes ) )
-                       mySender = button( Yes );
-               else
-                       mySender = button( Close );
-       }
-
-  if ( !mySender || !mySender->isWidgetType() ||
-       !((QWidget*)mySender)->isEnabled() )
-               return;
-
-       if ( testDialogFlags( Accept ) && !acceptData() )
-               return;
-
-       QDialog::accept();
-
-       emitSignal();
-}
-
-/*!
-       Name: reject [virtual protected slot]
-       Desc: Invoke function rejectData() if it needed and if rejectData() return
-                 false does nothing. Otherwise hides the dialog and sets the result code
-                 to Rejected. Emit signal according to the pressed control button. (If
-                 dialog was closed by key Escape or by close event emit signal dlgCancel(),
-                 or dlgClose(), or dlgNo().
-*/
-
-void QtxDialog::reject()
-{
-       if ( testDialogFlags( Reject ) && !rejectData() )
-               return;
-
-       if ( !mySender )
-       {
-               if ( testButtonFlags( Cancel ) )
-                       mySender = button( Cancel );
-               else if ( testButtonFlags( No ) )
-                       mySender = button( No );
-               else
-                       mySender = button( Close );
-       }
-
-    if ( !mySender || !mySender->isWidgetType() ||
-         !((QWidget*)mySender)->isEnabled() )
-        return;
-
-       QDialog::reject();
-
-       emitSignal();
-}
-
-/*!
-       Name: reject [private]
-       Desc: Emit signal appropriate to control button.
-*/
-
-void QtxDialog::emitSignal()
-{
-       qApp->processEvents();
-       QApplication::syncX();
-
-       int id = buttonId( (QButton*)mySender );
-       mySender = 0;
-
-       switch ( id )
-       {
-       case OK:
-               emit dlgOk();
-               break;
-       case Cancel:
-               emit dlgCancel();
-               break;
-       case Close:
-               emit dlgClose();
-               break;
-       case Yes:
-               emit dlgYes();
-               break;
-       case No:
-               emit dlgNo();
-               break;
-       }
-}
-
-/*!
-       Name: onAccept [private slot]
-       Desc: Process signals "clicked()" from control buttons "OK", "Yes". Invoke accept().
-*/
-
-void QtxDialog::onAccept()
-{
-    const QObject* obj = sender();
-    mySender = obj;
-    accept();
-}
-
-/*!
-       Name: onReject [private slot]
-       Desc: Process signals "clicked()" from control buttons "Cancel", "No", "Close".
-                 Invoke reject().
-*/
-
-void QtxDialog::onReject()
-{
-  const QObject* obj = sender();
-  mySender = obj;
-  reject();
-}
-
-/*!
-       Name: onButton [private slot]
-       Desc: Receive signal "clicked()" from user buttons and emit signal
-                 "dlgButton( int )" with identificator of clicked user button.
-*/
-
-void QtxDialog::onButton()
-{
-       int id = buttonId( (QButton*)sender() );
-       if ( id != -1 )
-               emit dlgButton( id );
-}
-
-/*!
-       Name: onDestroyed [private slot]
-       Desc: Remove user button if it was destroyed.
-*/
-
-void QtxDialog::onDestroyed( QObject* obj )
-{
-       QButton* b = (QButton*)obj;
-       int id = buttonId( b );
-       if ( id == -1 )
-               return;
-
-       myButton.remove( id );
-       myPosition.remove( id );
-       for ( AreaMap::Iterator it = myArea.begin(); it != myArea.end(); ++it )
-               it.data()->removeButton( b );
-}
-
-/*!
-       Name: onSizeGripDestroyed [private slot]
-       Desc: Setting up layout when size grip is destroyed.
-*/
-
-void QtxDialog::onSizeGripDestroyed()
-{
-       if ( layout() )
-               layout()->setMargin( 5 );
-}
-
-/*!
-       Name: adjustButtons [private]
-       Desc: Setting the equal with for all buttons.
-*/
-
-void QtxDialog::adjustButtons()
-{
-       int minWidth = 0;
-       for ( AreaMap::Iterator aIt = myArea.begin(); aIt != myArea.end(); ++aIt )
-               for ( QPtrListIterator<QButton> bIt( aIt.data()->buttons() ); bIt.current(); ++bIt )
-                       if ( bIt.current()->isVisibleTo( this ) )
-                               minWidth = QMAX( minWidth, bIt.current()->sizeHint().width() );
-
-       for ( AreaMap::Iterator aItr = myArea.begin(); aItr != myArea.end(); ++aItr )
-               for ( QPtrListIterator<QButton> bItr( aItr.data()->buttons() ); bItr.current(); ++bItr )
-                       if ( bItr.current()->isVisibleTo( this ) )
-                               bItr.current()->setMinimumWidth( minWidth );
-}
diff --git a/src/Qtx/QtxDialog.h b/src/Qtx/QtxDialog.h
deleted file mode 100755 (executable)
index dbf4fbd..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxDialog.hxx
-// Author:    Sergey TELKOV
-
-#ifndef QTXDIALOG_H
-#define QTXDIALOG_H
-
-#include "Qtx.h"
-
-#include <qmap.h>
-#include <qdialog.h>
-#include <qvaluelist.h>
-
-class QFrame;
-class QLabel;
-class QButton;
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QTX_EXPORT QtxDialog : public QDialog
-{
-         Q_OBJECT
-
-         class Area;
-         class Border;
-
-public:
-    typedef enum { Position, Expand, Uniform } PlacePolicy;
-    typedef enum { TopArea, BottomArea, LeftArea, RightArea } ButtonArea;
-    typedef enum { Left, Right, Center, Top = Left, Bottom = Right } ButtonPosition;
-
-    typedef enum { None      = 0x00000000,
-                   OK        = 0x00000001,
-                   Apply     = 0x00000002,
-                   Cancel    = 0x00000004,
-                   Yes       = 0x00000008,
-                   No        = 0x00000010,
-                   Close     = 0x00000020,
-                   Help      = 0x00000040,
-                   OKCancel  = OK  | Cancel,
-                   YesNo     = Yes | No,
-                   Standard  = OK  | Cancel | Help,
-                   All       = Standard | YesNo | Apply | Close } ButtonFlags;
-
-    typedef enum { Accept    = 0x000001,
-                                          Reject    = 0x000002,
-                                          AlignOnce = 0x000004,
-                   SetFocus  = 0x000008 } DialogFlags;
-
-public:
-    QtxDialog( QWidget* = 0, const char* = 0, bool = false,
-               bool = false, const int = Standard, WFlags = 0 );
-    virtual ~QtxDialog();
-
-    void             setDialogFlags( const int );
-    void             clearDialogFlags( const int );
-    bool             testDialogFlags( const int ) const;
-
-    void             setButtonFlags( const int );
-    void             clearButtonFlags( const int );
-    bool             testButtonFlags( const int ) const;
-
-    int              buttonPosition( const int ) const;
-    void             setButtonPosition( const int, const int = -1 );
-    void             setPlacePosition( const int, const int );
-
-    int              placePolicy( const int ) const;
-    void             setPlacePolicy( const int, const int );
-    void             setButtonPlace( const int, const int );
-
-    QString          buttonText( const int );
-    void             setButtonText( const int, const QString& text );
-
-    void             setButtonFocus( const int );
-    bool             hasButtonFocus( const int ) const;
-
-    bool             isButtonEnabled( const int ) const;
-    void             setButtonEnabled( const bool, const int );
-
-    bool             isBorderEnabled( const int ) const;
-    void             setBorderEnabled( const bool, const int );
-
-    void             removeButton( const int );
-    int              insertButton( const QString&, const int = BottomArea );
-
-    QValueList<int>  userButtonIds() const;
-    QButton*         userButton( const int ) const;
-
-    virtual void     show();
-    virtual void     hide();
-
-    uint             setAlignment( uint align );
-    static  void     setUnits( QLabel*, const QString& );
-
-signals:
-    void             dlgButton( int );
-    void             dlgParamChanged();
-
-    void             dlgHelp();
-    void             dlgApply();
-
-    void             dlgOk();
-    void             dlgNo();
-    void             dlgYes();
-    void             dlgClose();
-    void             dlgCancel();
-
-public slots:
-    void             update();
-
-protected slots:
-    virtual void     accept();
-    virtual void     reject();
-
-private slots:
-    void             onAccept();
-    void             onReject();
-    void             onButton();
-    void             onSizeGripDestroyed();
-    void             onDestroyed( QObject* );
-
-protected:
-    typedef QMap<int, QButton*> ButtonMap;
-
-protected:
-    QFrame*          mainFrame() const;
-
-    virtual bool     acceptData() const;
-    virtual bool     rejectData() const;
-
-    virtual QButton* createButton( QWidget* );
-
-    QButton*         button( const int ) const;
-    ButtonMap        buttons( const int = All ) const;
-    int              buttonId( const QButton* ) const;
-    int              buttonPosition( QButton* ) const;
-
-    virtual void     showEvent( QShowEvent* );
-    virtual void     hideEvent( QHideEvent* );
-    virtual void     closeEvent( QCloseEvent* );
-    virtual void     childEvent( QChildEvent* );
-    virtual void     keyPressEvent( QKeyEvent* );
-
-private:
-         void             adjustButtons();
-    void             emitSignal();
-
-private:
-    typedef QMap<int, Area*> AreaMap;
-    typedef QMap<int, int>   PositionMap;
-
-    friend class Area;
-
-private:
-    AreaMap          myArea;
-    ButtonMap        myButton;
-    PositionMap      myPosition;
-
-    bool             myInited;
-    const QObject*   mySender;
-    uint             myAlignment;
-    QFrame*          myMainFrame;
-    int              myButtonFlags;
-    int              myDialogFlags;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
diff --git a/src/Qtx/QtxDirListEditor.cxx b/src/Qtx/QtxDirListEditor.cxx
deleted file mode 100644 (file)
index cd4bb9f..0000000
+++ /dev/null
@@ -1,571 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-#include "QtxDirListEditor.h"
-
-#include <qlabel.h>
-#include <qlayout.h>
-#include <qpushbutton.h>
-#include <qmessagebox.h>
-#include <qfiledialog.h>
-#include <qapplication.h>
-
-#define MARGIN_SIZE    11
-#define SPACING_SIZE    6
-#define SPACER_SIZE     5
-
-static const char* delete_icon[] = {
-"16 16 3 1",
-"` c #810000",
-"  c none",
-"# c #ffffff",
-"                ",
-"                ",
-" ``#        ``# ",
-" ````#     ``#  ",
-"  ````#   ``#   ",
-"    ```# `#     ",
-"     `````#     ",
-"      ```#      ",
-"     `````#     ",
-"    ```# ``#    ",
-"   ```#   ``#   ",
-"  ```#     `#   ",
-"  ```#      `#  ",
-"   `#        `# ",
-"                ",
-"                "
-};
-
-static const char* insert_icon[] = {
-"16 16 5 1",
-"` c #000000",
-". c #ffff00",
-"# c #9d9da1",
-"  c none",
-"b c #ffffff",
-"                ",
-"                ",
-" #  #b #.       ",
-"  # #.#.` ` `   ",
-"  .#.b####   `  ",
-" ### ..         ",
-"  . # .#     `  ",
-" #` #.          ",
-"    #        `  ",
-"  `             ",
-"             `  ",
-"  `             ",
-"             `  ",
-"  ` ` ` ` ` `   ",
-"                ",
-"                "
-};
-
-static const char* movedown_icon[] = {
-"16 16 2 1",
-"` c #000000",
-"  c none",
-"                ",
-"                ",
-"         ```    ",
-"        ```     ",
-"       ```      ",
-"       ```      ",
-"       ```      ",
-"       ```      ",
-"   ```````````  ",
-"    `````````   ",
-"     ```````    ",
-"      `````     ",
-"       ```      ",
-"        `       ",
-"                ",
-"                "
-};
-
-static const char* moveup_icon[] = {
-"16 16 2 1",
-"` c #000000",
-"  c none",
-"                ",
-"                ",
-"        `       ",
-"       ```      ",
-"      `````     ",
-"     ```````    ",
-"    `````````   ",
-"   ```````````  ",
-"       ```      ",
-"       ```      ",
-"       ```      ",
-"       ```      ",
-"      ```       ",
-"     ```        ",
-"                ",
-"                "
-};
-
-/*!
-  Constructor
-*/
-QtxDirListEditor::QtxDirListEditor( QWidget* parent )
-: QWidget( parent )
-{
-  myEdited       = false;
-  myLastSelected = 0;
-  myEdit         = 0; 
-  myBtn          = 0;
-
-  QGridLayout* topLayout = new QGridLayout(this);
-  topLayout->setMargin(0);
-  topLayout->setSpacing(0);
-  
-  setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
-  
-  myDirList = new QListBox(this);
-  myDirList->setSelectionMode(QListBox::Single);
-  myDirList->setHScrollBarMode(QListBox::AlwaysOff);
-  myDirList->horizontalScrollBar()->installEventFilter(this);
-  myDirList->verticalScrollBar()->installEventFilter(this);
-  myDirList->insertItem(tr("<empty>"));
-  myDirList->installEventFilter(this);
-
-  QHBoxLayout* ctrlLayout = new QHBoxLayout;
-  ctrlLayout->setMargin(0);
-  ctrlLayout->setSpacing(0);
-
-  // QLabel* lab = new QLabel(myDirList, tr("DIRECTORIES_LBL"), this);
-
-  QToolButton* insertBtn = new QToolButton(this);
-  insertBtn->setIconSet(QPixmap( insert_icon ));
-  insertBtn->setAutoRaise(true);
-
-  QToolButton* deleteBtn = new QToolButton(this);
-  deleteBtn->setIconSet(QPixmap( delete_icon ));
-  deleteBtn->setAutoRaise(true);
-
-  QToolButton* upBtn = new QToolButton(this);
-  upBtn->setIconSet(QPixmap( moveup_icon ));
-  upBtn->setAutoRaise(true);
-
-  QToolButton* downBtn = new QToolButton(this);
-  downBtn->setIconSet(QPixmap( movedown_icon ));
-  downBtn->setAutoRaise(true);
-  
-  // ctrlLayout->addWidget(lab);
-  ctrlLayout->addItem(new QSpacerItem(SPACER_SIZE, SPACER_SIZE, QSizePolicy::Expanding, QSizePolicy::Minimum));
-  ctrlLayout->addWidget(insertBtn);
-  ctrlLayout->addWidget(deleteBtn);
-  ctrlLayout->addWidget(upBtn);
-  ctrlLayout->addWidget(downBtn);
-
-  QHBoxLayout* btnLayout = new QHBoxLayout;
-  btnLayout->setMargin(0);
-  btnLayout->setSpacing(6);
-  
-  topLayout->addLayout(ctrlLayout, 0, 0);
-  topLayout->addWidget(myDirList,  1, 0);
-  topLayout->addLayout(btnLayout,  2, 0);
-
-  connect(myDirList, SIGNAL(mouseButtonClicked(int, QListBoxItem*, const QPoint&)), 
-          this, SLOT(onMouseButtonClicked(int, QListBoxItem*, const QPoint&)));
-  connect(myDirList, SIGNAL(doubleClicked(QListBoxItem*)), 
-          this, SLOT(onDblClicked(QListBoxItem*)));
-  
-  connect(insertBtn, SIGNAL(clicked()), this, SLOT(onInsert()));
-  connect(deleteBtn, SIGNAL(clicked()), this, SLOT(onDelete()));
-  connect(upBtn,     SIGNAL(clicked()), this, SLOT(onUp()));
-  connect(downBtn,   SIGNAL(clicked()), this, SLOT(onDown()));
-}
-
-/*!
-  Destructor
-*/
-QtxDirListEditor::~QtxDirListEditor()
-{
-}
-
-/*!
-  Gets list of paths
-*/
-void QtxDirListEditor::getPathList(QStringList& list)
-{
-  // Finish the path editing
-  if (myEdit) {
-    validate(true);
-    
-    myEdit->deleteLater();
-    myBtn->deleteLater();
-    myEdit = 0;
-    myBtn  = 0;
-    myEdited = false;
-    myDirList->setFocus();
-  }
-
-  list.clear();
-  for (unsigned i = 0; i < myDirList->count()-1; i++)
-    list.append(myDirList->text(i));
-}
-
-/*!
-  Sets list of paths
-*/
-void QtxDirListEditor::setPathList(const QStringList& list) {
-  myDirList->clear();
-  myDirList->insertItem(tr("<empty>"));
-  for (unsigned i = 0; i < list.count(); i++)
-    myDirList->insertItem(list[i], myDirList->count()-1);
-}
-
-/*!
-  Validates entered path, returns true if OK
-*/
-bool QtxDirListEditor::validate( const bool quietMode )
-{
-  if ( myEdited )
-  {
-    QString dirPath = QFileInfo( myEdit->text().stripWhiteSpace() ).filePath();
-/*
-#ifndef WNT
-    if ( dirPath.startsWith( "~") ) {
-      dirPath = dirPath.remove(0,1);
-      QString user;
-      int slashPos = dirPath.find("/");
-      if ( slashPos >= 0 ) {
-       user = dirPath.left(slashPos);
-       dirPath = dirPath.mid(slashPos);
-      }
-      else {
-       user = dirPath;
-       dirPath = "";
-      }
-      if ( user.isEmpty() )
-       user = getenv( "USER" );
-
-      struct passwd* user_data = getpwnam( user.latin1() );
-      if ( user_data == NULL ) {
-       // unknown user or something another error
-       QMessageBox::critical(this, 
-                             tr("Error"),
-                             tr("Unknown user %1").arg(user), 
-                             tr("Ok"));
-       myEdit->setFocus();
-        return false;
-      }
-      dirPath = user_data->pw_dir + dirPath;
-    }
-#endif
-*/
-    QDir dir(dirPath);
-    QListBoxItem* found = 0;
-    for (unsigned i = 0; i < myDirList->count()-1; i++) {
-      QDir aDir(myDirList->text(i));
-      if ( aDir.canonicalPath().isNull() && myDirList->text(i) == dir.absPath() ||
-          !aDir.canonicalPath().isNull() && aDir.exists() && aDir.canonicalPath() == dir.canonicalPath()) {
-          found = myDirList->item(i);
-        break;
-      }
-    }
-    if (dirPath.isEmpty()) {
-      if (found) {
-        // it should be last (empty) item in the list - nothing to do
-        return true;
-      }
-      else {
-        // delete directory from the list
-        removeDir(myLastSelected);
-        return true;
-      }
-    }
-    else {
-      if (found) {
-        if (found != myLastSelected) {
-          // it is forbidden to add directory more then once
-         if ( !quietMode )
-           QMessageBox::critical(this, 
-                                 tr("Error"),
-                                 tr("Directory already specified."), 
-                                 tr("Ok"));
-         myEdit->setFocus();
-          return false;
-        }
-      }
-      else {
-        if (!dir.exists()) {
-         if ( !quietMode && QMessageBox::information(this, 
-                                                     tr("Warning"),
-                                                     tr("%1\n\nThe directory doesn't exist.\nAdd directory anyway?").arg(dir.absPath()),
-                                                     tr("Yes"), tr("No"), QString::null, 1, 1) == 1) {
-           myEdit->setFocus();
-            return false;
-         }
-        }
-        // append
-        appendDir(myLastSelected, dir.absPath());
-      }
-    }
-  }
-  return true;
-}
-
-/*!
-  Appends/changes directory
-*/
-void QtxDirListEditor::appendDir(QListBoxItem* item, const QString& dir) {
-  int index = myDirList->index(item);
-  if (index >= 0 && index < (int)myDirList->count()) {
-    if (index == (int)myDirList->count()-1) {
-      // it is the last item (new), well, insert it before the last (empty)
-      myDirList->insertItem(dir, myDirList->count()-1);
-    }
-    else {
-      // change item
-      myDirList->changeItem(dir, index);
-    }
-  }
-}
-
-/*!
-  Removes directory from list
-*/
-void QtxDirListEditor::removeDir(QListBoxItem* item) {
-  // do not remove last item (empty)
-  int index = myDirList->index(item);
-  if (index >= 0 && index < (int)myDirList->count()-1) {
-    delete item;
-    myLastSelected = myDirList->item(index);
-    myDirList->setSelected(myLastSelected, true);
-  }
-}
-
-/*!
-  Resize event
-*/
-void QtxDirListEditor::resizeEvent(QResizeEvent* event) {
-  QWidget::resizeEvent(event);
-  if ( myEdited ) {
-    myEdit->resize(myDirList->viewport()->width()-myBtn->sizeHint().width(), myEdit->height());
-    myBtn->move(myEdit->width(), myEdit->y());
-  }
-}
-
-/*!
-  Called when user clicks inside directories list box
-*/
-void QtxDirListEditor::onMouseButtonClicked(int           button, 
-                                           QListBoxItem* item, 
-                                           const QPoint& point) {
-  if (myEdited) {
-    if (!validate()) {
-      myDirList->setCurrentItem(myLastSelected);
-      myDirList->setSelected(myLastSelected, true);
-      return;
-    }
-    delete myEdit;
-    delete myBtn;
-    myEdit = 0;
-    myBtn  = 0;
-    myEdited = false;
-    myDirList->setFocus();
-  }
-  if (item) {
-    myDirList->setCurrentItem(item);
-    myDirList->setSelected(item, true);
-    myDirList->ensureCurrentVisible();
-    qApp->processEvents();
-    if (button == LeftButton && myLastSelected == item) {
-      QRect ir = myDirList->itemRect(myLastSelected);
-      
-      myEdit = new QLineEdit(myDirList->viewport());
-      myBtn  = new QToolButton(myDirList->viewport());
-      myBtn->setText(" ... ");
-      connect(myBtn, SIGNAL(clicked()), this, SLOT(onBtnClicked()));
-      myEdit->setGeometry(0, 
-                          ir.top()-(myEdit->sizeHint().height()-ir.height())/2, 
-                          myDirList->viewport()->width()-myBtn->sizeHint().width(), 
-                          myEdit->sizeHint().height());
-      myBtn->setGeometry (myEdit->width(), 
-                          ir.top()-(myEdit->sizeHint().height()-ir.height())/2, 
-                          myBtn->sizeHint().width(),
-                          myEdit->sizeHint().height());
-      connect(myEdit, SIGNAL(returnPressed()), this, SLOT(onEditFinished()));
-      myEdited = true;
-      myEdit->show();
-      myBtn->show();
-      if (myDirList->index(myLastSelected) != (int)myDirList->count()-1)
-        myEdit->setText(myLastSelected->text());
-      myEdit->selectAll();
-      myEdit->setCursorPosition(myEdit->text().length());
-      myEdit->installEventFilter(this);
-      myEdit->setFocus();
-    }
-  }
-  else {
-    myDirList->clearSelection();
-  }
-  myLastSelected = item;
-}
-
-/*!
-  Called when user double-clicks on any item
-*/
-void QtxDirListEditor::onDblClicked(QListBoxItem* item) {
-  onMouseButtonClicked(LeftButton, item, QPoint(0,0));
-}
-
-/*!
-  <...> (Browse dir) button slot
-*/
-void QtxDirListEditor::onBtnClicked() {
-  QString dir = myEdit->text().stripWhiteSpace().isEmpty() ? 
-                QString::null : 
-                myEdit->text().stripWhiteSpace();
-
-  dir = QFileDialog::getExistingDirectory(dir, this, 0, tr("Select directory"), true);
-
-  if (!dir.isEmpty()) {
-    myEdit->setText(dir);
-    myEdit->selectAll();
-    myEdit->setCursorPosition(myEdit->text().length());
-  }
-}
-
-/*!
-  Called when user finises editing of path by pressing <Enter>
-*/
-void QtxDirListEditor::onEditFinished() {
-  if (myEdit) {
-    if (!validate()) {
-      myDirList->setCurrentItem(myLastSelected);
-      myDirList->setSelected(myLastSelected, true);
-      return;
-    }
-    myEdit->deleteLater();
-    myBtn->deleteLater();
-    myEdit = 0;
-    myBtn  = 0;
-    myEdited = false;
-    myDirList->setFocus();
-  }
-}
-
-/*!
-  Event filter
-*/
-bool QtxDirListEditor::eventFilter(QObject* object, QEvent* event) {
-  if ( myEdited ) {
-    if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonDblClick) {
-      if (object == myDirList->horizontalScrollBar() || object == myDirList->verticalScrollBar()) {
-       if (!validate()) {
-         myDirList->setCurrentItem(myLastSelected);
-         myDirList->setSelected(myLastSelected, true);
-         return true;
-       }
-       delete myEdit;
-       delete myBtn;
-       myEdit = 0;
-       myBtn  = 0;
-       myEdited = false;
-       myDirList->setFocus();
-      }
-    }
-    else if (event->type() == QEvent::KeyPress) {
-      QKeyEvent* ke = (QKeyEvent*)event;
-      if (ke->key() == Key_Tab)
-       return true;
-      if (object == myDirList) {
-       return true;
-      }
-      else if (object == myEdit) {
-        if ( ke->key() == Key_Up || ke->key() == Key_Down || ke->key() == Key_PageUp || ke->key() == Key_PageDown ||
-            ( ke->key() == Key_Home  || ke->key() == Key_End  || ke->key() == Key_Prior || ke->key() == Key_Next ) && 
-                 (ke->state() & ControlButton) ) {
-          return true;
-       }
-       else if ( ke->key() == Key_Escape ) {
-         delete myEdit;
-         delete myBtn;
-         myEdit = 0;
-         myBtn  = 0;
-         myEdited = false;
-         myDirList->setFocus();
-         return true;
-       }
-      }
-    }
-  }
-  return QWidget::eventFilter(object, event);
-}
-
-/*!
-  <Insert> button slot
-*/
-void QtxDirListEditor::onInsert() {
-  if (!myEdited) {
-    myLastSelected = 0;
-    onMouseButtonClicked(LeftButton, myDirList->item(myDirList->count()-1), QPoint(0,0));
-    onMouseButtonClicked(LeftButton, myDirList->item(myDirList->count()-1), QPoint(0,0));
-  }
-}
-
-/*!
-  <Delete> button slot
-*/
-void QtxDirListEditor::onDelete() {
-  if (!myEdited && myDirList->currentItem() >=0) {
-    removeDir(myDirList->item(myDirList->currentItem()));
-    myDirList->setFocus();
-  }
-}
-
-/*!
-  <Move up> button slot
-*/
-void QtxDirListEditor::onUp() {
-  if (!myEdited && myLastSelected) {
-    int index = myDirList->currentItem();
-    if (index > 0 && index < (int)myDirList->count()-1 && myDirList->isSelected(index)) {
-      QString t = myDirList->text(index-1);
-      myDirList->changeItem(myDirList->text(index), index-1);
-      myDirList->changeItem(t, index);
-      myDirList->setCurrentItem(index-1);
-      myLastSelected = myDirList->item(index-1);
-      myDirList->setSelected(myLastSelected, true);
-      myDirList->setFocus();
-    }
-  }
-}
-
-/*!
-  <Move down> button slot
-*/
-void QtxDirListEditor::onDown() {
-  if (!myEdited && myLastSelected) {
-    int index = myDirList->currentItem();
-    if (index >= 0 && index < (int)myDirList->count()-2 && myDirList->isSelected(index)) {
-      QString t = myDirList->text(index+1);
-      myDirList->changeItem(myDirList->text(index), index+1);
-      myDirList->changeItem(t, index);
-      myDirList->setCurrentItem(index+1);
-      myLastSelected = myDirList->item(index+1);
-      myDirList->setSelected(myLastSelected, true);
-      myDirList->setFocus();
-    }
-  }
-}
diff --git a/src/Qtx/QtxDirListEditor.h b/src/Qtx/QtxDirListEditor.h
deleted file mode 100644 (file)
index 38d62de..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-#ifndef QTX_DIRLISTEDITOR_H
-#define QTX_DIRLISTEDITOR_H
-
-#include "Qtx.h"
-
-#include <qwidget.h>
-#include <qtoolbutton.h>
-#include <qlineedit.h>
-#include <qlistbox.h>
-#include <qcombobox.h>
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-/*!
- * \brief The GUI implementation of the directory list
- */
-class QTX_EXPORT QtxDirListEditor : public QWidget {
-
-  Q_OBJECT
-
-public:
-
-  /*!
-   * \brief Constructor
-   * \param parent - the parent of the widget
-   */
-  QtxDirListEditor(QWidget* parent);
-
-  /*!
-   * \brief Destructor
-   */
-  ~QtxDirListEditor();
-
-  /*!
-   * \brief Gets list of paths
-   * \param list - the returned reference to the list of paths
-   */
-  void          getPathList(QStringList& list);
-
-  /*!
-   * \brief Sets list of paths
-   * \param list - the list of paths to set
-   */
-  void          setPathList(const QStringList& list);
-
-  /*!
-   * \brief Event filter, redefined from QObject class
-   */
-  bool          eventFilter(QObject* object, QEvent* event);
-
-protected:
-
-  /*!
-   * \brief Validates entered path
-   * \retval bool - returns status (true if OK)
-   */
-  bool          validate( const bool quietMode = false );
-
-  /*!
-   * \brief Appends/changes path
-   * \param item - the item in QListBox
-   * \param dir - the path
-   */
-  void          appendDir(QListBoxItem* item, const QString& dir);
-
-  /*!
-   * \brief Removes directory from list
-   * \param item - the item in QListBox
-   */
-  void          removeDir(QListBoxItem* item);
-
-  /*!
-   * \brief Resize event handler, reimplemented from QWidget
-   * \param event - the resize event
-   */
-  void          resizeEvent(QResizeEvent* event);
-
-protected slots:
-
-  /*!
-   * \brief Called when user clicks inside directories list box
-   */
-  void          onMouseButtonClicked(int, QListBoxItem*, const QPoint&);
-
-  /*!
-   * \brief Called when user double-clicks on any item
-   */
-  void          onDblClicked(QListBoxItem*);
-
-  /*!
-   * \brief <...> (Browse dir) button slot
-   */
-  void          onBtnClicked();
-
-  /*!
-   * \brief Ccalled when user finises editing of path by pressing <Enter>
-   */
-  void          onEditFinished();
-
-  /*!
-   * \brief <Insert> button slot
-   */
-  void          onInsert();
-
-  /*!
-   * \brief  <Delete> button slot
-   */
-  void          onDelete();
-
-  /*!
-   * \brief  <Move up> button slot
-   */
-  void          onUp();
-
-  /*!
-   * \brief  <Move down> button slot
-   */
-  void          onDown();
-
-private:
-  QListBox*     myDirList;          //!< directory list
-  QLineEdit*    myEdit;             //!< path edit box
-  QToolButton*  myBtn;              //!<  browse pah button
-  bool          myEdited;           //!<  edit mode flag
-  QListBoxItem* myLastSelected;     //!< last selected row
-
-};
-
-#endif
diff --git a/src/Qtx/QtxDockAction.cxx b/src/Qtx/QtxDockAction.cxx
deleted file mode 100755 (executable)
index 1b25e28..0000000
+++ /dev/null
@@ -1,1304 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxDockAction.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxDockAction.h"
-
-#include "QtxResourceMgr.h"
-
-#include <qevent.h>
-#include <qtoolbar.h>
-#include <qdockarea.h>
-#include <qdockwindow.h>
-#include <qmainwindow.h>
-#include <qobjectlist.h>
-#include <qapplication.h>
-
-/*!
-       Name: QtxDockAction [public]
-       Desc: Constructs an Dock action with given main window and name.
-*/
-
-QtxDockAction::QtxDockAction( QMainWindow* mw, const char* name )
-: QtxAction( "Windows and Toolbars", "Windows and Toolbars", 0, mw, name ),
-myMain( mw ),
-myAutoAdd( true ),
-mySeparate( true ),
-myAutoPlace( false )
-{
-  initialize( mw );
-}
-
-/*!
-       Name: QtxDockAction [public]
-       Desc: This constructor creates an action with the following properties: the
-                   description text, the menu text and. It is a child of given main window
-        and named specified name.
-*/
-
-QtxDockAction::QtxDockAction( const QString& text, const QString& menuText, QMainWindow* mw, const char* name )
-: QtxAction( text, menuText, 0, mw, name ),
-myMain( mw ),
-myAutoAdd( true ),
-mySeparate( true ),
-myAutoPlace( false )
-{
-  initialize( mw );
-}
-
-/*!
-       Name: QtxDockAction [public]
-       Desc: This constructor creates an action with the following properties: the
-                   description text, the menu text, the icon or iconset icon and keyboard
-        accelerator. It is a child of given main window and named specified name.
-*/
-
-QtxDockAction::QtxDockAction( const QString& text, const QIconSet& icon, const QString& menuText, QMainWindow* mw, const char* name )
-: QtxAction( text, icon, menuText, 0, mw, name ),
-myMain( mw ),
-myAutoAdd( true ),
-mySeparate( true ),
-myAutoPlace( false )
-{
-  initialize( mw );
-}
-
-/*!
-       Name: ~QtxDockAction [public]
-       Desc: Removes all added popup items.
-*/
-
-QtxDockAction::~QtxDockAction()
-{
-  for ( MenuMap::ConstIterator mIt = myMenu.begin(); mIt != myMenu.end(); ++mIt )
-    removeFrom( mIt.key() );
-
-  for ( InfoMap::ConstIterator iIt = myInfo.begin(); iIt != myInfo.end(); ++iIt )
-    delete iIt.data().a;
-}
-
-/*!
-       Name: mainWindow [public]
-       Desc: Returns the main window which contains managed dock windows.
-*/
-
-QMainWindow* QtxDockAction::mainWindow() const
-{
-  return myMain;
-}
-
-/*!
-       Name: isAutoAdd [public]
-       Desc: Returns the auto add property. If this property is setted then all newly
-        appeared dock windows will be automatically added.
-*/
-
-bool QtxDockAction::isAutoAdd() const
-{
-  return myAutoAdd;
-}
-
-/*!
-       Name: setAutoAdd [public]
-       Desc: Sets the auto add property. If this property is setted then all newly
-        appeared dock windows will be automatically added.
-*/
-
-void QtxDockAction::setAutoAdd( const bool on )
-{
-  myAutoAdd = on;
-}
-
-/*!
-       Name: isAutoPlace [public]
-       Desc: Returns the auto place property. If this property is setted then all newly
-        added dock windows will be automatically placed according stored place information.
-*/
-
-bool QtxDockAction::isAutoPlace() const
-{
-  return myAutoPlace;
-}
-
-/*!
-       Name: setAutoPlace [public]
-       Desc: Sets the auto place property. If this property is setted then all newly
-        added dock windows will be automatically placed according stored place
-        information.
-*/
-
-void QtxDockAction::setAutoPlace( const bool on )
-{
-  myAutoPlace = on;
-}
-
-/*!
-       Name: isSeparate [public]
-       Desc: Returns the 'separate' property.
-*/
-
-bool QtxDockAction::isSeparate() const
-{
-  return mySeparate;
-}
-
-/*!
-       Name: setSeparate [public]
-       Desc: Sets the 'separate' property. If this property is 'true' then toolbars and
-        dock windows menu items will be placed in different popup menus  otherwise
-        their will  be placed  in  one  common  popup  menu. This property will be
-        affected in next method 'addTo'.
-*/
-
-void QtxDockAction::setSeparate( const bool on )
-{
-  if ( mySeparate == on )
-    return;
-
-  mySeparate = on;
-  updateMenus();
-}
-
-/*!
-       Name: addTo [public]
-       Desc: Add the dock windows sub menu item to the end of specified popup.
-*/
-
-bool QtxDockAction::addTo( QWidget* wid )
-{
-  return addTo( wid, -1 );
-}
-
-/*!
-       Name: addTo [public]
-       Desc: Add the dock windows sub menu item to specified popup at the given index.
-*/
-
-bool QtxDockAction::addTo( QWidget* wid, const int idx )
-{
-  if ( !wid || !wid->inherits( "QPopupMenu" ) )
-    return false;
-
-  QPopupMenu* pm = (QPopupMenu*)wid;
-  checkPopup( pm );
-
-  if ( myMenu.contains( pm ) )
-    return false;
-
-  MenuInfo mInfo;
-  mInfo.dock = new QPopupMenu( pm );
-  mInfo.tool = isSeparate() ? new QPopupMenu( pm ) : 0;
-
-  QString dock, tool;
-  splitMenuText( dock, tool );
-
-  myMenu.insert( pm, mInfo );
-
-  int index = idx;
-
-  if ( mInfo.dock )
-    iconSet().isNull() ? pm->insertItem ( dock, mInfo.dock, -1, index ) :
-                         pm->insertItem ( iconSet(), dock, mInfo.dock, -1, index );
-
-  if ( index >= 0 )
-    index++;
-
-  if ( mInfo.tool )
-    iconSet().isNull() ? pm->insertItem ( tool, mInfo.tool, -1, index ) :
-                         pm->insertItem ( iconSet(), tool, mInfo.tool, -1, index );
-
-  connect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-  connect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onPopupDestroyed( QObject* ) ) );
-
-  return true;
-}
-
-/*!
-       Name: removeFrom [public]
-       Desc: Removes dock window sub menu from specified popup.
-*/
-
-bool QtxDockAction::removeFrom( QWidget* wid )
-{
-  QPopupMenu* pm = (QPopupMenu*)wid;
-
-  if ( myMenu.contains( pm ) )
-  {
-    pm->removeItem( findId( pm, myMenu[pm].dock ) );
-    pm->removeItem( findId( pm, myMenu[pm].tool ) );
-
-    delete myMenu[pm].dock;
-    delete myMenu[pm].tool;
-    myMenu.remove( pm );
-
-    disconnect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-    disconnect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onPopupDestroyed( QObject* ) ) );
-  }
-
-  return QtxAction::removeFrom( wid );
-}
-
-/*!
-  Sets menu text of action
-  \param txt - new menu text
-*/
-void QtxDockAction::setMenuText( const QString& txt )
-{
-  if ( menuText() == txt )
-    return;
-
-  QtxAction::setMenuText( txt );
-  updateMenus();
-}
-
-/*!
-       Name: addDockWindow [public]
-       Desc: Add dock window to internal data structures. Action will be include all added
-        dock windows in to menu and manage their place configuration.
-*/
-
-bool QtxDockAction::addDockWindow( QDockWindow* dw )
-{
-  if ( !dw || !mainWindow() )
-    return false;
-
-  if ( myInfo.contains( dw ) )
-    return false;
-
-  myInfo.insert( dw, DockInfo() );
-
-  DockInfo& inf = myInfo[dw];
-  inf.name = windowName( dw );
-  QAction* a = inf.a = new QAction( mainWindow(), 0, true );
-
-  autoLoadPlaceInfo( dw );
-
-  bool block = a->signalsBlocked();
-  a->blockSignals( true );
-  a->setOn( dw->isVisibleTo( mainWindow() ) );
-  a->blockSignals( block );
-
-  updateInfo( dw );
-  savePlaceInfo( dw );
-
-  dw->installEventFilter( this );
-
-  connect( a, SIGNAL( toggled( bool ) ), this, SLOT( onToggled( bool ) ) );
-  connect( dw, SIGNAL( destroyed( QObject* ) ), this, SLOT( onWindowDestroyed( QObject* ) ) );
-  connect( dw, SIGNAL( visibilityChanged( bool ) ), this, SLOT( onVisibilityChanged( bool ) ) );
-
-  return true;
-}
-
-/*!
-       Name: removeDockWindow [public]
-       Desc: Remove dock window from internal data structures. Action will not manage this window.
-*/
-
-bool QtxDockAction::removeDockWindow( QDockWindow* dw )
-{
-  if ( !myInfo.contains( dw ) )
-    return false;
-
-  myGeom.remove( myInfo[dw].name );
-
-  delete myInfo[dw].a;
-  myInfo.remove( dw );
-
-  dw->removeEventFilter( this );
-
-  disconnect( dw, SIGNAL( destroyed( QObject* ) ), this, SLOT( onWindowDestroyed( QObject* ) ) );
-  disconnect( dw, SIGNAL( visibilityChanged( bool ) ), this, SLOT( onVisibilityChanged( bool ) ) );
-
-  return true;
-}
-
-/*!
-       Name: eventFilter [public]
-       Desc: Event filter process caption and icon changing of managed dock windows
-        and try to add newly appeared dock windows.
-*/
-
-bool QtxDockAction::eventFilter( QObject* o, QEvent* e )
-{
-  if ( o->inherits( "QDockWindow" ) && ( e->type() == QEvent::CaptionChange ||
-                                         e->type() == QEvent::IconChange ) )
-    updateInfo( (QDockWindow*)o );
-
-  if ( o->inherits( "QDockArea" ) && e->type() == QEvent::ChildRemoved )
-  {
-    QChildEvent* ce = (QChildEvent*)e;
-    if ( ce->child() && ce->child()->inherits( "QDockWindow" ) )
-      savePlaceInfo( (QDockWindow*)ce->child() );
-  }
-
-  if ( o->inherits( "QDockArea" ) && e->type() == QEvent::ChildInserted )
-  {
-    QChildEvent* ce = (QChildEvent*)e;
-    if ( ce->child() && ce->child()->inherits( "QDockWindow" ) )
-      QApplication::postEvent( this, new QCustomEvent( (QEvent::Type)AutoAdd, ce->child() ) );
-  }
-
-  return false;
-}
-
-/*!
-       Name: restoreGeometry [public]
-       Desc: Retrieve the dock window geometry. If dock window specified as 0
-        then all windows geometry will be restored.
-*/
-
-void QtxDockAction::restoreGeometry( QDockWindow* dw ) const
-{
-  if ( !dw )
-    loadPlaceInfo();
-  else
-    loadPlaceInfo( dw );
-}
-
-/*!
-       Name: storeGeometry [public]
-       Desc: Store the dock window geometry. If dock window specified as 0
-        then all windows geometry will be stored.
-*/
-
-void QtxDockAction::storeGeometry( QDockWindow* dw )
-{
-  QPtrList<QDockWindow> dwList;
-
-  if ( dw )
-    dwList.append( dw );
-  else
-    dockWindows( dwList );
-
-  for ( QPtrListIterator<QDockWindow> it( dwList ); it.current(); ++it )
-    savePlaceInfo( it.current() );
-}
-
-/*!
-       Name: loadGeometry [public]
-       Desc: Retrieve the dock windows geometry information from the specified resource manager section.
-*/
-
-void QtxDockAction::loadGeometry( QtxResourceMgr* resMgr, const QString& section, const bool clear )
-{
-  QString sec = section.stripWhiteSpace();
-  if ( !resMgr || sec.isEmpty() )
-    return;
-
-  myNames = QStringList::split( "|", resMgr->stringValue( sec, "windows_list", QString::null ) );
-
-  QMap<QString, int> map;
-  QStringList params = resMgr->parameters( sec );
-  for ( QStringList::const_iterator it = params.begin(); it != params.end(); ++it )
-  {
-    QString p = QStringList::split( ".", *it, true ).first().stripWhiteSpace();
-    if ( !p.isEmpty() )
-      map.insert( p, 0 );
-  }
-
-  for ( QMap<QString, int>::ConstIterator itr = map.begin(); itr != map.end(); ++itr )
-  {
-    GeomInfo inf;
-    if ( !clear && myGeom.contains( itr.key() ) )
-      inf = myGeom[itr.key()];
-    else
-    {
-      inf.vis = true; inf.newLine = false; inf.place = DockTop;
-      inf.index = 0; inf.offset = 0;
-      inf.x = 0; inf.y = 0; inf.w = 0; inf.h = 0;
-      inf.fixW = -1; inf.fixH = -1;
-    }
-    if ( loadGeometry( resMgr, sec, itr.key(), inf ) )
-      myGeom.insert( itr.key(), inf );
-  }
-}
-
-/*!
-       Name: saveGeometry [public]
-       Desc: Store the dock windows geometry information into the specified resource manager section.
-*/
-
-void QtxDockAction::saveGeometry( QtxResourceMgr* resMgr, const QString& section, const bool clear ) const
-{
-  QString sec = section.stripWhiteSpace();
-  if ( !resMgr || sec.isEmpty() )
-    return;
-
-  QtxDockAction* that = (QtxDockAction*)this;
-  that->storeGeometry();
-
-  that->myNames.clear();
-  collectNames( Minimized, that->myNames );
-  for ( int i = DockTornOff; i < Minimized; i++ )
-    collectNames( i, that->myNames );
-
-  if ( clear )
-    resMgr->remove( sec );
-
-  resMgr->setValue( sec, "windows_list", myNames.join( "|" ) );
-
-  for ( GeomMap::ConstIterator it = myGeom.begin(); it != myGeom.end(); ++it )
-    saveGeometry( resMgr, sec, it.key(), it.data() );
-}
-
-/*!
-       Name: onAboutToShow [private slots]
-       Desc: Prepare sub popup with dock windows list when parent popup is shown.
-*/
-
-void QtxDockAction::onAboutToShow()
-{
-  const QObject* obj = sender();
-  if ( obj && obj->inherits( "QPopupMenu" ) )
-  {
-    QPopupMenu* pm = (QPopupMenu*)obj;
-    fillPopup( pm );
-    pm->setItemEnabled( findId( pm, myMenu[pm].dock ), isEnabled() && myMenu[pm].dock && myMenu[pm].dock->count() );
-    pm->setItemEnabled( findId( pm, myMenu[pm].tool ), isEnabled() && myMenu[pm].tool && myMenu[pm].tool->count() );
-  }
-}
-
-/*!
-       Name: onToggled [private slots]
-       Desc: Show or hide dock window when user toggled window item in popup.
-*/
-
-void QtxDockAction::onToggled( bool on )
-{
-  QDockWindow* dw = dockWindow( (QAction*)sender() );
-  if ( dw )
-    on ? dw->show() : dw->hide();
-}
-
-/*!
-       Name: onPopupDestroyed [private slots]
-       Desc: Remove destroyed popup from data structures.
-*/
-
-void QtxDockAction::onPopupDestroyed( QObject* obj )
-{
-  myMenu.remove( (QPopupMenu*)obj );
-}
-
-/*!
-       Name: onWindowDestroyed [private slots]
-       Desc: Remove information about destroyed dock window.
-*/
-
-void QtxDockAction::onWindowDestroyed( QObject* obj )
-{
-  QDockWindow* dw = (QDockWindow*)obj;
-  if ( !myInfo.contains( dw ) )
-    return;
-
-  delete myInfo[dw].a;
-  myInfo.remove( dw );
-}
-
-/*!
-       Name: onVisibilityChanged [private slots]
-       Desc: Toggle corresponded action when visibility state of dock window changed.
-*/
-
-void QtxDockAction::onVisibilityChanged( bool on )
-{
-  const QObject* obj = sender();
-  if ( !obj || !obj->inherits( "QDockWindow" ) )
-    return;
-
-  QDockWindow* dw = (QDockWindow*)obj;
-
-  QAction* a = action( dw );
-  if ( a && a->isOn() != on )
-  {
-    bool block = a->signalsBlocked();
-    a->blockSignals( true );
-    a->setOn( on );
-    a->blockSignals( block );
-  }
-
-  savePlaceInfo( dw );
-}
-
-/*!
-       Name: onDockWindowPositionChanged [private slots]
-       Desc: Update dock window place information
-*/
-
-void QtxDockAction::onDockWindowPositionChanged( QDockWindow* dw )
-{
-  savePlaceInfo( dw );
-}
-
-/*!
-       Name: event [protected]
-       Desc: Check consistency the popup content and internal datas.
-        Synchronize internal data structures with popup content.
-*/
-
-bool QtxDockAction::event( QEvent* e )
-{
-  if ( e->type() == (int)AutoAdd )
-  {
-    QCustomEvent* ce = (QCustomEvent*)e;
-    QDockWindow* dw = (QDockWindow*)ce->data();
-    if ( !myInfo.contains( dw ) )
-    {
-      autoAddDockWindow( dw );
-      autoLoadPlaceInfo( dw );
-    }
-  }
-
-  return QtxAction::event( e );
-}
-
-/*!
-       Name: checkPopup [private]
-       Desc: Check consistency the popup content and internal datas.
-        Synchronize internal data structures with popup content.
-*/
-
-void QtxDockAction::checkPopup( QPopupMenu* pm )
-{
-  if ( !myMenu.contains( pm ) )
-    return;
-
-  int id = findId( pm, myMenu[pm].dock );
-  if ( id == -1 )
-  {
-    delete myMenu[pm].dock;
-    myMenu[pm].dock = 0;
-  }
-  id = findId( pm, myMenu[pm].tool );
-  if ( id == -1 )
-  {
-    delete myMenu[pm].tool;
-    myMenu[pm].tool = 0;
-  }
-
-  if ( !myMenu[pm].dock )
-  {
-    delete myMenu[pm].tool;
-    myMenu.remove( pm );
-    disconnect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
-  }
-}
-
-/*!
-       Name: fillPopup [private]
-       Desc: Clear the popup and the add to it required actions.
-*/
-
-void QtxDockAction::fillPopup( QPopupMenu* pm ) const
-{
-  if ( !pm || !mainWindow() )
-    return;
-
-  if ( !myMenu.contains( pm ) )
-    return;
-
-  QPopupMenu* dockMenu = myMenu[pm].dock;
-  QPopupMenu* toolMenu = myMenu[pm].tool;
-
-  for ( InfoMap::ConstIterator mit = myInfo.begin(); mit != myInfo.end(); ++mit )
-  {
-    mit.data().a->removeFrom( dockMenu );
-    mit.data().a->removeFrom( toolMenu );
-  }
-
-  if ( dockMenu )
-    dockMenu->clear();
-
-  if ( toolMenu )
-    toolMenu->clear();
-
-  QPtrList<QDockWindow> dockList;
-  dockWindows( dockList, mainWindow() );
-
-  if ( dockList.isEmpty() )
-    return;
-
-  QPtrList<QAction> toolBars, windows;
-  for ( QPtrListIterator<QDockWindow> it( dockList ); it.current(); ++it )
-  {
-    if ( !myInfo.contains( it.current() ) )
-    {
-      QtxDockAction* that = (QtxDockAction*)this;
-      that->autoAddDockWindow( it.current() );
-    }
-
-    if ( !mainWindow()->appropriate( it.current() ) ||
-         it.current()->caption().isEmpty() || !action( it.current() ) )
-      continue;
-
-    if ( isToolBar( it.current() ) )
-      toolBars.append( action( it.current() ) );
-    else
-      windows.append( action( it.current() ) );
-  }
-
-  for ( QPtrListIterator<QAction> wit( windows ); wit.current(); ++wit )
-    wit.current()->addTo( dockMenu );
-
-  dockMenu->insertSeparator();
-
-  for ( QPtrListIterator<QAction> tit( toolBars ); tit.current(); ++tit )
-    tit.current()->addTo( toolMenu ? toolMenu : dockMenu );
-
-  Qtx::simplifySeparators( dockMenu );
-  Qtx::simplifySeparators( toolMenu );
-}
-
-/*!
-       Name: isToolBar [private]
-       Desc: Returns 'true' if dock window is a toolbar.
-*/
-
-bool QtxDockAction::isToolBar( QDockWindow* dw ) const
-{
-  return dw && dw->inherits( "QToolBar" );
-}
-
-/*!
-       Name: findId [private]
-       Desc: Returns identificator of popup item which contains sub popup 'pm' in the popup 'cont'.
-*/
-
-int QtxDockAction::findId( QPopupMenu* cont, QPopupMenu* pm ) const
-{
-  if ( !cont || !pm )
-    return -1;
-
-  int id = -1;
-
-  for ( int i = 0; i < (int)cont->count() && id == -1; i++ )
-  {
-    QMenuData* md = 0;
-    QMenuItem* item = cont->findItem( cont->idAt( i ), &md );
-    if ( item && md == cont && item->popup() == pm )
-      id = item->id();
-  }
-  return id;
-}
-
-/*!
-       Name: dockWindows [private]
-       Desc: Returns all dock windows of the main window.
-*/
-
-void QtxDockAction::dockWindows( QPtrList<QDockWindow>& lst, QMainWindow* main ) const
-{
-  lst.clear();
-
-  QMainWindow* mw = main ? main : mainWindow();
-  if ( !mw )
-    return;
-
-  QObjectList* objs = mw->queryList( "QDockWindow" );
-  if ( objs )
-  {
-    for ( QObjectListIt it( *objs ); it.current(); ++it )
-    {
-      QDockWindow* dockWin = ::qt_cast<QDockWindow*>( it.current() );
-      if ( dockWin && dockMainWindow( mw, dockWin ) )
-        lst.append( dockWin );
-    }
-  }
-  delete objs;
-}
-
-/*!
-  \return true if main window is parent of object
-  \param mw - main window
-  \param win - object
-*/
-bool QtxDockAction::dockMainWindow( QMainWindow* mw, QObject* win ) const
-{
-  if ( !mw || !win )
-    return false;
-
-  while ( win )
-  {
-    if ( win->parent() && win->parent() == mw )
-      return true;
-
-    if ( ::qt_cast<QMainWindow*>( win->parent() ) )
-      return false;
-
-    win = win->parent();
-  }
-
-  return false;
-}
-
-/*!
-       Name: updateInfo [private]
-       Desc: Updates icon and caption info of dock window in the corresponded action.
-*/
-
-void QtxDockAction::updateInfo( QDockWindow* dw )
-{
-  QAction* a = action( dw );
-  if ( !a )
-    return;
-
-  a->setText( dw->caption() );
-  a->setMenuText( dw->caption() );
-
-  if ( isToolBar( dw ) )
-    a->setStatusTip( tr( "Toggles toolbar \"%1\" on/off" ).arg( dw->caption() ) );
-  else
-    a->setStatusTip( tr( "Toggles window \"%1\" on/off" ).arg( dw->caption() ) );
-
-  const QPixmap* icon = dw->icon();
-  if ( icon )
-    a->setIconSet( *icon );
-}
-
-/*!
-       Name: savePlaceInfo [private]
-       Desc: Store the place and geometry information from specified dock window.
-*/
-
-void QtxDockAction::savePlaceInfo( QDockWindow* dw )
-{
-  if ( !myInfo.contains( dw ) )
-    return;
-
-  if ( !myGeom.contains( myInfo[dw].name ) )
-    myGeom.insert( myInfo[dw].name, GeomInfo() );
-
-  GeomInfo& inf = myGeom[myInfo[dw].name];
-
-  Dock dock;
-  inf.vis = dw->isVisibleTo( mainWindow() );
-  mainWindow()->getLocation( dw, dock, inf.index, inf.newLine, inf.offset );
-
-  inf.place = dock;
-  inf.x = dw->x();
-  inf.y = dw->y();
-  inf.w = dw->width();
-  inf.h = dw->height();
-  inf.fixW = dw->fixedExtent().width();
-  inf.fixH = dw->fixedExtent().height();
-}
-
-/*!
-       Name: loadPlaceInfo [private]
-       Desc: Retrieve the stored place and geometry information to specified dock window.
-*/
-
-void QtxDockAction::loadPlaceInfo( QDockWindow* dw ) const
-{
-  if ( !myInfo.contains( dw ) )
-    return;
-
-  QMainWindow* mw = mainWindow();
-  if ( !mw )
-    return;
-
-  QObject* p = dw->parent();
-  if ( !( !p || p == mw || ( p->parent() && p->parent() == mw ) ) )
-    return;
-
-  QString winName = myInfo[dw].name;
-  if ( winName.isEmpty() || !myGeom.contains( winName ) )
-    return;
-
-  GeomInfo inf = myGeom[myInfo[dw].name];
-
-  mainWindow()->moveDockWindow( dw, (Qt::Dock)inf.place, inf.newLine, inf.index, inf.offset );
-  dw->setGeometry( inf.x, inf.y, inf.w, inf.h );
-
-  dw->setFixedExtentWidth( inf.fixW );
-  dw->setFixedExtentHeight( inf.fixH );
-
-  QtxDockAction* that = (QtxDockAction*)this;
-  that->myGeom.insert( myInfo[dw].name, inf );
-}
-
-/*!
-       Name: loadPlaceInfo [private]
-       Desc: Retrieve the stored place and geometry information to all dock windows.
-*/
-
-void QtxDockAction::loadPlaceInfo() const
-{
-  QMainWindow* mw = mainWindow();
-  if ( !mw )
-    return;
-
-  typedef QPtrList<QDockWindow> DockWinList;
-
-  DockWinList lst;
-  dockWindows( lst, mw );
-
-  QMap<QString, QDockWindow*> nameMap;
-  for ( QPtrListIterator<QDockWindow> itr( lst ); itr.current(); ++itr )
-  {
-    QObject* p = itr.current()->parent();
-    if ( !( !p || p == mw || ( p->parent() && p->parent() == mw ) ) )
-      continue;
-
-    QString name;
-    if ( myInfo.contains( itr.current() ) )
-      name = myInfo[itr.current()].name;
-
-    if ( !myGeom.contains( name ) )
-      continue;
-
-    nameMap.insert( name, itr.current() );
-  }
-
-  DockWinList winList;
-  for ( QStringList::const_iterator iter = myNames.begin(); iter != myNames.end(); ++iter )
-  {
-    if ( nameMap.contains( *iter ) )
-      winList.append( nameMap[*iter] );
-    nameMap.remove( *iter );
-  }
-
-  for ( QMap<QString, QDockWindow*>::ConstIterator mIt = nameMap.begin(); mIt != nameMap.end(); ++mIt )
-    winList.append( mIt.data() );
-
-  QMap<int, DockWinList> winMap;
-  QMap<QDockWindow*, GeomInfo*> geomMap;
-
-  for ( QPtrListIterator<QDockWindow> it( winList ); it.current(); ++it )
-  {
-    QString name;
-    if ( myInfo.contains( it.current() ) )
-      name = myInfo[it.current()].name;
-
-    if ( !myGeom.contains( name ) )
-      continue;
-
-    //! collect pointer of info to have fresh info data after processEvents();
-    GeomInfo* inf = (GeomInfo*)&( myGeom[name] );
-    geomMap.insert( it.current(), inf );
-    if ( !winMap.contains( inf->place ) )
-      winMap.insert( inf->place, DockWinList() );
-    winMap[inf->place].append( it.current() );
-  }
-
-  loadPlaceArea( DockMinimized, mw, 0,
-                 winMap.contains( DockMinimized ) ? winMap[DockMinimized] : DockWinList(), geomMap );
-  for ( int i = DockTornOff; i < DockMinimized; i++ )
-  {
-    loadPlaceArea( i, mw, dockArea( i ), winMap.contains( i ) ? winMap[i] : DockWinList(), geomMap );
-  }
-}
-
-/*!
-       Name: loadPlaceArea [private]
-       Desc: Set the place and geometry information to all dock windows in the area.
-*/
-
-void QtxDockAction::loadPlaceArea( const int place, QMainWindow* mw, QDockArea* area,
-                                   const QPtrList<QDockWindow>& dockList,
-                                   const QMap<QDockWindow*, GeomInfo*>& geomMap ) const
-{
-  for ( QPtrListIterator<QDockWindow> it( dockList ); it.current(); ++it )
-  {
-    if ( !geomMap.contains( it.current() ) )
-      continue;
-
-    GeomInfo* inf = geomMap[it.current()];
-    mw->moveDockWindow( it.current(), (Qt::Dock)place, inf->newLine, inf->index, inf->offset );
-  }
-
-  if ( !area )
-    return;
-
-  qApp->processEvents();
-
-  for ( QPtrListIterator<QDockWindow> itr( dockList ); itr.current(); ++itr )
-  {
-    QDockWindow* dw = itr.current();
-    if ( !geomMap.contains( dw ) )
-      continue;
-
-    GeomInfo* inf = geomMap[dw];
-    if ( place != DockTornOff )
-    {
-      dw->setNewLine( inf->newLine );
-                 dw->setOffset( inf->offset );
-                 dw->setFixedExtentWidth( inf->fixW );
-                 dw->setFixedExtentHeight( inf->fixH );
-    }
-    dw->setGeometry( inf->x, inf->y, inf->w, inf->h );
-
-    QAction* a = action( dw );
-    if ( a )
-    {
-      bool block = a->signalsBlocked();
-      a->blockSignals( true );
-      a->setOn( inf->vis );
-      a->blockSignals( block );
-    }
-
-    if ( mainWindow() && mainWindow()->appropriate( dw ) )
-      inf->vis ? dw->show() : dw->hide();
-  }
-
-  QWidget* wid = area;
-  if ( wid->layout() )
-  {
-    wid->layout()->invalidate();
-    wid->layout()->activate();
-  }
-}
-
-/*!
-       Name: action [private]
-       Desc: Returns action for the given dock window.
-*/
-
-QAction* QtxDockAction::action( QDockWindow* dw ) const
-{
-  QAction* a = 0;
-  if ( myInfo.contains( dw ) )
-    a = myInfo[dw].a;
-  return a;
-}
-
-/*!
-       Name: dockWindow [private]
-       Desc: Returns dock window for the given action.
-*/
-
-QDockWindow* QtxDockAction::dockWindow( const QAction* a ) const
-{
-  QDockWindow* dw = 0;
-  for ( InfoMap::ConstIterator it = myInfo.begin(); it != myInfo.end() && !dw; ++it )
-  {
-    if ( it.data().a == a )
-      dw = it.key();
-  }
-  return dw;
-}
-
-/*!
-       Name: initialize [private]
-       Desc: Initialisation of the object. Sets the event filters and add existing dock windows.
-*/
-
-void QtxDockAction::initialize( QMainWindow* mw )
-{
-  if ( !mw )
-    return;
-
-  QPtrList<QDockWindow> lst;
-  dockWindows( lst, mw );
-
-  for ( QPtrListIterator<QDockWindow> it( lst ); it.current(); ++it )
-    QApplication::postEvent( this, new QCustomEvent( (QEvent::Type)AutoAdd, it.current() ) );
-
-  if ( mw->topDock() )
-    mw->topDock()->installEventFilter( this );
-  if ( mw->leftDock() )
-    mw->leftDock()->installEventFilter( this );
-  if ( mw->rightDock() )
-    mw->rightDock()->installEventFilter( this );
-  if ( mw->bottomDock() )
-    mw->bottomDock()->installEventFilter( this );
-
-  connect( mw, SIGNAL( dockWindowPositionChanged( QDockWindow* ) ),
-           this, SLOT( onDockWindowPositionChanged( QDockWindow* ) ) );
-}
-
-/*!
-       Name: windowName [private]
-       Desc: Generate the dock window name.
-*/
-
-QString QtxDockAction::windowName( QDockWindow* dw ) const
-{
-  QString name;
-
-  if ( dw )
-  {
-    name = dw->name( "" );
-    if ( name.isEmpty() )
-      name = dw->caption();
-  }
-
-  return name;
-}
-
-/*!
-       Name: autoAddDockWindow [private]
-       Desc: Add the dock window if auto add property is setted.
-*/
-
-bool QtxDockAction::autoAddDockWindow( QDockWindow* dw )
-{
-  if ( !isAutoAdd() )
-    return false;
-
-  return addDockWindow( dw );
-}
-
-/*!
-       Name: autoLoadPlaceInfo [private]
-       Desc: Retieve the dock window place geometry if auto place property is setted.
-*/
-
-void QtxDockAction::autoLoadPlaceInfo( QDockWindow* dw )
-{
-  if ( isAutoPlace() )
-    loadPlaceInfo( dw );
-}
-
-/*!
-       Name: splitMenuText [private]
-       Desc: 
-*/
-
-void QtxDockAction::splitMenuText( QString& dock, QString& tool ) const
-{
-  dock = tool = menuText();
-  if ( !isSeparate() )
-    return;
-
-  QStringList lst = splitText( menuText(), "|" );
-  if ( lst.count() < 2 )
-    lst = splitText( menuText(), "and" );
-
-  dock = lst.first();
-  tool = lst.last();
-}
-
-/*!
-       Name: splitText [private]
-       Desc: 
-*/
-
-QStringList QtxDockAction::splitText( const QString& str, const QString& sep ) const
-{
-  QStringList res;
-
-  int idx = str.lower().find( sep.lower() );
-  if ( idx != -1 )
-  {
-    res.append( str.mid( 0, idx ).stripWhiteSpace() );
-    res.append( str.mid( idx + sep.length() ).stripWhiteSpace() );
-  }
-
-  return res;
-}
-
-/*!
-       Name: dockPlace [private]
-       Desc: 
-*/
-
-int QtxDockAction::dockPlace( const QString& dockName ) const
-{
-  static QMap<QString, int> dockNameMap;
-  if ( dockNameMap.isEmpty() )
-  {
-    dockNameMap["top"]       = DockTop;
-    dockNameMap["bottom"]    = DockBottom;
-    dockNameMap["left"]      = DockLeft;
-    dockNameMap["right"]     = DockRight;
-    dockNameMap["tornoff"]   = DockTornOff;
-    dockNameMap["torn_off"]  = DockTornOff;
-    dockNameMap["outside"]   = DockTornOff;
-    dockNameMap["undock"]    = DockTornOff;
-    dockNameMap["minimized"] = DockMinimized;
-    dockNameMap["unmanaged"] = DockUnmanaged;
-  }
-
-  int res = -1;
-  if ( dockNameMap.contains( dockName.lower() ) )
-    res = dockNameMap[dockName.lower()];
-  return res;
-}
-
-/*!
-       Name: dockArea [private]
-       Desc: 
-*/
-
-QDockArea* QtxDockAction::dockArea( const int place ) const
-{
-  if ( !mainWindow() )
-    return 0;
-
-  QDockArea* area = 0;
-  switch ( place )
-  {
-  case DockTop:
-    area = mainWindow()->topDock();
-    break;
-  case DockBottom:
-    area = mainWindow()->bottomDock();
-    break;
-  case DockLeft:
-    area = mainWindow()->leftDock();
-    break;
-  case DockRight:
-    area = mainWindow()->rightDock();
-    break;
-  }
-  return area;
-}
-
-/*!
-       Name: loadGeometry [private]
-       Desc: 
-*/
-
-bool QtxDockAction::loadGeometry( QtxResourceMgr* resMgr, const QString& sec,
-                                  const QString& name, GeomInfo& inf ) const
-{
-  if ( !resMgr || sec.isEmpty() || name.isEmpty() )
-    return false;
-
-  QString tmpl = QString( "%1.%2" ).arg( name );
-
-  inf.vis     = resMgr->booleanValue( sec, tmpl.arg( "visible" ), inf.vis );
-  inf.newLine = resMgr->booleanValue( sec, tmpl.arg( "new_line" ), inf.newLine );
-
-  inf.index   = resMgr->integerValue( sec, tmpl.arg( "index" ), inf.index );
-  inf.offset  = resMgr->integerValue( sec, tmpl.arg( "offset" ), inf.offset );
-
-  inf.x       = resMgr->integerValue( sec, tmpl.arg( "x" ), inf.x );
-  inf.y       = resMgr->integerValue( sec, tmpl.arg( "y" ), inf.y );
-  inf.w       = resMgr->integerValue( sec, tmpl.arg( "width" ), inf.w );
-  inf.h       = resMgr->integerValue( sec, tmpl.arg( "height" ), inf.h );
-
-  inf.fixW    = resMgr->integerValue( sec, tmpl.arg( "fixed_width" ), inf.fixW );
-  inf.fixH    = resMgr->integerValue( sec, tmpl.arg( "fixed_height" ), inf.fixH );
-
-  int place = -1;
-  if ( !resMgr->value( sec, tmpl.arg( "place" ), place ) )
-  {
-    QString placeStr;
-    if ( resMgr->value( sec, tmpl.arg( "place" ), placeStr ) )
-      place = dockPlace( placeStr );
-  }
-
-  if ( place >= DockUnmanaged && place <= DockMinimized )
-    inf.place = place;
-
-  return true;
-}
-
-/*!
-       Name: saveGeometry [private]
-       Desc: 
-*/
-
-bool QtxDockAction::saveGeometry( QtxResourceMgr* resMgr, const QString& sec,
-                                  const QString& name, const GeomInfo& inf ) const
-{
-  if ( !resMgr || sec.isEmpty() || name.isEmpty() )
-    return false;
-
-  QString tmpl = QString( "%1.%2" ).arg( name );
-
-  resMgr->setValue( sec, tmpl.arg( "visible" ), inf.vis );
-  resMgr->setValue( sec, tmpl.arg( "new_line" ), inf.newLine );
-  resMgr->setValue( sec, tmpl.arg( "index" ), inf.index );
-  resMgr->setValue( sec, tmpl.arg( "offset" ), inf.offset );
-  resMgr->setValue( sec, tmpl.arg( "x" ), inf.x );
-  resMgr->setValue( sec, tmpl.arg( "y" ), inf.y );
-  resMgr->setValue( sec, tmpl.arg( "width" ), inf.w );
-  resMgr->setValue( sec, tmpl.arg( "height" ), inf.h );
-  resMgr->setValue( sec, tmpl.arg( "fixed_width" ), inf.fixW );
-  resMgr->setValue( sec, tmpl.arg( "fixed_height" ), inf.fixH );
-  resMgr->setValue( sec, tmpl.arg( "place" ), inf.place );
-
-  return true;
-}
-
-/*!
-       Name: collectNames [private]
-       Desc: 
-*/
-
-void QtxDockAction::collectNames( const int place, QStringList& lst ) const
-{
-  QPtrList<QDockWindow> winList;
-  QDockArea* area = dockArea( place );
-  if ( area )
-    winList = area->dockWindowList();
-  else
-    winList = mainWindow()->dockWindows( (Qt::Dock)place );
-
-  for ( QPtrListIterator<QDockWindow> it( winList ); it.current(); ++it )
-  {
-    QString name;
-    if ( myInfo.contains( it.current() ) )
-      name = myInfo[it.current()].name;
-    if ( name.isEmpty() )
-      name = windowName( it.current() );
-    if ( name.isEmpty() )
-      continue;
-
-    lst.append( name );
-  }
-}
-
-/*!
-  Updates menu of action
-*/
-void QtxDockAction::updateMenus()
-{
-  for ( MenuMap::Iterator it = myMenu.begin(); it != myMenu.end(); ++it )
-  {
-    QPopupMenu* pm = it.key();
-    MenuInfo& inf = it.data();
-
-    int toolId = findId( pm, inf.tool );
-    int dockId = findId( pm, inf.dock );
-
-    int index = pm->indexOf( dockId );
-
-    if ( isSeparate() && !inf.tool )
-      inf.tool = new QPopupMenu( pm );
-
-    pm->removeItem( dockId );
-    pm->removeItem( toolId );
-
-    if ( !isSeparate() && inf.tool )
-    {
-      delete inf.tool;
-      inf.tool = 0;
-    }
-
-    QString dock, tool;
-    splitMenuText( dock, tool );
-
-    if ( inf.dock )
-      iconSet().isNull() ? pm->insertItem ( dock, inf.dock, -1, index ) :
-                           pm->insertItem ( iconSet(), dock, inf.dock, -1, index );
-
-    if ( index >= 0 )
-      index++;
-
-    if ( inf.tool )
-      iconSet().isNull() ? pm->insertItem ( tool, inf.tool, -1, index ) :
-                          pm->insertItem ( iconSet(), tool, inf.tool, -1, index );
-  }
-}
diff --git a/src/Qtx/QtxDockAction.h b/src/Qtx/QtxDockAction.h
deleted file mode 100755 (executable)
index a18d102..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxDockAction.h
-// Author:    Sergey TELKOV
-
-#ifndef QTX_DOCKACTION_H
-#define QTX_DOCKACTION_H
-
-#include "QtxAction.h"
-
-#include <qevent.h>
-#include <qptrlist.h>
-#include <qpopupmenu.h>
-
-class QAction;
-class QDockArea;
-class QDockWindow;
-class QMainWindow;
-class QtxResourceMgr;
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QTX_EXPORT QtxDockAction : public QtxAction
-{
-  Q_OBJECT
-
-  Q_PROPERTY( bool autoAdd   READ isAutoAdd   WRITE setAutoAdd )
-  Q_PROPERTY( bool autoPlace READ isAutoPlace WRITE setAutoPlace )
-  Q_PROPERTY( bool separate  READ isSeparate  WRITE setSeparate )
-
-public:
-  QtxDockAction( QMainWindow*, const char* = 0 );
-  QtxDockAction( const QString&, const QString&, QMainWindow*, const char* = 0 );
-  QtxDockAction( const QString&, const QIconSet&, const QString&, QMainWindow*, const char* = 0 );
-  virtual ~QtxDockAction();
-
-  QMainWindow* mainWindow() const;
-
-  bool         isAutoAdd() const;
-  void         setAutoAdd( const bool );
-
-  bool         isAutoPlace() const;
-  void         setAutoPlace( const bool );
-
-  bool         isSeparate() const;
-  void         setSeparate( const bool );
-
-  virtual bool addTo( QWidget* );
-  virtual bool addTo( QWidget*, const int );
-  virtual bool removeFrom( QWidget* );
-  virtual void setMenuText( const QString& );
-
-  bool         addDockWindow( QDockWindow* );
-  bool         removeDockWindow( QDockWindow* );
-
-  virtual bool eventFilter( QObject*, QEvent* );
-
-  virtual void storeGeometry( QDockWindow* = 0 );
-  virtual void restoreGeometry( QDockWindow* = 0 ) const;
-
-  virtual void loadGeometry( QtxResourceMgr*, const QString&, const bool = true );
-  virtual void saveGeometry( QtxResourceMgr*, const QString&, const bool = true ) const;
-
-private slots:
-  void         onAboutToShow();
-  void         onToggled( bool );
-  void         onVisibilityChanged( bool );
-  void         onPopupDestroyed( QObject* );
-  void         onWindowDestroyed( QObject* );
-  void         onDockWindowPositionChanged( QDockWindow* );
-
-protected:
-  virtual bool event( QEvent* );
-
-private:
-  QAction*     action( QDockWindow* ) const;
-  QDockWindow* dockWindow( const QAction* ) const;
-
-  void         checkPopup( QPopupMenu* );
-  void         fillPopup( QPopupMenu* ) const;
-  int          findId( QPopupMenu*, QPopupMenu* ) const;
-
-  void         initialize( QMainWindow* );
-  void         updateInfo( QDockWindow* );
-  bool         isToolBar( QDockWindow* ) const;
-  void         dockWindows( QPtrList<QDockWindow>&, QMainWindow* = 0 ) const;
-
-  QString      windowName( QDockWindow* ) const;
-  void         savePlaceInfo( QDockWindow* );
-  void         loadPlaceInfo( QDockWindow* ) const;
-  void         loadPlaceInfo() const;
-
-  bool         autoAddDockWindow( QDockWindow* );
-  void         autoLoadPlaceInfo( QDockWindow* );
-
-  void         splitMenuText( QString&, QString& ) const;
-  QStringList  splitText( const QString&, const QString& ) const;
-
-  QDockArea*   dockArea( const int ) const;
-  int          dockPlace( const QString& ) const;
-
-  void         collectNames( const int, QStringList& ) const;
-
-  void         updateMenus();
-
-  bool         dockMainWindow( QMainWindow*, QObject* ) const;
-
-private:
-  enum { AutoAdd = QEvent::User, LoadArea };
-
-  typedef struct { bool vis, newLine;
-                   int place, index, offset;
-                   int x, y, w, h, fixW, fixH; } GeomInfo;
-  typedef struct { QString name; QAction* a; }   DockInfo;
-  typedef struct { QPopupMenu *dock, *tool; }    MenuInfo;
-
-  typedef QMap<QDockWindow*, DockInfo>   InfoMap;
-  typedef QMap<QString, GeomInfo>        GeomMap;
-  typedef QMap<QPopupMenu*, MenuInfo>    MenuMap;
-
-private:
-  bool         loadGeometry( QtxResourceMgr*, const QString&,
-                             const QString&, GeomInfo& ) const;
-  bool         saveGeometry( QtxResourceMgr*, const QString&,
-                             const QString&, const GeomInfo& ) const;
-  void         loadPlaceArea( const int, QMainWindow*, QDockArea*,
-                              const QPtrList<QDockWindow>&,
-                              const QMap<QDockWindow*, GeomInfo*>& ) const;
-
-private:
-  InfoMap      myInfo;
-  MenuMap      myMenu;
-  GeomMap      myGeom;
-  QMainWindow* myMain;
-  QStringList  myNames;
-
-  bool         myAutoAdd;
-  bool         mySeparate;
-  bool         myAutoPlace;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
diff --git a/src/Qtx/QtxGroupBox.cxx b/src/Qtx/QtxGroupBox.cxx
deleted file mode 100644 (file)
index 6975f77..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxGroupBox.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxGroupBox.h"
-
-#include <qhbox.h>
-#include <qlayout.h>
-#include <qtoolbutton.h>
-#include <qapplication.h>
-#include <qobjectlist.h>
-
-/*!
-  Constructor
-*/
-QtxGroupBox::QtxGroupBox( QWidget* parent, const char* name )
-: QGroupBox( parent, name ),
-myContainer( 0 )
-{
-}
-
-/*!
-  Constructor
-*/
-QtxGroupBox::QtxGroupBox( const QString& title, QWidget* parent, const char* name )
-: QGroupBox( title, parent, name ),
-myContainer( 0 )
-{
-  initialize();
-}
-
-/*!
-  Constructor
-*/
-QtxGroupBox::QtxGroupBox( int strips, Orientation o, QWidget* parent, const char* name )
-: QGroupBox( strips, o, parent, name ),
-myContainer( 0 )
-{
-  initialize();
-}
-
-/*!
-  Constructor
-*/
-QtxGroupBox::QtxGroupBox( int strips, Orientation o, const QString& title,
-                                          QWidget* parent, const char* name )
-: QGroupBox( strips, o, title, parent, name ),
-myContainer( 0 )
-{
-  initialize();
-}
-
-/*!
-  Destructor
-*/
-QtxGroupBox::~QtxGroupBox()
-{
-  delete myContainer;
-}
-
-/*!
-  Creates horizontal box as container
-*/
-void QtxGroupBox::initialize()
-{
-  myContainer = new QHBox( this, 0, WStyle_Customize | WStyle_NoBorderEx | WStyle_Tool );
-
-  updateTitle();
-}
-
-#if QT_VER < 3
-
-/*!
-  \return the width of the empty space between the items in the group and the frame of the group
-*/
-int QtxGroupBox::insideMargin() const
-{
-  int m = 0;
-  if ( layout() )
-    m = layout()->margin();
-  return m;
-}
-
-/*!
-  \return the width of the empty space between each of the items in the group
-*/
-int QtxGroupBox::insideSpacing() const
-{
-  int s = 0;
-  if ( layout() )
-    s = layout()->spacing();
-  return s;
-}
-
-/*!
-  Sets the width of the empty space between the items in the group and the frame of the group
-*/
-void QtxGroupBox::setInsideMargin( int m )
-{
-  if ( layout() )
-    layout()->setMargin( m );
-}
-
-/*!
-  Sets the width of the empty space between each of the items in the group
-*/
-void QtxGroupBox::setInsideSpacing( int s )
-{
-  if ( layout() )
-    layout()->setSpacing( s );
-}
-
-#endif
-
-/*!
-  Inserts title widget
-  \param wid - new title widget
-*/
-void QtxGroupBox::insertTitleWidget( QWidget* wid )
-{
-  if ( !myContainer )
-    return;
-
-  wid->reparent( myContainer, QPoint( 0, 0 ), true );
-  wid->installEventFilter( this );
-
-  updateTitle();
-}
-
-/*!
-  Removes title widget
-  \param wid - title widget
-*/
-void QtxGroupBox::removeTitleWidget( QWidget* wid )
-{
-  if ( !myContainer || wid->parentWidget() != myContainer )
-    return;
-
-  wid->reparent( 0, QPoint( 0, 0 ), false );
-  wid->removeEventFilter( this );
-
-  updateTitle();
-}
-
-/*!
-  Calculates margin
-*/
-void QtxGroupBox::adjustInsideMargin()
-{
-  QApplication::sendPostedEvents( myContainer, QEvent::ChildInserted );
-
-  myContainer->resize( myContainer->minimumSizeHint() );
-
-  setInsideMargin( myContainer->height() );
-}
-
-/*!
-  Sets the alignment of the group box title
-*/
-void QtxGroupBox::setAlignment( int align )
-{
-  QGroupBox::setAlignment( align );
-
-  updateTitle();
-}
-
-/*!
-  Sets title of groop box
-*/
-void QtxGroupBox::setTitle( const QString& title )
-{
-  QGroupBox::setTitle( title );
-
-  updateTitle();
-}
-
-/*!
-  Changes the layout of the group box
-  \param strips - number of column/rows
-  \param o - orientation
-*/
-void QtxGroupBox::setColumnLayout( int strips, Orientation o )
-{
-  if ( myContainer )
-    myContainer->reparent( 0, QPoint( 0, 0 ), false );
-
-  QGroupBox::setColumnLayout( strips, o );
-
-  if ( myContainer )
-    myContainer->reparent( this, QPoint( 0, 0 ), false );
-
-  updateTitle();
-}
-
-/*!
-  Shows group box
-*/
-void QtxGroupBox::show()
-{
-  QGroupBox::show();
-
-  updateTitle();
-}
-
-/*!
-  Updates group box
-*/
-void QtxGroupBox::update()
-{
-  QGroupBox::update();
-
-  updateTitle();
-}
-
-/*!
-  \return the recommended size for the widget
-*/
-QSize QtxGroupBox::sizeHint() const
-{
-  QSize sz = QGroupBox::sizeHint();
-
-  int sw = titleSize().width();
-
-  if ( myContainer )
-  {
-    if ( alignment() == AlignCenter )
-      sw += 2 * ( myContainer->width() + 5 );
-    else
-      sw += 1 * ( myContainer->width() + 5 );
-  }
-
-  sw += frameRect().left();
-
-  return QSize( QMAX( sz.width(), sw ), sz.height() );
-}
-
-/*!
-  \return the recommended minimum size for the widget
-*/
-QSize QtxGroupBox::minimumSizeHint() const
-{
-  QSize sz = QGroupBox::minimumSizeHint();
-
-  int sw = titleSize().width() + myContainer ? myContainer->width() + 5 : 0;
-
-  if ( myContainer )
-  {
-    if ( alignment() == AlignCenter )
-      sw += 2 * ( myContainer->width() + 5 );
-    else
-      sw += 1 * ( myContainer->width() + 5 );
-  }
-
-  sw += frameRect().left();
-
-  return QSize( QMAX( sz.width(), sw ), sz.height() );
-}
-
-/*!
-  Custom event filter
-*/
-bool QtxGroupBox::eventFilter( QObject* obj, QEvent* e )
-{
-  QEvent::Type type = e->type();
-  if ( myContainer && obj->parent() == myContainer &&
-       ( type == QEvent::Show || type == QEvent::ShowToParent ||
-         type == QEvent::Hide || type == QEvent::HideToParent ) )
-    QApplication::postEvent( this, new QCustomEvent( QEvent::User ) );
-
-  return QGroupBox::eventFilter( obj, e );
-}
-
-/*!
-  Custom resize event filter
-*/
-void QtxGroupBox::resizeEvent( QResizeEvent* e )
-{
-  QGroupBox::resizeEvent( e );
-
-  updateTitle();
-}
-
-/*!
-  Custom child event filter
-*/
-void QtxGroupBox::childEvent( QChildEvent* e )
-{
-  if ( e->type() == QEvent::ChildInserted && e->child() == myContainer )
-    return;
-
-  QGroupBox::childEvent( e );
-}
-
-/*!
-  Event filter of custom items
-*/
-void QtxGroupBox::customEvent( QCustomEvent* )
-{
-  updateTitle();
-}
-
-/*!
-  On frame changed
-*/
-void QtxGroupBox::frameChanged()
-{
-  updateTitle();
-}
-
-/*!
-  \return size of title
-*/
-QSize QtxGroupBox::titleSize() const
-{
-  QSize sz( 0, 0 );
-
-  if ( layout() )
-  {
-    QSpacerItem* si = 0;
-    for ( QLayoutIterator it = layout()->iterator(); it.current() && !si; ++it )
-      si = it.current()->spacerItem();
-    if ( si )
-      sz = si->sizeHint();
-  }
-
-  int w = sz.width();
-  int h = sz.height() + insideMargin();
-
-  return QSize( w, h );
-}
-
-/*!
-  Updates title
-*/
-void QtxGroupBox::updateTitle()
-{
-  if ( !myContainer )
-    return;
-
-  int align = alignment();
-  if ( align == AlignAuto )
-    align = QApplication::reverseLayout() ? AlignRight : AlignLeft;
-
-  if ( title().isEmpty() )
-    align = AlignRight;
-
-  QSize ts = titleSize();
-
-  int m = 5;
-
-  int w = frameRect().width() - ts.width();
-  if ( align == AlignCenter )
-    w = w / 2;
-
-  w -= m;
-
-  QApplication::sendPostedEvents( myContainer, QEvent::ChildInserted );
-  myContainer->resize( myContainer->minimumSizeHint() );
-
-  bool vis = false;
-  const QObjectList* list = myContainer->children();
-  if ( list )
-  {
-    for ( QObjectListIt it( *list ); it.current() && !vis; ++it )
-      vis = it.current()->isWidgetType() &&
-            ((QWidget*)it.current())->isVisibleTo( myContainer );
-  }
-
-  if ( myContainer->height() > ts.height() || myContainer->width() > w || !vis )
-    myContainer->hide();
-  else
-  {
-    int x = 0;
-    if ( align == AlignRight )
-      x = frameRect().left() + m;
-    else
-      x = frameRect().right() - myContainer->width() - m;
-
-    int y = frameRect().top() - ( myContainer->height() - frameWidth() ) / 2;
-
-    QPoint pos( x, QMAX( 0, y ) );
-    pos = mapToGlobal( pos );
-    if ( myContainer->parentWidget() )
-      pos = myContainer->parentWidget()->mapFromGlobal( pos );
-    myContainer->move( pos );
-    myContainer->show();
-  }
-
-  updateGeometry();
-}
diff --git a/src/Qtx/QtxGroupBox.h b/src/Qtx/QtxGroupBox.h
deleted file mode 100644 (file)
index 04f9bb2..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxGroupBox.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXGROUPBOX_H
-#define QTXGROUPBOX_H
-
-#include "Qtx.h"
-
-#include <qgroupbox.h>
-#include <qwidgetlist.h>
-
-class QTX_EXPORT QtxGroupBox : public QGroupBox
-{
-  Q_OBJECT
-
-public:
-  QtxGroupBox( QWidget* = 0, const char* = 0 );
-  QtxGroupBox( const QString&, QWidget* = 0, const char* = 0 );
-  QtxGroupBox( int, Orientation, QWidget* = 0, const char* = 0 );
-  QtxGroupBox( int, Orientation, const QString&, QWidget* = 0, const char* = 0 );
-  virtual ~QtxGroupBox();
-
-#if QT_VER < 3
-  int           insideMargin() const;
-  int           insideSpacing() const;
-  void          setInsideMargin( int );
-  void          setInsideSpacing( int );
-#endif
-
-  virtual void  setAlignment( int );
-  virtual void  setTitle( const QString& );
-  virtual void  setColumnLayout( int, Orientation );
-
-  virtual void  insertTitleWidget( QWidget* );
-  virtual void  removeTitleWidget( QWidget* );
-
-  virtual void  show();
-  virtual void  update();
-
-  void          adjustInsideMargin();
-
-  virtual QSize sizeHint() const;
-  virtual QSize minimumSizeHint() const;
-
-  virtual bool  eventFilter( QObject*, QEvent* );
-
-protected:
-  virtual void  frameChanged();
-  virtual void  childEvent( QChildEvent* );
-  virtual void  resizeEvent( QResizeEvent* );
-  virtual void  customEvent( QCustomEvent* );
-
-private:
-  void          initialize();
-  void          updateTitle();
-  QSize         titleSize() const;
-
-private:
-  QWidget*      myContainer;
-};
-
-#endif
diff --git a/src/Qtx/QtxIntSpinBox.cxx b/src/Qtx/QtxIntSpinBox.cxx
deleted file mode 100755 (executable)
index e002377..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxIntSpinBox.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxIntSpinBox.h"
-
-#include <qlineedit.h>
-#include <qapplication.h>
-
-/*!
-  Constructor
-*/
-QtxIntSpinBox::QtxIntSpinBox( QWidget* parent, const char* name )
-: QSpinBox( parent, name ),
-myCleared( false ),
-myBlocked( false )
-{
-  connect( editor(), SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
-}
-
-/*!
-  Constructor
-*/
-QtxIntSpinBox::QtxIntSpinBox( int min, int max, int step, QWidget* parent, const char* name )
-: QSpinBox( min, max, step, parent, name ),
-myCleared( false ),
-myBlocked( false )
-{
-  connect( editor(), SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
-}
-
-/*!
-  Destructor
-*/
-QtxIntSpinBox::~QtxIntSpinBox()
-{
-}
-
-/*!
-  \return true if spin box is cleared
-*/
-bool QtxIntSpinBox::isCleared() const
-{
-  return myCleared;
-}
-
-/*!
-  Changes cleared status of spin box
-  \param on - new status
-*/
-void QtxIntSpinBox::setCleared( const bool on )
-{
-  if ( myCleared == on )
-    return;
-    
-  myCleared = on;
-  updateDisplay();
-}
-
-/*!
-  Changes value of spin box
-  \param val - new value of spin box
-*/
-void QtxIntSpinBox::setValue( int value )
-{
-  myCleared = false;
-
-  QSpinBox::setValue( value );
-}
-
-/*!
-  Custom event filter
-*/
-bool QtxIntSpinBox::eventFilter( QObject* o, QEvent* e )
-{
-  if ( !myCleared || o != editor() || !editor()->text().stripWhiteSpace().isEmpty() )
-    return QSpinBox::eventFilter( o, e );
-
-  if ( e->type() == QEvent::FocusOut || e->type() == QEvent::Leave || e->type() == QEvent::Hide )
-    return false;
-
-  if ( e->type() == QEvent::KeyPress &&
-            ( ((QKeyEvent*)e)->key() == Key_Tab || ((QKeyEvent*)e)->key() == Key_BackTab ) )
-  {
-    QApplication::sendEvent( this, e );
-    return true;
-  }
-
-  return QSpinBox::eventFilter( o, e );
-}
-
-/*!
-  Sets integer value by text in editor
-*/
-void QtxIntSpinBox::interpretText()
-{
-  myCleared = false;
-
-  QSpinBox::interpretText();
-}
-
-/*!
-  Updates text of editor
-*/
-void QtxIntSpinBox::updateDisplay()
-{
-  if ( myBlocked )
-    return;
-
-  bool block = myBlocked;
-  myBlocked = true;
-
-  QSpinBox::updateDisplay();
-
-  if ( myCleared )
-    editor()->clear();
-  else if ( editor()->hasFocus() )
-  {
-    if ( editor()->text() == specialValueText() )
-      editor()->selectAll();
-    else
-      editor()->setSelection( prefix().length(), editor()->text().length() - prefix().length() - suffix().length() );
-  }
-
-  myBlocked = block;
-}
-
-/*!
-  Custom handler for leave event
-*/
-void QtxIntSpinBox::leaveEvent( QEvent* e )
-{
-  if ( !myCleared )
-    QSpinBox::leaveEvent( e );
-}
-
-/*!
-  Custom handler for wheel event
-*/
-void QtxIntSpinBox::wheelEvent( QWheelEvent* e )
-{
-  if ( !isEnabled() )
-    return;
-
-  QSpinBox::wheelEvent( e );
-  updateDisplay();
-}
-
-/*!
-  SLOT: called if text is changed
-*/
-void QtxIntSpinBox::onTextChanged( const QString& )
-{
-  if ( !myBlocked )
-    myCleared = false;
-}
diff --git a/src/Qtx/QtxIntSpinBox.h b/src/Qtx/QtxIntSpinBox.h
deleted file mode 100755 (executable)
index 7f083d5..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxIntSpinBox.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXINTSPINBOX_H
-#define QTXINTSPINBOX_H
-
-#include "Qtx.h"
-
-#include <qspinbox.h>
-
-class QTX_EXPORT QtxIntSpinBox : public QSpinBox
-{
-    Q_OBJECT
-
-public:
-  QtxIntSpinBox( QWidget* = 0, const char* = 0 );
-  QtxIntSpinBox( int, int, int = 1, QWidget* = 0, const char* = 0 );
-  virtual ~QtxIntSpinBox();
-    
-  bool         isCleared() const;
-  virtual void setCleared( const bool );
-    
-  virtual bool eventFilter( QObject*, QEvent* );
-    
-public slots:
-  virtual void setValue( int );
-
-protected slots:
-  virtual void onTextChanged( const QString& );
-  
-protected:
-  virtual void interpretText();
-  virtual void updateDisplay();
-  virtual void leaveEvent( QEvent* );
-  virtual void wheelEvent( QWheelEvent* );
-    
-private:
-  bool         myCleared;
-  bool         myBlocked;
-};
-
-#endif
diff --git a/src/Qtx/QtxListAction.cxx b/src/Qtx/QtxListAction.cxx
deleted file mode 100755 (executable)
index 52f0930..0000000
+++ /dev/null
@@ -1,1124 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxListAction.cxx
-// Author:    Sergey TELKOV (Based on code by Eugene AKSENOV)
-
-#include "QtxListAction.h"
-
-#include <qvbox.h>
-#include <qlabel.h>
-#include <qlayout.h>
-#include <qtooltip.h>
-#include <qlistbox.h>
-#include <qtoolbar.h>
-#include <qwmatrix.h>
-#include <qpopupmenu.h>
-#include <qtoolbutton.h>
-#include <qobjectlist.h>
-#include <qapplication.h>
-
-static const char* list_arrow_icon[] = {
-"10 6 2 1",
-"# c #000000",
-"  c none",
-"          ",
-" #######  ",
-"  #####   ",
-"   ###    ",
-"    #     ",
-"          "
-};
-
-/*!
-  \class QtxListAction::ToolButton
-  Custom tool button
-*/
-class QtxListAction::ToolButton : public QToolButton
-{
-public:
-  ToolButton( QtxListAction*, QWidget* = 0, const char* = 0 );
-  virtual ~ToolButton();
-
-  virtual QSize sizeHint() const;
-
-private:
-  QtxListAction* myAction;
-};
-
-/*!
-  Constructor
-*/
-QtxListAction::ToolButton::ToolButton( QtxListAction* a, QWidget* parent, const char* name )
-: QToolButton( parent, name ),
-myAction( a )
-{
-  setIconSet( QPixmap( list_arrow_icon ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListAction::ToolButton::~ToolButton()
-{
-  if ( myAction )
-    myAction->controlDeleted( this );
-}
-
-/*!
-  \return the recommended size for the widget
-*/
-QSize QtxListAction::ToolButton::sizeHint() const
-{
-  QSize sz = iconSet().pixmap().size();
-  return QSize( sz.width() + 2, sz.height() + 2 );
-}
-
-/*!
-  Constructs an list action with given parent and name. If toggle is true the
-  action will be a toggle action, otherwise it will be a command action.
-*/
-QtxListAction::QtxListAction( QObject* parent, const char* name, bool toggle )
-: QtxAction( parent, name, toggle ),
-myFrame( 0 ),
-myMode( Item ),
-myRaise( false )
-{
-  initialize();
-}
-
-/*!
-  This constructor creates an action with the following properties: the
-  description text, the icon or iconset icon, the menu text and keyboard
-  accelerator. It is a child of given parent and named specified name.
-  If toggle is true the action will be a toggle action, otherwise it will
-  be a command action.
-*/
-
-QtxListAction::QtxListAction( const QString& text, const QIconSet& icon,
-                              const QString& menuText, int accel,
-                              QObject* parent, const char* name, bool toggle )
-: QtxAction( text, icon, menuText, accel, parent, name, toggle ),
-myFrame( 0 ),
-myMode( Item ),
-myRaise( false )
-{
-  initialize();
-}
-
-/*!
-  This constructor creates an action with the following properties: the
-  description text, the menu text and keyboard accelerator. It is a child
-  of given parent and named specified name. If toggle is true the action
-  will be a toggle action, otherwise it will be a command action.
-*/
-
-QtxListAction::QtxListAction( const QString& text, const QString& menuText,
-                              int accel, QObject* parent, const char* name, bool toggle )
-: QtxAction( text, menuText, accel, parent, name, toggle ),
-myFrame( 0 ),
-myMode( Item ),
-myRaise( false )
-{
-  initialize();
-}
-
-/*!
-  Destructor.
-*/
-
-QtxListAction::~QtxListAction()
-{
-  if ( myFrame ) {
-    myFrame->myAction = 0;
-    delete myFrame;
-    myFrame = 0;
-  }
-}
-
-/*!
-       Name: popupMode [public]
-       Desc: Returns popup mode. If popup mode "Item" (default) then action will
-             be added into popup menu as menu item. If popup mode "SubMenu" then
-                   action will be added into popup menu as sub menu with list of items.
-*/
-
-int QtxListAction::popupMode() const
-{
-  return myMode;
-}
-
-/*!
-       Name: setPopupMode [public]
-       Desc: Set the popup mode. Popup mode define way in this action will be
-             added into popup menu. This function should be used before addTo.
-*/
-
-void QtxListAction::setPopupMode( const int mode )
-{
-  myMode = mode;
-}
-
-/*!
-  \return list of names
-*/
-QStringList QtxListAction::names() const
-{
-  QStringList lst;
-  if ( myFrame )
-    lst = myFrame->names();
-  return lst;
-}
-
-/*!
-       Name: addNames [public]
-       Desc: Fills the list of actions. Removes the old contents from
-             the list if 'clear' is true.
-*/
-
-void QtxListAction::addNames( const QStringList& names, bool clear )
-{
-  if ( !myFrame )
-    return;
-
-  if ( clear )
-    myFrame->clear();
-
-       myFrame->addNames( names );
-
-       QStringList lst = myFrame->names();
-       for ( PopupsMap::Iterator pit = myPopups.begin(); pit != myPopups.end(); ++pit )
-       {
-               int i = 1;
-               QPopupMenu* pm = (QPopupMenu*)pit.key();
-               for ( QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it )
-                       pit.data().popup->insertItem( *it, i++ );
-               pm->setItemEnabled( pit.data().id, isEnabled() && pit.data().popup->count() );
-  }
-
-       for ( ButtonsMap::Iterator bit = myButtons.begin(); bit != myButtons.end(); ++bit )
-       {
-               bit.data().drop->setEnabled( isEnabled() && !lst.isEmpty() );
-               bit.data().main->setEnabled( isEnabled() && !lst.isEmpty() );
-       }
-}
-
-/*!
-       Name: addTo [virtual public]
-       Desc: Adds this control to 'popup' or 'toolbar'.
-*/
-
-bool QtxListAction::addTo( QWidget* w )
-{
-       if ( myButtons.contains( w ) || myPopups.contains( w ) )
-               return false;
-
-       if ( !w->inherits( "QPopupMenu" ) || popupMode() != SubMenu )
-               if ( !QtxAction::addTo( w ) )
-                       return false;
-
-#if QT_VER < 3
-  if ( w->children() )
-    addedTo( (QWidget*)w->children()->getLast(), w );
-#endif
-
-  if ( w->inherits( "QToolBar" ) )
-  {
-               Buttons& entry = myButtons[w];
-               QHBox* dropWrap = new QHBox( w );
-    entry.drop = new ToolButton( this, dropWrap, "qt_dockwidget_internal" );
-
-    entry.drop->setTextLabel( text() );
-    entry.drop->setToggleButton( true );
-    entry.drop->setAutoRaise( entry.main->autoRaise() );
-
-    entry.main->setEnabled( isEnabled() && !myFrame->names().isEmpty() );
-    entry.drop->setEnabled( isEnabled() && !myFrame->names().isEmpty() );
-
-               entry.main->installEventFilter( this );
-    entry.drop->installEventFilter( this );
-
-               QToolTip::add( entry.drop, toolTip(), myTipGroup, statusTip() );
-
-    connect( entry.drop, SIGNAL( toggled( bool ) ), this, SLOT( onExpand( bool ) ) );
-  }
-       else if ( w->inherits( "QPopupMenu" ) && popupMode() == SubMenu )
-       {
-               Popups entry;
-               QPopupMenu* pm = (QPopupMenu*)w;
-
-               entry.popup = new QPopupMenu( pm );
-               entry.id = pm->insertItem( text(), entry.popup );
-
-               int i = 1;
-               QStringList lst = myFrame->names();
-               for ( QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it )
-               {
-                       int id = entry.popup->insertItem( *it );
-                       entry.popup->setItemParameter( id, i++ );
-               }
-               pm->setItemEnabled( entry.id, isEnabled() && entry.popup->count() );
-               myPopups.insert( w, entry );
-
-               connect( entry.popup, SIGNAL( activated( int ) ), this, SLOT( onActivated( int ) ) );
-       }
-
-#if QT_VER >= 3
-       connect( w, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
-#endif
-
-    return true;
-}
-
-/*!
-       Name: addTo [virtual public]
-       Desc: Adds this control to 'popup' or 'toolbar'. Allow to specify index
-             for adding into 'popup'.
-*/
-
-bool QtxListAction::addTo( QWidget* w, const int idx )
-{
-  return QtxAction::addTo( w, idx );
-}
-
-/*!
-       Name: removeFrom [virtual public]
-       Desc: Removes this control from 'popup' or 'toolbar'.
-*/
-
-bool QtxListAction::removeFrom( QWidget* w )
-{
-  if ( !QtxAction::removeFrom( w ) )
-    return false;
-
-  if ( w->inherits( "QToolBar" ) )
-  {
-    if ( myFrame )
-      myFrame->hide();
-
-    if ( myButtons.contains( w ) )
-    {
-      Buttons& entry = myButtons[w];
-
-      if ( entry.drop->parent() && entry.drop->parent()->parent() == w )
-        delete entry.drop->parent();
-      else
-        delete entry.drop;
-    }
-    myButtons.remove( w );
-  }
-  else if ( w->inherits( "QPopupMenu" ) )
-    myPopups.remove( w );
-
-#if QT_VER >= 3
-       disconnect( w, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
-#endif
-
-  return true;
-}
-
-/*!
-       Name: setEnabled [virtual public slot]
-       Desc: Enables/disables this control.
-*/
-
-void QtxListAction::setEnabled( bool enable )
-{
-  QtxAction::setEnabled( enable );
-
-       bool isOn = enable && !myFrame->names().isEmpty();
-
-       for ( ButtonsMap::Iterator bit = myButtons.begin(); bit != myButtons.end(); ++bit )
-       {
-               bit.data().drop->setEnabled( isOn );
-               bit.data().main->setEnabled( isOn );
-       }
-
-       for ( PopupsMap::Iterator pit = myPopups.begin(); pit != myPopups.end(); ++pit )
-       {
-               QPopupMenu* cont = (QPopupMenu*)pit.key();
-               cont->setItemEnabled( pit.data().id, isOn );
-  }
-}
-
-/*!
-       Name: setMaxLines [public]
-       Desc: Sets max number of lines that list frame shows
-                 without vertical scroll bar. Default value is 5.
-*/
-
-void QtxListAction::setMaxLines( int nlines )
-{
-  myFrame->setMaxLines( nlines );
-}
-
-/*!
-       Name: setMaxLineChars [public]
-       Desc: Sets max number of characters in a line which list frame shows
-             without truncation. Default value is 12 (the widest char size is used).
-*/
-
-void QtxListAction::setMaxLineChars( int nchars )
-{
-  myFrame->setMaxLineChars( nchars );
-}
-
-/*!
-       Name: setComment [public]
-       Desc: Sets the format Qt string for comments displayed under the list
-             of actions for one action and for several actions.
-                   Ex. "Undo %1 actions" format string will work as "Undo 3 actions"
-                   when 3 actions are selected. The default format string is "%1".
-*/
-
-void QtxListAction::setComment( const QString& c, const QString& sc )
-{
-  if ( !myFrame )
-    return;
-
-  myFrame->setSingleComment( sc.isEmpty() ? c : sc );
-       myFrame->setMultipleComment( c );
-}
-
-/*!
-       Name: eventFilter [virtual public]
-       Desc: Reimplemented to paint the tool buttons in 2D/3D.
-*/
-
-bool QtxListAction::eventFilter( QObject* o, QEvent* e )
-{
-  if ( !myRaise && ( e->type() == QEvent::Enter || e->type() == QEvent::Leave ) )
-  {
-               QWidget* obj = 0;
-               QWidget* wid = widget( (QWidget*)o );
-               if ( o == mainButton( wid ) )
-                       obj = dropButton( wid );
-               else if ( o == dropButton( wid ) )
-                       obj = mainButton( wid );
-
-               if ( obj )
-               {
-                       myRaise = true;
-                       QApplication::sendEvent( obj, e );
-            obj->repaint();
-                       myRaise = false;
-               }
-  }
-  return QObject::eventFilter( o, e );
-}
-
-/*!
-       Name: addedTo [protected]
-       Desc: Reimplemented for internal reasons.
-*/
-
-void QtxListAction::addedTo( QWidget* actionWidget, QWidget* container )
-{
-#if QT_VER >= 3
-       QtxAction::addedTo( actionWidget, container );
-#endif
-
-       if ( !container->inherits( "QToolBar" ) )
-               return;
-
-       Buttons entry;
-       entry.main = (QToolButton*)actionWidget;
-
-       myButtons.insert( container, entry );
-}
-
-/*!
-       Name: initialize [private]
-       Desc: Initialization of object QtxListAction.
-*/
-
-void QtxListAction::initialize()
-{
-       myTipGroup = new QToolTipGroup( this );
-
-       myFrame = new QtxListFrame( this, qApp->mainWidget() );
-  myFrame->setMaxLines( 5 );
-  myFrame->setMaxLineChars( 7 );
-
-       myFrame->hide();
-
-       connect( myFrame, SIGNAL( hided() ), this, SLOT( onHided() ) );
-  connect( this, SIGNAL( activated() ), this, SLOT( onSingle() ) );
-       connect( myFrame, SIGNAL( selected( int ) ), this, SLOT( onMultiple( int ) ) );
-
-       connect( myTipGroup, SIGNAL( removeTip() ), this, SLOT( clearStatusText() ) );
-       connect( myTipGroup, SIGNAL( showTip( const QString& ) ), this, SLOT( showStatusText( const QString& ) ) );
-}
-
-/*!
-       Name: onSingle [private slot]
-       Desc: Called when a single action is selected.
-*/
-
-void QtxListAction::onSingle()
-{
-  emit activated( 1 );
-}
-
-/*!
-       Name: onMultiple [private slot]
-       Desc: Called when multiple actions are selected.
-*/
-
-void QtxListAction::onMultiple( int numActions )
-{
-  if ( myFrame )
-    myFrame->hide();
-
-  if ( numActions > 0 )
-    emit activated( numActions );
-}
-
-/*!
-       Name: onExpand [private slot]
-       Desc: Activates the list of actions.
-*/
-
-void QtxListAction::onExpand( bool on )
-{
-       const QObject* obj = sender();
-  if ( on )
-  {
-    QWidget* wid = widget( (QToolButton*)obj );
-               QToolButton* main = mainButton( wid );
-    myFrame->setOwner( main );
-               if ( main )
-                       myFrame->show();
-  }
-  else
-    myFrame->hide();
-}
-
-/*!
-  SLOT: called when frame is hidden
-*/
-void QtxListAction::onHided()
-{
-  for ( ButtonsMap::Iterator bit = myButtons.begin(); bit != myButtons.end(); ++bit )
-       {
-    bool block = bit.data().drop->signalsBlocked();
-    bit.data().drop->blockSignals( true );
-    bit.data().drop->setOn( false );
-    bit.data().drop->blockSignals( block );
-  }
-}
-
-/*!
-       Name: onActivated [private slot]
-       Desc: Called when a sub menu item is activated.
-*/
-
-void QtxListAction::onActivated( int id )
-{
-       QPopupMenu* pm = (QPopupMenu*)sender();
-       int num = pm->itemParameter( id );
-       if ( num > 0 )
-               emit activated( num );
-}
-
-/*!
-       Name: onDestroyed [private slot]
-       Desc: Called when a container widget is destroyed.
-*/
-
-void QtxListAction::onDestroyed( QObject* obj )
-{
-       if ( !obj->isWidgetType() )
-               return;
-
-       myPopups.remove( (QWidget*)obj );
-       myButtons.remove( (QWidget*)obj );
-}
-
-/*!
-       Name: widget [private]
-       Desc: Returns container widget for specified control.
-*/
-
-QWidget* QtxListAction::widget( QWidget* obj ) const
-{
-       QWidget* wid = 0;
-       for ( PopupsMap::ConstIterator pit = myPopups.begin(); pit != myPopups.end() && !wid; ++pit )
-               if ( pit.data().popup == obj )
-                       wid = pit.key();
-
-       for ( ButtonsMap::ConstIterator bit = myButtons.begin(); bit != myButtons.end() && !wid; ++bit )
-               if ( bit.data().main == obj || bit.data().drop == obj )
-                       wid = bit.key();
-
-       return wid;
-}
-
-/*!
-       Name: listPopup [private]
-       Desc: Returns sub popup menu widget for specified container.
-*/
-
-QPopupMenu* QtxListAction::listPopup( QWidget* wid ) const
-{
-       QPopupMenu* p = 0;
-       if ( myPopups.contains( wid ) )
-               p = myPopups[wid].popup;
-       return p;
-}
-
-/*!
-       Name: mainButton [private]
-       Desc: Returns main tool button for specified container.
-*/
-
-QToolButton* QtxListAction::mainButton( QWidget* wid ) const
-{
-       QToolButton* mb = 0;
-       if ( myButtons.contains( wid ) )
-               mb = myButtons[wid].main;
-       return mb;
-}
-
-/*!
-       Name: dropButton [private]
-       Desc: Returns drop tool button for specified container.
-*/
-
-QToolButton* QtxListAction::dropButton( QWidget* wid ) const
-{
-       QToolButton* db = 0;
-       if ( myButtons.contains( wid ) )
-               db = myButtons[wid].drop;
-       return db;
-}
-
-/*!
-       Name: controlDeleted [private]
-       Desc: Called when action child controls deleted.
-*/
-
-void QtxListAction::controlDeleted( QWidget* wid )
-{
-  QWidget* w = 0;
-  for ( ButtonsMap::Iterator it = myButtons.begin(); it != myButtons.end() && !w; ++it )
-  {
-    if ( it.data().main == wid || it.data().drop == wid )
-      w = it.key();
-  }
-
-  if ( w )
-  {
-    if ( myFrame )
-      myFrame->hide();
-
-    myButtons.remove( w );
-  }
-}
-
-/*!
-  \class QtxListFrame
-  Frame for the list of actions
-*/
-class QtxListFrame::ScrollEvent : public QCustomEvent
-{
-public:
-       enum { Scroll = User + 1 };
-
-       ScrollEvent( bool down ) : QCustomEvent( Scroll ), myDown( down ) {};
-       virtual ~ScrollEvent() {};
-
-       bool isDown() const { return myDown; };
-
-private:
-       bool myDown;
-};
-
-/*!
-       Class: QtxListAction
-       Level: Public
-*/
-
-/*!
-    Constructor
-*/
-QtxListFrame::QtxListFrame( QtxListAction* a, QWidget* parent, WFlags f )
-: QFrame( parent, 0, WStyle_Customize | WStyle_NoBorderEx | WType_Popup | WStyle_Tool | WStyle_StaysOnTop ),
-myList( 0 ),
-myOwner( 0 ),
-myAction( a ),
-myComment( 0 ),
-myMaxLines( 5 ),
-myMaxLineChars( 10 ),
-myScrollVal( 0 ),
-myScrollBlock( false )
-{
-  QVBoxLayout* theLayout = new QVBoxLayout( this, 3 );
-       theLayout->setResizeMode( QLayout::FreeResize );
-
-  myList = new QListBox( this );
-  myList->setSelectionMode( QListBox::Multi );
-  myList->setHScrollBarMode( QScrollView::AlwaysOff );
-       myList->setFocusPolicy( NoFocus );
-
-       QPalette p = myList->palette();
-       p.setColor( QPalette::Inactive, QColorGroup::Highlight,
-                                     p.color( QPalette::Active, QColorGroup::Highlight ) );
-       p.setColor( QPalette::Inactive, QColorGroup::HighlightedText,
-                                     p.color( QPalette::Active, QColorGroup::HighlightedText ) );
-       myList->setPalette( p );
-
-  /*  We'll have the vertical scroll bar only and
-      truncate the names which are too wide */
-  connect( myList, SIGNAL( contentsMoving( int, int ) ), this, SLOT( onScroll( int, int ) ) );
-
-  myComment = new QLabel( this );
-  myComment->setFrameStyle( Panel | Sunken );
-  myComment->setAlignment( AlignCenter );
-  myMultipleComment = "%1";
-
-  theLayout->addWidget( myList );
-  theLayout->addWidget( myComment );
-
-  setFrameStyle( Panel | Raised );
-}
-
-/*!
-  Destructor
-*/
-QtxListFrame::~QtxListFrame()
-{
-  if ( myAction )
-    myAction->myFrame = 0;
-}
-
-/*!
-    Clears list of names [ public ]
-*/
-
-void QtxListFrame::clear()
-{
-       myNames.clear();
-       setNames( myNames );
-}
-
-/*!
-    Adds a names to the list. Truncates the name to fit to the frame width.
-    Use QtxListAction::setMaxLineChar( int ) to set the width in characters. [ public ]
-*/
-  
-void QtxListFrame::addNames( const QStringList& names )
-{
-       for ( QStringList::ConstIterator it = names.begin(); it != names.end(); ++it )
-               myNames.append( *it );
-       setNames( myNames );
-}
-
-/*!
-    Sets a names to the list. Truncates the name to fit to the frame width.
-    Use QtxListAction::setMaxLineChar( int ) to set the width in characters. [ public ]
-*/
-
-void QtxListFrame::setNames( const QStringList& names )
-{
-  if ( !myList )
-               return;
-
-       myList->clear();
-
-       for ( QStringList::ConstIterator it = names.begin(); it != names.end(); ++it )
-       {
-               QString s = *it;
-    QFontMetrics fm = myList->fontMetrics();
-    int maxW = myMaxLineChars * fm.maxWidth();
-    int w = fm.width( s );
-    if ( w > maxW )
-    {
-      QString extra( "..." );
-      int len = s.length();
-      int extraLen = fm.width( extra ) + 1;
-      while ( true )
-      {
-        w = fm.width( s, --len );
-        if ( w + extraLen < maxW )
-        {
-          s = s.left( len );
-          break;
-        }
-      }
-      s += extra;
-    }
-    myList->insertItem( s );
-  }
-}
-
-/*!
-  \return list of names
-*/
-const QStringList QtxListFrame::names() const
-{
-       return myNames;
-}
-
-/*!
-    Sets max number of lines shown without activation of vertical scroll bar. [ public ]
-*/
-
-void QtxListFrame::setMaxLines( int maxLines )
-{
-  myMaxLines = maxLines;
-}
-
-/*!
-    Sets max number of chars in line ( the rest will be truncated ). [ public ]
-*/
-
-void QtxListFrame::setMaxLineChars( int maxChars )
-{
-       if ( myMaxLineChars == maxChars )
-               return;
-
-  myMaxLineChars = maxChars;
-       setNames( myNames );
-}
-
-/*!
-    Sets the format of single comment. [ public ]
-*/
-
-void QtxListFrame::setSingleComment( const QString& comment )
-{
-  mySingleComment = comment;
-       setNames( myNames );
-  updateComment();
-}
-
-/*!
-    Sets the format of multiple comment. [ public ]
-*/
-
-void QtxListFrame::setMultipleComment( const QString& comment )
-{
-  myMultipleComment = comment;
-       setNames( myNames );
-  updateComment();
-}
-
-/*!
-    Updates comment display. [ public ]
-*/
-
-void QtxListFrame::updateComment()
-{
-       QString com;
-       int selNum = selected();
-       if ( selNum > 1 )
-               com = myMultipleComment;
-       else if ( selNum > 0 && !mySingleComment.isEmpty() )
-               com = mySingleComment;
-
-       if ( !com.isEmpty() )
-               com = com.arg( selNum );
-
-  myComment->setText( com );
-}
-
-/*!
-  Sets owner
-  \param wo - new owner
-*/
-void QtxListFrame::setOwner( QWidget* wo )
-{
-  myOwner = wo;
-  if ( myOwner )
-  {
-    QPoint lpos;
-    if ( myOwner->parentWidget() && myOwner->parentWidget()->inherits( "QToolBar" ) &&
-         ((QToolBar*)myOwner->parentWidget())->orientation() == Qt::Vertical )
-      lpos = QPoint( myOwner->x() + myOwner->width() + 2, myOwner->y() );
-    else
-                 lpos = QPoint( myOwner->x(), myOwner->y() + myOwner->height() + 2 );
-      QPoint gpos = myOwner->parentWidget() ? myOwner->parentWidget()->mapToGlobal( lpos )
-                                            : myOwner->mapToGlobal( lpos );
-    if ( parentWidget() )
-                       move( parentWidget()->mapFromGlobal( gpos ) );
-    else
-                 move( gpos );
-  }
-}
-
-/*!
-    Validates the action. [ private slot ]
-*/
-
-void QtxListFrame::accept()
-{
-  emit selected( selected() );
-}
-
-/*!
-    Cancels the action. [ private slot ]
-*/
-
-void QtxListFrame::reject()
-{
-  emit selected( 0 );
-}
-
-/*!
-    Initializes / shows the frame. [ virtual public slot ]
-*/
-
-void QtxListFrame::show()
-{
-  int cnt = (int)myList->count();
-  if ( cnt )
-  {
-    myScrollVal = 0;
-               myList->setTopItem( 0 );
-    myList->clearSelection();
-               myList->setMinimumSize( 0, ( QMIN( cnt + 1, myMaxLines ) ) * myList->itemHeight() + 1 );
-    setSelected( 1 );
-
-    int linstep = myList->itemHeight();
-    myList->verticalScrollBar()->setLineStep( linstep );
-    myList->verticalScrollBar()->setPageStep( myMaxLines * linstep );
-
-    QFontMetrics fm = myList->fontMetrics();
-    layout()->invalidate();
-    int maxHeight = layout()->minimumSize().height() + layout()->margin();
-    int maxWidth = myMaxLineChars * fm.maxWidth();
-               for ( uint i = 0; i <= myList->count(); i++ )
-                       maxWidth = QMAX( maxWidth, fm.width( myList->text( i ) ) );
-
-               resize( width(), maxHeight );
-
-               myList->updateGeometry();
-
-               QApplication::sendPostedEvents();
-
-    myList->resizeContents( myList->contentsWidth(),
-                            myList->itemHeight() * cnt );
-    if ( myList->contentsHeight() > myList->visibleHeight() )
-         maxWidth += myList->verticalScrollBar()->width();
-
-               QString single = mySingleComment.arg( cnt );
-               QString multi = myMultipleComment.arg( cnt );
-               int comWidth = QMAX( myComment->fontMetrics().width( single ), myComment->fontMetrics().width( multi ) );
-               if ( myComment->frameWidth() )
-                       comWidth += myComment->fontMetrics().width( "x" );
-
-               maxWidth = QMAX( maxWidth, comWidth );
-
-               resize( maxWidth, maxHeight );
-    updateComment();
-
-    qApp->installEventFilter( this );
-
-    QFrame::show();
-  }
-}
-
-/*!
-    Cleanup. [ virtual public slot ]
-*/
-
-void QtxListFrame::hide()
-{
-  qApp->removeEventFilter( this );
-  QFrame::hide();
-  emit hided();
-}
-
-/*!
-    Processes KeyUp/KeyDown, PageUp/PageDown, CR and Esc keys.
-    Returns 'true' if event is eaten, 'false' otherwise. [ private ]
-*/
-
-bool QtxListFrame::handleKeyEvent( QObject* , QKeyEvent* e )
-{
-  if ( e->type() == QEvent::KeyRelease )
-    return true;
-
-  int selNum = selected();
-  switch( e->key() )
-  {
-  case Key_Up:
-    setSelected( QMAX( 1, selNum - 1 ) );
-    break;
-  case Key_Down:
-    setSelected( QMAX( 1, selNum + 1 ) );
-    break;
-  case Key_PageUp:
-    setSelected( QMAX( 1, selNum - myMaxLines ) );
-    break;
-  case Key_PageDown:
-         setSelected( selNum += myMaxLines );
-    break;
-  case Key_Home:
-         setSelected( 1 );
-               break;
-  case Key_End:
-         setSelected( myList->count() );
-               break;
-  case Key_Return:
-    accept();
-    break;
-  case Key_Escape:
-    reject();
-    break;
-  }
-  return true;
-}
-
-/*!
-    Selects items on move, validates on button release. If object 'o' is not our name list,
-    we close the frame. Returns 'true' if event is eaten, 'false' otherwise. [ private ]
-*/
-
-bool QtxListFrame::handleMouseEvent( QObject* o, QMouseEvent* e )
-{
-  switch( e->type() )
-  {
-  case QEvent::MouseButtonPress:
-  {
-         if ( o != myList->viewport() && !isPopup() )
-                 reject();
-    return true;
-  }
-  case QEvent::MouseMove:
-  {
-    if ( o == myList->viewport() )
-    {
-      QListBoxItem* lbi = myList->itemAt( e->pos() );
-      if ( lbi )
-        setSelected( myList->index( lbi ) + 1 );
-    }
-    break;
-  }
-  case QEvent::MouseButtonRelease:
-  {
-    if ( o == myList->viewport() )
-      accept();
-    else
-                 reject();
-    break;
-  }
-  default:
-    break;
-  }
-  return true;
-}
-
-/*!
-  Custom event filter
-*/
-bool QtxListFrame::event( QEvent* e )
-{
-  if ( e->type() != (int)ScrollEvent::Scroll )
-    return QFrame::event( e );
-
-  ScrollEvent* se = (ScrollEvent*)e;
-  if ( se->isDown() )
-    setSelected( myList->topItem() + myList->numItemsVisible() );
-  else
-    setSelected( myList->topItem() + 1 );
-  
-  return true;
-}
-
-/*!
-    Watches mouse events on the viewport of the list. [ virtual public ]
-*/
-
-bool QtxListFrame::eventFilter( QObject* o, QEvent* e )
-{
-  bool isKeyEvent = ( e->type() == QEvent::KeyPress ||
-                      e->type() == QEvent::KeyRelease );
-  bool isMouseEvent = ( e->type() == QEvent::MouseMove ||
-                        e->type() == QEvent::MouseButtonPress ||
-                        e->type() == QEvent::MouseButtonRelease ||
-                        e->type() == QEvent::MouseButtonDblClick );
-
-  if ( isKeyEvent )
-  {
-    if ( handleKeyEvent( o, ( QKeyEvent* )e ) )
-      return true;
-  }
-  else if ( isMouseEvent && o != myList->verticalScrollBar() )
-  {
-    if ( handleMouseEvent( o, ( QMouseEvent*)e ) )
-      return true;
-  }
-
-  if ( o != this && ( e->type() == QEvent::Resize || e->type() == QEvent::Move ) )
-    setOwner( myOwner );
-
-  return QFrame::eventFilter( o, e );
-}
-
-/*!
-    Selects operations while scrolling the list. [ private slot ]
-*/
-
-void QtxListFrame::onScroll( int x, int y )
-{
-  int dx = y - myScrollVal;
-       if ( !myScrollBlock )
-               QApplication::postEvent( this, new ScrollEvent( dx > 0 ) );
-  myScrollVal = y;
-}
-
-/*!
-    Selects the actions [ 0 - lastSel ]. [ public ]
-*/
-
-void QtxListFrame::setSelected( const int lastSel )
-{
-       int last = QMIN( lastSel, (int)myList->count() );
-
-       for ( int i = 0; i < (int)myList->count(); i++ )
-               myList->setSelected( i, i < last );
-
-       int item = last - 1;
-
-       myScrollBlock = true;
-
-       if ( item < myList->topItem() )
-               myList->setTopItem( item );
-
-       if ( item >= myList->topItem() + myList->numItemsVisible() )
-               myList->setTopItem( item - myList->numItemsVisible() + 1 );
-
-       myScrollBlock = false;
-
-  myList->clearFocus();
-
-  updateComment();
-}
-
-/*!
-  return number of selected items
-*/
-int QtxListFrame::selected() const
-{
-       uint sel = 0;
-       while ( sel < myList->count() && myList->isSelected( sel ) )
-               sel++;
-       return sel;
-}
diff --git a/src/Qtx/QtxListAction.h b/src/Qtx/QtxListAction.h
deleted file mode 100755 (executable)
index 8ad60be..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxListAction.hxx
-// Author:    Sergey TELKOV (Based on code by Eugene AKSENOV)
-
-#ifndef QTXLISTACTION_H
-#define QTXLISTACTION_H
-
-#include "QtxAction.h"
-
-#include <qmap.h>
-#include <qframe.h>
-#include <qstringlist.h>
-
-class QLabel;
-class QListBox;
-class QPopupMenu;
-class QToolButton;
-class QToolTipGroup;
-
-class QtxListFrame;
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QTX_EXPORT QtxListAction : public QtxAction
-{
-    Q_OBJECT
-
-    Q_PROPERTY( QStringList names READ names WRITE addNames )
-
-    class ToolButton;
-
-public:
-    enum { Item, SubMenu } PopupMode;
-
-public:
-    QtxListAction( QObject* = 0, const char* = 0, bool = false );
-    QtxListAction( const QString&, const QIconSet&, const QString&, int, QObject*, const char* = 0, bool = false );
-    QtxListAction( const QString&, const QString&, int, QObject*, const char* = 0, bool = false );
-    virtual ~QtxListAction();
-
-public:
-    virtual bool            addTo( QWidget* );
-    virtual bool            addTo( QWidget*, const int );
-
-    virtual bool            removeFrom( QWidget* );
-    virtual bool            eventFilter( QObject*, QEvent* );
-
-    int                     popupMode() const;
-    void                    setPopupMode( const int );
-
-    QStringList             names() const;
-    void                    addNames( const QStringList&, bool = true );
-    void                    setComment( const QString&, const QString& = QString::null );
-
-    void                    setMaxLines( int );
-    void                    setMaxLineChars( int );
-
-signals:
-    void                    activated( int );
-
-public slots:
-    virtual void            setEnabled( bool );
-
-private slots:
-    void                    onHided();
-    void                    onSingle();
-    void                    onExpand( bool );
-    void                    onMultiple( int );
-    void                    onActivated( int );
-    void                    onDestroyed( QObject* );
-
-protected:
-    virtual void            addedTo( QWidget*, QWidget* );
-
-private:
-    void                    initialize();
-    QWidget*                widget( QWidget* ) const;
-    QPopupMenu*             listPopup( QWidget* ) const;
-    QToolButton*            mainButton( QWidget* ) const;
-    QToolButton*            dropButton( QWidget* ) const;
-
-    void                    controlDeleted( QWidget* );
-
-private:
-    typedef struct { int id; QPopupMenu* popup; } Popups;
-    typedef struct { QToolButton* main; QToolButton* drop; } Buttons;
-    typedef QMap<QWidget*, Popups>  PopupsMap;
-    typedef QMap<QWidget*, Buttons> ButtonsMap;
-    
-private:
-    int                     myMode;
-    QtxListFrame*           myFrame;
-    bool                    myRaise;
-    PopupsMap               myPopups;
-    ButtonsMap              myButtons;
-    QToolTipGroup*          myTipGroup;
-
-    friend class ToolButton;
-    friend class QtxListFrame;
-};
-
-/*!
-  \class QtxListFrame
-*/
-class QtxListFrame : public QFrame
-{
-    Q_OBJECT
-
-    class ScrollEvent;
-
-public:
-    QtxListFrame( QtxListAction*, QWidget* parent, WFlags f = 0 );
-    virtual ~QtxListFrame();
-
-    void                    clear();
-    const QStringList       names() const;
-    void                    addNames( const QStringList& );
-    
-    void                    setSingleComment( const QString& );
-    void                    setMultipleComment( const QString& );
-    
-    int                     selected() const;
-    void                    setSelected( const int );
-    
-    void                    setMaxLines( int );
-    void                    setMaxLineChars( int );
-    
-    virtual bool            event( QEvent* );
-    virtual bool            eventFilter( QObject*, QEvent* );
-
-    void                    setOwner( QWidget* );
-
-    void                    updateComment();
-    
-signals:
-    void                    hided();
-    void                    selected( int );
-    
-public slots:
-    virtual void            show();
-    virtual void            hide();
-    
-private slots:
-    void                    reject();
-    void                    accept();
-    
-    void                    onScroll( int, int );
-    
-private:
-    void                    setNames( const QStringList& );
-    bool                    handleKeyEvent( QObject*, QKeyEvent* );
-    bool                    handleMouseEvent( QObject*, QMouseEvent* );
-
-    friend class QtxListAction;
-    
-private:
-    QListBox*               myList;
-    QStringList             myNames;
-    QWidget*                myOwner;
-    QtxListAction*          myAction;
-    QLabel*                 myComment;
-    
-    QString                 mySingleComment;
-    QString                 myMultipleComment;
-    
-    int                     myMaxLines;
-    int                     myMaxLineChars;
-    
-    int                     myScrollVal;
-    bool                    myScrollBlock;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
diff --git a/src/Qtx/QtxListBox.cxx b/src/Qtx/QtxListBox.cxx
deleted file mode 100755 (executable)
index b4bdef3..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxListBox.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxListBox.h"
-
-#include <qpixmap.h>
-#include <qlineedit.h>
-
-/*!
-  Constructor
-*/
-QtxListBox::QtxListBox( QWidget* parent, const char* name, WFlags f )
-: QListBox( parent, name, f ),
-myEditor( 0 ),
-myEditIndex( -1 ),
-myEditState( false ),
-myEditDefault( true ),
-myModifEnabled( true )
-{
-  connect( this, SIGNAL( contentsMoving( int, int ) ),
-           this, SLOT( onContentsMoving( int, int ) ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListBox::~QtxListBox()
-{
-}
-
-/*!
-  \return true if editing is enabled
-*/
-bool QtxListBox::isEditEnabled() const
-{
-  return myEditState;
-}
-
-/*!
-  Enables/disables editing
-  \param on - new state
-*/
-void QtxListBox::setEditEnabled( bool on )
-{
-  if ( isEditEnabled() == on )
-    return;
-
-  myEditState = on;
-
-  if ( !isEditEnabled() )
-    endEdition( defaultEditAction() );
-}
-
-/*!
-  \return default edit action
-  \sa setDefaultEditAction()
-*/
-bool QtxListBox::defaultEditAction() const
-{
-  return myEditDefault;
-}
-
-/*!
-  Changes default edit action. 
-  Pressing of ENTER button always accepts new value of edited item.
-  But other ways, such as focus out or edition of other item accepts
-  new value of edited item only if "default edit action" is true
-  \param def - new value
-*/
-void QtxListBox::setDefaultEditAction( bool def )
-{
-  myEditDefault = def;
-}
-
-/*!
-  \return modification enabled state
-  \sa setModificationEnabled()
-*/
-bool QtxListBox::isModificationEnabled() const
-{
-  return myModifEnabled;
-}
-
-/*!
-  Changes "modification enabled" state
-  If it is true, then pressing of CTRL + { Up, Down, Home, End } allows move items in list
-  \param on - new state
-*/
-void QtxListBox::setModificationEnabled( bool on )
-{
-  myModifEnabled = on;
-}
-
-/*!
-  \return current edited item
-*/
-QListBoxItem* QtxListBox::editedItem() const
-{
-  return item( editedIndex() );
-}
-
-/*!
-  \return current edited index
-*/
-int QtxListBox::editedIndex() const
-{
-  return myEditIndex;
-}
-
-/*!
-  Starts edition of item
-  \param idx - index of item
-*/
-void QtxListBox::startEdition( const int idx )
-{
-  if ( idx < 0 || editedIndex() == idx || !isEditEnabled() )
-    return;
-
-  QLineEdit* ed = editor();
-  if ( !ed )
-    return;
-
-  endEdition( defaultEditAction() );
-
-  myEditIndex = idx;
-
-  ensureItemVisible( myEditIndex );
-
-  ed->setText( text( myEditIndex ) );
-  updateEditor();
-  ed->show();
-
-  ed->setFocus();
-}
-
-/*!
-  Starts edition of item
-  \param item - item to be edited
-*/
-void QtxListBox::startEdition( const QListBoxItem* item )
-{
-  startEdition( index( item ) );
-}
-
-/*!
-  Finishes edition of item
-  \param action - if it is true, then new values must be accepted
-*/
-void QtxListBox::endEdition( const bool action )
-{
-  int idx = editedIndex();
-  QLineEdit* ed = editor();
-
-  if ( idx < 0 || !ed )
-    return;
-
-  myEditIndex = -1;
-
-  ed->hide();
-
-  if ( action )
-  {
-    int cur = currentItem();
-
-    if ( pixmap( idx ) )
-      changeItem( *pixmap( idx ), ed->text(), idx );
-    else
-      changeItem( ed->text(), idx );
-
-    setCurrentItem( cur );
-
-    emit itemEdited( idx );
-    emit itemEdited( item( idx ) );
-  }
-}
-
-/*!
-  Ensures that the item is visible.
-  \param idx - index of item
-*/
-void QtxListBox::ensureItemVisible( const int idx )
-{
-  if ( idx < 0 )
-    return;
-
-  if ( itemVisible( idx ) )
-    return;
-
-  setTopItem( idx );
-}
-
-/*!
-  Ensures that the item is visible.
-  \param item - item to be made visible
-*/
-void QtxListBox::ensureItemVisible( const QListBoxItem* item )
-{
-  ensureItemVisible( index( item ) );
-}
-
-/*!
-  \return validator of item editor
-*/
-const QValidator* QtxListBox::validator() const
-{
-  const QValidator* v = 0;
-  if ( editor() )
-    v = editor()->validator();
-  return v;
-}
-
-/*!
-  Removes validator of item editor
-*/
-void QtxListBox::clearValidator()
-{
-  if ( editor() )
-    editor()->clearValidator();
-}
-
-/*!
-  Changes validator of item editor
-  \param v - new validator
-*/
-void QtxListBox::setValidator( const QValidator* v )
-{
-  if ( editor() )
-    editor()->setValidator( v );
-}
-
-/*!
-  Moves item to top
-  \param idx - index of item
-*/
-void QtxListBox::moveItemToTop( const int idx )
-{
-  moveItem( idx, -idx );
-}
-
-/*!
-  Moves item to bottom
-  \param idx - index of item
-*/
-void QtxListBox::moveItemToBottom( const int idx )
-{
-  moveItem( idx, count() - idx );
-}
-
-/*!
-  Moves item
-  \param idx - index of item
-  \param step - changing of position
-*/
-void QtxListBox::moveItem( const int idx, const int step )
-{
-  QListBoxItem* i = item( idx );
-  if ( !i || step == 0 )
-    return;
-
-  QListBoxItem* cur = item( currentItem() );
-
-  takeItem( i );
-  insertItem( i, QMAX( 0, idx + step ) );
-
-  setCurrentItem( index( cur ) );
-
-  int pos = index( i );
-  if ( myEditIndex == idx )
-    myEditIndex = pos;
-
-  updateEditor();
-
-  if ( idx != pos )
-    emit itemMoved( idx, pos );
-}
-
-/*!
-  Inserts empty item
-  \param i - position of item (if it is less than 0, then current position is used)
-*/
-void QtxListBox::createItem( const int i )
-{
-  if ( !isEditEnabled() )
-    return;
-
-  int idx = i < 0 ? currentItem() : i;
-  idx = idx < 0 ? count() : idx;
-  idx = QMIN( (int)count(), idx );
-
-  insertItem( "", idx );
-  setCurrentItem( idx );
-  startEdition( idx );
-}
-
-/*!
-  Removes item
-  \param i - position of item (if it is less than 0, then current position is used)
-*/
-void QtxListBox::deleteItem( const int i )
-{
-  if ( !isEditEnabled() )
-    return;
-
-  int idx = i < 0 ? currentItem() : i;
-  if ( idx < 0 )
-    return;
-
-  if ( editedIndex() == idx )
-    endEdition( defaultEditAction() );
-
-  removeItem( idx );
-  updateEditor();
-}
-
-/*!
-  Scrolls the content so that the point is in the top-left corner.
-  \param x, y - point co-ordinates
-*/
-void QtxListBox::setContentsPos( int x, int y )
-{
-  QListBox::setContentsPos( x, y );
-
-  updateEditor();
-}
-
-/*!
-  Custom event filter, performs finish of edition on focus out, escape/return/enter pressing
-*/
-bool QtxListBox::eventFilter( QObject* o, QEvent* e )
-{
-  if ( editor() == o )
-  {
-    if ( e->type() == QEvent::FocusOut )
-      endEdition( defaultEditAction() );
-
-    if ( e->type() == QEvent::KeyPress )
-    {
-      QKeyEvent* ke = (QKeyEvent*)e;
-      if ( ke->key() == Key_Escape )
-        endEdition( false );
-      else if ( ke->key() == Key_Enter || ke->key() == Key_Return )
-        endEdition( true );
-    }
-  }
-
-  return QListBox::eventFilter( o, e );
-}
-
-/*!
-  Custom key press event handler
-  Allows to move items by CTRL + { Up, Down, Home, End }
-*/
-void QtxListBox::keyPressEvent( QKeyEvent* e )
-{
-  if ( e->key() == Key_Up && e->state() & ControlButton && isModificationEnabled() )
-    moveItem( currentItem(), -1 );
-  else if ( e->key() == Key_Down && e->state() & ControlButton && isModificationEnabled() )
-    moveItem( currentItem(), 1 );
-  else if ( e->key() == Key_Home && e->state() & ControlButton && isModificationEnabled() )
-    moveItemToTop( currentItem() );
-  else if ( e->key() == Key_End && e->state() & ControlButton && isModificationEnabled() )
-    moveItemToBottom( currentItem() );
-  else if ( e->key() == Key_Insert && e->state() & ControlButton )
-    createItem( currentItem() );
-  else if ( e->key() == Key_Delete && e->state() & ControlButton )
-    deleteItem( currentItem() );
-  else
-    QListBox::keyPressEvent( e );
-}
-
-/*!
-  Custom resize event handler
-*/
-void QtxListBox::viewportResizeEvent( QResizeEvent* e )
-{
-  QListBox::viewportResizeEvent( e );
-
-  updateEditor();
-}
-
-/*!
-  Custom mouse double click event handler
-*/
-void QtxListBox::mouseDoubleClickEvent( QMouseEvent* e )
-{
-  if ( isEditEnabled() )
-    startEdition( itemAt( e->pos() ) );
-  else
-    QListBox::mouseDoubleClickEvent( e );
-}
-
-/*!
-  Updates editor on contents moving
-*/
-void QtxListBox::onContentsMoving( int, int )
-{
-  updateEditor();
-}
-
-/*!
-  \return item editor
-*/
-QLineEdit* QtxListBox::editor() const
-{
-  if ( !myEditor )
-  {
-    QtxListBox* that = (QtxListBox*)this;
-    that->createEditor();
-  }
-  return myEditor;
-}
-
-/*!
-  Creates item editor
-*/
-void QtxListBox::createEditor()
-{
-  if ( myEditor )
-    return;
-
-  myEditor = new QLineEdit( viewport() );
-
-  myEditor->setLineWidth( 1 );
-  myEditor->setMidLineWidth( 0 );
-  myEditor->setFrameStyle( QFrame::Box | QFrame::Plain );
-  myEditor->installEventFilter( this );
-
-  myEditor->hide();
-
-  addChild( myEditor );
-}
-
-/*!
-  Updates item editor
-*/
-void QtxListBox::updateEditor()
-{
-  if ( !editedItem() || !editor() )
-    return;
-
-  QRect r = itemRect( editedItem() );
-  if ( !r.isValid() )
-    return;
-
-  int m = editor()->lineWidth();
-  r.addCoords( m, 0, 0, 0 );
-
-  const QPixmap* pix = pixmap( editedIndex() );
-  if ( pix )
-    r.addCoords( pix->width() + 2, 0, 0, 0 );
-
-  editor()->setGeometry( r );
-}
diff --git a/src/Qtx/QtxListBox.h b/src/Qtx/QtxListBox.h
deleted file mode 100755 (executable)
index 180d2ca..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxListBox.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXLISTBOX_H
-#define QTXLISTBOX_H
-
-#include "Qtx.h"
-
-#include <qlistbox.h>
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QLineEdit;
-class QValidator;
-
-class QTX_EXPORT QtxListBox : public QListBox
-{
-    Q_OBJECT
-
-public:
-    QtxListBox( QWidget* = 0, const char* = 0, WFlags = 0 );
-    virtual ~QtxListBox();
-
-    bool              isEditEnabled() const;
-    bool              defaultEditAction() const;
-    bool              isModificationEnabled() const;
-
-    QListBoxItem*     editedItem() const;
-    int               editedIndex() const;
-
-    void              startEdition( const int );
-    void              startEdition( const QListBoxItem* );
-    void              endEdition( const bool );
-
-    void              ensureItemVisible( const int );
-    void              ensureItemVisible( const QListBoxItem* );
-
-    virtual bool      eventFilter( QObject*, QEvent* );
-
-    const QValidator* validator() const;
-
-    void              moveItemToTop( const int );
-    void              moveItemToBottom( const int );
-    void              moveItem( const int, const int );
-
-    void              createItem( const int = -1 );
-    void              deleteItem( const int = -1 );
-
-signals:
-    void              itemEdited( int );
-    void              itemEdited( QListBoxItem* );
-    void              itemMoved( int, int );
-
-public slots:
-    virtual void      setEditEnabled( bool );
-    virtual void      setDefaultEditAction( bool );
-    virtual void      setModificationEnabled( bool );
-
-    virtual void      clearValidator();
-    virtual void      setValidator( const QValidator* );
-    virtual void      setContentsPos( int, int );
-
-private slots:
-    void              onContentsMoving( int, int );
-
-protected:
-    virtual void      keyPressEvent( QKeyEvent* );
-    virtual void      viewportResizeEvent( QResizeEvent* );
-    virtual void      mouseDoubleClickEvent( QMouseEvent* );
-
-private:
-    QLineEdit*        editor() const;
-    void              createEditor();
-    void              updateEditor();
-
-private:
-    QLineEdit*        myEditor;
-    int               myEditIndex;
-    bool              myEditState;
-    bool              myEditDefault;
-    bool              myModifEnabled;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
diff --git a/src/Qtx/QtxListOfOperations.cxx b/src/Qtx/QtxListOfOperations.cxx
deleted file mode 100644 (file)
index a6c2e68..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-
-#include "QtxListOfOperations.h"
-#include <stdarg.h>
-
-/*!
-  Constructor
-*/
-QtxListOfOperations::QtxListOfOperations()
-{
-}
-
-/*!
-  Destructor
-*/
-QtxListOfOperations::~QtxListOfOperations()
-{
-}
-
-/*!
-  \return fills list with brackets symbols
-  \param list - list to be filled
-  \param open - if it is true, it is necessary to fill with open brackets otherwise with close
-*/
-void QtxListOfOperations::bracketsList( QStringList& list, bool open ) const
-{
-    OperationSetsIterator anIt = mySets.begin(),
-                          aLast = mySets.end();
-    QStringList custom;
-    for( ; anIt!=aLast; anIt++ )
-    {
-        custom.clear();
-        (*anIt).myOperations->bracketsList( custom, open );
-        QStringList::const_iterator aSIt = custom.begin(),
-                                    aSLast = custom.end();
-        for( ; aSIt!=aSLast; aSIt++ )
-            if( list.contains( *aSIt )==0 )
-                list.append( *aSIt );
-    }
-}
-
-/*!
-  Fills list with operation names
-*/
-void QtxListOfOperations::opersList( QStringList& list ) const
-{
-    OperationSetsIterator anIt = mySets.begin(),
-                          aLast = mySets.end();
-    QStringList custom;
-    for( ; anIt!=aLast; anIt++ )
-    {
-        custom.clear();
-        (*anIt).myOperations->opersList( custom );
-        QStringList::const_iterator aSIt = custom.begin(),
-                                    aSLast = custom.end();
-        for( ; aSIt!=aSLast; aSIt++ )
-            if( list.contains( *aSIt )==0 )
-                list.append( *aSIt );
-    }
-}
-
-/*!
-  Create some value by it's string representation
-*/
-bool QtxListOfOperations::createValue( const QString& str, QtxValue& val ) const
-{
-    bool ok;
-    OperationSetsIterator anIt = mySets.begin(),
-                          aLast = mySets.end();
-    for( ; anIt!=aLast; anIt++ )
-    {
-        ok = (*anIt).myOperations->createValue( str, val );
-        if( ok )
-            break;
-    }
-    return ok;
-}
-
-/*!
-  \return priority of operation
-*/
-int QtxListOfOperations::prior( const QString& op, bool isBin ) const
-{
-    OperationSetsIterator anIt = mySets.begin(),
-                          aLast = mySets.end();
-    int prior = 0;
-    for( ; anIt!=aLast; anIt++ )
-    {
-        prior = (*anIt).myOperations->prior( op, isBin );
-        if( prior>0 )
-        {
-            prior+=(*anIt).myAddPrior;
-            break;
-        }
-    }
-    return prior>0 ? prior : 0;
-}
-
-/*!
-   \return whether values with passed types are valid for arguments of operation
-   \param op - name of operation
-   \param t1 - type of first argument
-   \param t2 - type of second argument
-*/
-QtxParser::Error QtxListOfOperations::isValid( const QString& op,
-                                               const QVariant::Type t1,
-                                               const QVariant::Type t2 ) const
-{
-    OperationSetsIterator anIt = mySets.begin(),
-                          aLast = mySets.end();
-    QtxParser::Error err = QtxParser::OK;
-    for( ; anIt!=aLast; anIt++ )
-    {
-        err = (*anIt).myOperations->isValid( op, t1, t2 );
-        if( err==QtxParser::OK )
-            break;
-    }
-    return err;
-}
-
-/*!
-    Calculates result of operation
-    \return one of error states
-    \param op - name of operation
-    \param v1 - first operation argument (must be used also to store result)
-    \param v2 - second operation argument
-*/
-QtxParser::Error QtxListOfOperations::calculate( const QString& op,
-                                                 QtxValue& v1,
-                                                 QtxValue& v2 ) const
-{
-    const char* deb = op.latin1();
-
-    OperationSetsIterator anIt = mySets.begin(),
-                          aLast = mySets.end();
-    QtxValue nv1, nv2;
-    for( ; anIt!=aLast; anIt++ )
-    {
-        nv1 = v1;
-        nv2 = v2;
-        if( (*anIt).myOperations->isValid( op, v1.type(), v2.type() ) == QtxParser::OK )
-        {
-            QtxParser::Error err = (*anIt).myOperations->calculate( op, nv1, nv2 );
-            if( err==QtxParser::OK || err==QtxParser::InvalidResult )
-            {
-                QString oop = (*anIt).myName;
-                const char* ooo = oop.latin1();
-                v1 = nv1; v2 = nv2; 
-                return err;
-            }
-        }
-    }
-    return QtxParser::InvalidOperation;
-}
-
-/*!
-  Clears list of operations
-*/
-void QtxListOfOperations::clear()
-{
-    mySets.clear();
-}
-
-/*!
-  \return true if list contains operations
-  \param name - name of operation
-*/
-bool QtxListOfOperations::has( const QString& name ) const
-{
-    OperationSetsIterator anIt = mySets.begin(),
-                          aLast = mySets.end();
-    for( ; anIt!=aLast; anIt++ )
-        if( (*anIt).myName == name )
-            return true;
-    return false;
-}
-
-/*!
-  Appends operations to list
-  \param name - name of operations
-  \param oper - operations
-  \param prior - additional prior
-*/
-void QtxListOfOperations::append( const QString& name, QtxOperations* oper,
-                                  int prior )
-{
-    insert( name, oper, prior );
-}
-
-/*!
-  Prepends operations to list
-  \param name - name of operations
-  \param oper - operations
-  \param prior - additional prior
-*/
-void QtxListOfOperations::prepend( const QString& name, QtxOperations* oper,
-                                   int prior )
-{
-    insert( name, oper, prior, 0 );
-}
-
-/*!
-  Inserts operations to list
-  \param name - name of operations
-  \param oper - operations
-  \param prior - additional prior
-  \param pos - insert position 
-*/
-void QtxListOfOperations::insert( const QString& name, QtxOperations* oper,
-                                  int prior, int pos )
-{
-    if( has( name ) || oper==NULL || prior<0 )
-        return;
-
-    OperationSet op;
-    op.myName = name;
-    op.myOperations = oper;
-    op.myAddPrior = prior;
-    if( pos<0 )
-        mySets.append( op );
-    else
-        mySets.insert( mySets.at( pos ), op );
-}
-
-/*!
-  Removes operations from list
-  \param name - name of operations
-*/
-void QtxListOfOperations::remove( const QString& name )
-{
-    OperationSets::iterator anIt = mySets.begin(),
-                            aLast = mySets.end();
-    for( ; anIt!=aLast; anIt++ )
-        if( (*anIt).myName == name )
-        {
-            mySets.erase( anIt );
-            break;
-        }
-}
-
-/*!
-  \return count of operations in list
-*/
-int QtxListOfOperations::count() const
-{
-    return mySets.count();
-}
-
-/*!
-  \return operations by name
-  \name - name of operations
-*/
-QtxOperations* QtxListOfOperations::operations( const QString& name ) const
-{
-    OperationSetsIterator anIt = mySets.begin(),
-                          aLast = mySets.end();
-    for( ; anIt!=aLast; anIt++ )
-        if( (*anIt).myName == name )
-            return (*anIt).myOperations;
-    return NULL;
-}
diff --git a/src/Qtx/QtxListOfOperations.h b/src/Qtx/QtxListOfOperations.h
deleted file mode 100644 (file)
index def9dd8..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxListOfOperations.h
-// Author:    Alexander SOLOVYOV
-
-#ifndef __QTX_LIST_OF_OPERATIONS_HEADER__
-#define __QTX_LIST_OF_OPERATIONS_HEADER__
-
-#include "Qtx.h"
-#include "QtxOperations.h"
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-
-/*!
-  Class: QtxListOfOperations
-
-  This class provides special variant of QtxOperations. It contains list of QtxOperations* with 
-  fixed order. When it is necessary to calculate operation or get it's priority, this operation is
-  being found starting from first item. It makes possible to create unions of operations. Every QtxOperations*
-  has priority, which is added to priority of operation, so that it makes possible to increase priority of
-  whole group of operations
-*/
-class QTX_EXPORT QtxListOfOperations : public QtxOperations
-{
-public:
-    QtxListOfOperations();
-    virtual ~QtxListOfOperations();
-
-    virtual void  opersList( QStringList& ) const;
-    virtual void  bracketsList( QStringList&, bool open ) const;
-
-    virtual bool  createValue( const QString&, QtxValue& ) const;
-    virtual int   prior    ( const QString&, bool isBin ) const;
-    virtual QtxParser::Error isValid( const QString&,
-                                      const QVariant::Type,
-                                      const QVariant::Type ) const;
-    virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
-
-    void clear  ();
-    bool has    ( const QString& ) const;
-    void append ( const QString&, QtxOperations*, int prior );
-    void prepend( const QString&, QtxOperations*, int prior );
-    void insert ( const QString&, QtxOperations*, int prior, int pos = -1 );
-    void remove ( const QString& );
-    int  count  () const;
-    QtxOperations* operations( const QString& ) const;
-
-private:
-    typedef struct
-    {
-        QString        myName;
-        QtxOperations* myOperations;
-        int            myAddPrior;
-
-    } OperationSet;
-
-    typedef QValueList< OperationSet >     OperationSets;
-    typedef OperationSets::const_iterator  OperationSetsIterator;
-
-    OperationSets mySets;
-};
-
-#endif
diff --git a/src/Qtx/QtxListResourceEdit.cxx b/src/Qtx/QtxListResourceEdit.cxx
deleted file mode 100644 (file)
index a075dc1..0000000
+++ /dev/null
@@ -1,1748 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxListResourceEdit.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxListResourceEdit.h"
-
-#include <qhbox.h>
-#include <qvbox.h>
-#include <qlabel.h>
-#include <qlayout.h>
-#include <qlistbox.h>
-#include <qcombobox.h>
-#include <qlineedit.h>
-#include <qcheckbox.h>
-#include <qtabwidget.h>
-#include <qvalidator.h>
-#include <qobjectlist.h>
-#include <qcolordialog.h>
-#include <qwidgetstack.h>
-#include <qtoolbutton.h>
-#include <qfontdialog.h>
-#include <qfontdatabase.h>
-#include <qfileinfo.h>
-#include <qfiledialog.h>
-#include <qapplication.h>
-
-#include "QtxIntSpinBox.h"
-#include "QtxDblSpinBox.h"
-#include "QtxComboBox.h"
-#include "QtxDirListEditor.h"
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::QtxListResourceEdit( QtxResourceMgr* mgr, QWidget* parent )
-: QFrame( parent ),
-QtxResourceEdit( mgr )
-{
-  QVBoxLayout* main = new QVBoxLayout( this, 0, 5 );
-  QGroupBox* base = new QGroupBox( 1, Qt::Vertical, "", this );
-  base->setFrameStyle( QFrame::NoFrame );
-  base->setInsideMargin( 0 );
-  main->addWidget( base );
-
-  myList  = new QListBox( base );
-  myStack = new QWidgetStack( base );
-
-  myList->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Expanding ) );
-  myStack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
-
-  myList->setSelectionMode( QListBox::Single );
-
-  connect( myList, SIGNAL( selectionChanged() ), this, SLOT( onSelectionChanged() ) );
-
-  setFocusProxy( myList );
-
-  updateState();
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::~QtxListResourceEdit()
-{
-}
-
-/*!
-  Sets value to widget
-  \param id - id of widget
-  \param prop - name of resource
-  \param val - value of resource
-*/
-void QtxListResourceEdit::setItemProperty( const int id, const QString& prop, const QVariant& val )
-{
-  Item* i = item( id );
-  if ( !i )
-    return;
-
-  bool prev = i->isEmpty();
-
-  QtxResourceEdit::setItemProperty( id, prop, val );
-
-  bool next = i->isEmpty();
-
-  if ( prev != next )
-    updateVisible();
-}
-
-/*!
-  SLOT: called if main list selection changed, raises resource group widgets
-*/
-void QtxListResourceEdit::onSelectionChanged()
-{
-  QString title = myList->text( myList->index( myList->selectedItem() ) );
-  if ( title.isEmpty() )
-    return;
-
-  Item* i = 0;
-  QPtrList<Item> lst;
-  childItems( lst );
-  for ( QPtrListIterator<Item> it( lst ); it.current() && !i; ++it )
-  {
-    if ( it.current()->title() == title )
-      i = it.current();
-  }
-
-  if ( i )
-    myStack->raiseWidget( i->id() );
-}
-
-/*!
-  Custom activity after item addition
-  \param i - added item
-*/
-void QtxListResourceEdit::itemAdded( QtxResourceEdit::Item* i )
-{
-  if ( !i )
-    return;
-
-  QPtrList<Item> items;
-  childItems( items );
-
-  if ( items.contains( i ) || items.contains( i->parentItem() ) )
-    updateVisible();
-}
-
-/*!
-  Creates and \return category
-  \param title - category title
-*/
-QtxResourceEdit::Item* QtxListResourceEdit::createItem( const QString& title, const int )
-{
-  Item* i = item( title, -1 );
-  if ( i )
-    return i;
-
-  Category* category = new Category( this, myStack );
-  myStack->addWidget( category, category->id() );
-
-  updateVisible();
-
-  if ( !myList->selectedItem() )
-    myList->setSelected( 0, true );
-
-  updateState();
-
-  return category;
-}
-
-/*!
-  Emits signal about resource changing
-  \param map - map of changed resources
-*/
-void QtxListResourceEdit::changedResources( const QMap<Item*, QString>& map )
-{
-  QMap<int, QString> idMap;
-  for ( QMap<Item*, QString>::ConstIterator it = map.begin(); it != map.end(); ++it )
-  {
-    idMap.insert( it.key()->id(), it.data() );
-
-    emit resourceChanged( it.key()->id() );
-
-    QString sec, param;
-    it.key()->resource( sec, param );
-    emit resourceChanged( sec, param );
-  }
-
-  emit resourcesChanged( idMap );
-}
-
-/*!
-  Updates widgets with accordance with main list selection
-*/
-void QtxListResourceEdit::updateState()
-{
-  if ( myList->selectedItem() &&  myStack->visibleWidget() )
-    myStack->show();
-  else
-    myStack->hide();
-
-  myList->setShown( myList->count() > 1 );
-}
-
-/*!
-  Updates visibility state
-*/
-void QtxListResourceEdit::updateVisible()
-{
-  QPtrList<Item> items;
-  childItems( items );
-
-  QString name = myList->text( myList->index( myList->selectedItem() ) );
-
-  myList->clear();
-  for ( QPtrListIterator<Item> it( items ); it.current(); ++it )
-  {
-    if ( it.current()->isEmpty() )
-      continue;
-
-    myList->insertItem( it.current()->title() );
-  }
-
-  int idx = -1;
-  for ( int i = 0; i < (int)myList->count() && idx == -1; i++ )
-  {
-    if ( myList->text( i ) == name )
-      idx = i;
-  }
-
-  myList->setSelected( QMAX( idx, 0 ), true );
-
-  updateState();
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::Category::Category( QtxListResourceEdit* edit, QWidget* parent )
-: QFrame( parent ),
-Item( edit )
-{
-  QVBoxLayout* main = new QVBoxLayout( this );
-  QGroupBox* base = new QGroupBox( 1, Qt::Horizontal, "", this );
-  base->setFrameStyle( QFrame::NoFrame );
-  base->setInsideMargin( 0 );
-  main->addWidget( base, 1 );
-
-  myTabs = new QTabWidget( base );
-  myInfo = new QLabel( base );
-
-  myInfo->setAlignment( Qt::AlignCenter );
-  myInfo->setFrameStyle( QFrame::WinPanel | QFrame::Raised );
-  myInfo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
-
-  updateState();
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::Category::~Category()
-{
-}
-
-/*!
-  \return true if it is empty
-*/
-bool QtxListResourceEdit::Category::isEmpty() const
-{
-  return Item::isEmpty() && myInfo->text().isEmpty();
-}
-
-/*!
-  \return category type
-*/
-int QtxListResourceEdit::Category::type() const
-{
-  return -1;
-}
-
-/*!
-  Default empty implementation of resources storing
-*/
-void QtxListResourceEdit::Category::store()
-{
-}
-
-/*!
-  Default empty implementation of resources retrieving
-*/
-void QtxListResourceEdit::Category::retrieve()
-{
-}
-
-/*!
-  \return value of property
-  \param prop - property name
-*/
-QVariant QtxListResourceEdit::Category::property( const QString& prop ) const
-{
-  QVariant var;
-  if ( prop == QString( "information" ) || prop == QString( "info" ) )
-    var = myInfo->text();
-  return var;
-}
-
-/*!
-  Sets property value
-  \param name - name of property
-  \param var - value of property
-*/
-void QtxListResourceEdit::Category::setProperty( const QString& name, const QVariant& var )
-{
-  QVariant prop = var;
-  if ( !prop.cast( QVariant::String ) )
-    return;
-
-  if ( name == QString( "information" ) || name == QString( "info" ) )
-    myInfo->setText( prop.toString() );
-
-  updateState();
-}
-
-/*!
-  Creates new tab
-  \param title - name of tab
-*/
-QtxResourceEdit::Item* QtxListResourceEdit::Category::createItem( const QString& title, const int )
-{
-  Item* i = item( title, id() );
-  if ( i )
-    return i;
-
-  Tab* tab = new Tab( resourceEdit(), this, this );
-  myTabs->addTab( tab, title );
-
-  updateState();
-
-  return tab;
-}
-
-/*!
-  Updates category
-*/
-void QtxListResourceEdit::Category::updateState()
-{
-  if ( myTabs->count() )
-    myTabs->show();
-  else
-    myTabs->hide();
-
-  if ( !myTabs->count() && !myInfo->text().isEmpty() )
-    myInfo->show();
-  else
-    myInfo->hide();
-}
-
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::Tab::Tab( QtxResourceEdit* edit, Item* pItem, QWidget* parent )
-: QFrame( parent ),
-Item( edit, pItem )
-{
-  QVBoxLayout* main = new QVBoxLayout( this );
-  QVBox* vbox = new QVBox( this );
-  vbox->setMargin( 5 );
-  myMainFrame = vbox;
-  main->addWidget( myMainFrame );
-  main->addStretch( 1 );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::Tab::~Tab()
-{
-}
-
-/*!
-  \return tab type
-*/
-int QtxListResourceEdit::Tab::type() const
-{
-  return -1;
-}
-
-/*!
-  Default empty implementation of resources storing
-*/
-void QtxListResourceEdit::Tab::store()
-{
-}
-
-/*!
-  Default empty implementation of resources retrieving
-*/
-void QtxListResourceEdit::Tab::retrieve()
-{
-}
-
-/*!
-  Delayed initialization of a widget
-*/
-void QtxListResourceEdit::Tab::polish()
-{
-  QFrame::polish();
-
-  adjustLabels();
-}
-
-/*!
-  Creates new group
-  \param title - name of group
-*/
-QtxResourceEdit::Item* QtxListResourceEdit::Tab::createItem( const QString& title, const int )
-{
-  Item* i = item( title, id() );
-  if ( i )
-    return i;
-
-  Group* group = new Group( title, resourceEdit(), this, myMainFrame );
-
-  return group;
-}
-
-/*!
-  Adjusts sizes of labels
-*/
-void QtxListResourceEdit::Tab::adjustLabels()
-{
-  QObjectList* labels = queryList( "QLabel" );
-  if ( labels )
-  {
-    int w = 0;
-    for ( QObjectListIt it1( *labels ); it1.current(); ++it1 )
-    {
-      if ( it1.current()->isWidgetType() )
-      {
-        QWidget* wid = (QWidget*)it1.current();
-        w = QMAX( w, wid->sizeHint().width() );
-      }
-    }
-    for ( QObjectListIt it2( *labels ); it2.current(); ++it2 )
-    {
-      if ( it2.current()->isWidgetType() )
-      {
-        QWidget* wid = (QWidget*)it2.current();
-        wid->setMinimumWidth( w );
-      }
-    }
-    delete labels;
-  }
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::Group::Group( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
-: QGroupBox( 2, Qt::Horizontal, title, parent ),
-Item( edit, pItem )
-{
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::Group::~Group()
-{
-}
-
-/*!
-  \return group type
-*/
-int QtxListResourceEdit::Group::type() const
-{
-  return -1;
-}
-
-/*!
-  Default empty implementation of resources storing
-*/
-void QtxListResourceEdit::Group::store()
-{
-}
-
-/*!
-  Default empty implementation of resources retrieving
-*/
-void QtxListResourceEdit::Group::retrieve()
-{
-}
-
-/*!
-  \return value of property
-  \param prop - property name
-*/
-QVariant QtxListResourceEdit::Group::property( const QString& prop ) const
-{
-  QVariant var;
-  if ( prop == "columns" )
-    var = QVariant( columns() );
-  else if ( prop == "orientation" )
-    var = QVariant( orientation() );
-  else if ( prop == "frame" )
-    var = QVariant( frameStyle() != QFrame::NoFrame );
-  return var;
-}
-
-/*!
-  Sets property value
-  \param name - name of property
-  \param var - value of property
-*/
-void QtxListResourceEdit::Group::setProperty( const QString& name, const QVariant& var )
-{
-  QVariant prop = var;
-  if ( !prop.cast( QVariant::Int ) )
-    return;
-
-  if ( name == QString( "columns" ) && prop.cast( QVariant::Int ) && prop.toInt() > 0 )
-    setColumns( prop.toInt() );
-  else if ( name == QString( "orientation" ) && prop.cast( QVariant::Int ) )
-  {
-    int o = prop.toInt();
-    if ( o == Qt::Horizontal || o == Qt::Vertical )
-      setOrientation( (Orientation)o );
-  }
-  else if ( name == "frame" && prop.cast( QVariant::Bool ) )
-  {
-    setInsideMargin( prop.toBool() ? 5 : 0 );
-    QGroupBox::setTitle( prop.toBool() ? Item::title() : QString::null );
-    setFrameStyle( prop.toBool() ? QFrame::Box | QFrame::Sunken : QFrame::NoFrame );
-  }
-}
-
-/*!
-  Sets title of group
-  \param title - new title of group
-*/
-void QtxListResourceEdit::Group::setTitle( const QString& title )
-{
-  Item::setTitle( title );
-  QGroupBox::setTitle( title );
-}
-
-/*!
-  Creates new item
-  \param title - title of new item
-  \type - type of new item
-*/
-QtxResourceEdit::Item* QtxListResourceEdit::Group::createItem( const QString& title, const int type )
-{
-  Item* item = 0;
-
-  switch ( type )
-  {
-  case Color:
-    item = new ColorItem( title, resourceEdit(), this, this );
-    break;
-  case Bool:
-    item = new StateItem( title, resourceEdit(), this, this );
-    break;
-  case String:
-    item = new StringItem( title, resourceEdit(), this, this );
-    break;
-  case Selector:
-    item = new SelectItem( title, resourceEdit(), this, this );
-    break;
-  case DblSpin:
-    item = new DoubleSpinItem( title, resourceEdit(), this, this );
-    break;
-  case IntSpin:
-    item = new IntegerSpinItem( title, resourceEdit(), this, this );
-    break;
-  case Double:
-    item = new DoubleEditItem( title, resourceEdit(), this, this );
-    break;
-  case Integer:
-    item = new IntegerEditItem( title, resourceEdit(), this, this );
-    break;
-  case Space:
-    item = new Spacer( resourceEdit(), this, this );
-    break;
-  case GroupBox:
-    item = new Group( title, resourceEdit(), this, this );
-    break;
-  case Font:
-    item = new FontItem( title, resourceEdit(), this, this );
-    break;
-  case DirList:
-    item = new DirListItem( title, resourceEdit(), this, this );
-    break;
-  case File:
-    item = new FileItem( title, resourceEdit(), this, this );
-    break;
-  }
-
-  return item;
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::PrefItem::PrefItem( const int type, QtxResourceEdit* edit, Item* pi, QWidget* parent )
-: QHBox( parent ),
-Item( edit, pi ),
-myType( type )
-{
-  setSpacing( 5 );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::PrefItem::~PrefItem()
-{
-}
-
-/*!
-  \return preference item type
-*/
-int QtxListResourceEdit::PrefItem::type() const
-{
-  return myType;
-}
-
-/*!
-  Doesn't create item, \return 0 by default
-*/
-QtxResourceEdit::Item* QtxListResourceEdit::PrefItem::createItem( const QString&, const int )
-{
-  return 0;
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::Spacer::Spacer( QtxResourceEdit* edit, Item* pItem, QWidget* parent )
-: PrefItem( Space, edit, pItem, parent )
-{
-  setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::Spacer::~Spacer()
-{
-}
-
-/*!
-  Default empty implementation of resources storing
-*/
-void QtxListResourceEdit::Spacer::store()
-{
-}
-
-/*!
-  Default empty implementation of resources retrieving
-*/
-void QtxListResourceEdit::Spacer::retrieve()
-{
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::SelectItem::SelectItem( const QString& title, QtxResourceEdit* edit,
-                                            Item* pItem, QWidget* parent )
-: PrefItem( Selector, edit, pItem, parent )
-{
-  new QLabel( title, this );
-  myList = new QComboBox( false, this );
-  myList->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::SelectItem::~SelectItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::SelectItem::store()
-{
-  int idx = myList->currentItem();
-  if ( myIndex.contains( idx ) )
-    setInteger( myIndex[idx] );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::SelectItem::retrieve()
-{
-  int id = getInteger( -1 );
-
-  int idx = -1;
-  for ( QMap<int, int>::ConstIterator it = myIndex.begin(); it != myIndex.end() && idx == -1; ++it )
-  {
-    if ( it.data() == id )
-      idx = it.key();
-  }
-
-  myList->setCurrentItem( idx );
-}
-
-/*!
-  \return value of property
-  \param prop - property name
-*/
-QVariant QtxListResourceEdit::SelectItem::property( const QString& name ) const
-{
-  QVariant val;
-  if ( name == QString( "strings" ) )
-  {
-    QStringList lst;
-    for ( int i = 0; i < (int)myList->count(); i++ )
-      lst.append( myList->text( i ) );
-    val = QVariant( lst );
-  }
-  else if ( name == QString( "indexes" ) )
-  {
-    QValueList<QVariant> lst;
-    for ( int i = 0; i < (int)myList->count(); i++ )
-      lst.append( myIndex.contains( i ) ? myIndex[i] : 0 );
-    val = QVariant( lst );
-  }
-  return val;
-}
-
-/*!
-  Sets property value
-  \param name - name of property
-  \param var - value of property
-*/
-void QtxListResourceEdit::SelectItem::setProperty( const QString& name, const QVariant& val )
-{
-  if ( name == QString( "strings" ) )
-    setStrings( val );
-  else if ( name == QString( "indexes" ) )
-    setIndexes( val );
-}
-
-/*!
-  Sets property "strings" - items for selection in combo box
-  \param var - must be string list: list of items
-*/
-void QtxListResourceEdit::SelectItem::setStrings( const QVariant& var )
-{
-  if ( var.type() != QVariant::StringList )
-    return;
-
-  setStrings( var.toStringList() );
-}
-
-/*!
-  Sets property "indexes" - corresponding indices of items in combo box
-  \param var - must be list of integer variants: list of indices
-*/
-void QtxListResourceEdit::SelectItem::setIndexes( const QVariant& var )
-{
-  if ( var.type() != QVariant::List )
-    return;
-
-  QValueList<QVariant> varList = var.toList();
-  QValueList<int> lst;
-  for ( QValueList<QVariant>::const_iterator it = varList.begin(); it != varList.end(); ++it )
-  {
-    if ( (*it).canCast( QVariant::Int ) )
-      lst.append( (*it).toInt() );
-  }
-  setIndexes( lst );
-}
-
-/*!
-  Sets property "strings" - items for selection in combo box
-  \param lst - list of items
-*/
-void QtxListResourceEdit::SelectItem::setStrings( const QStringList& lst )
-{
-  myList->clear();
-  myList->insertStringList( lst );
-}
-
-/*!
-  Sets property "indexes" - corresponding indices of items in combo box
-  \param var - list of indices
-*/
-void QtxListResourceEdit::SelectItem::setIndexes( const QValueList<int>& lst )
-{
-  myIndex.clear();
-
-  int idx = 0;
-  for ( QValueList<int>::const_iterator it = lst.begin(); it != lst.end(); ++it, idx++ )
-    myIndex.insert( idx, *it );
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::StateItem::StateItem( const QString& title, QtxResourceEdit* edit,
-                                           Item* pItem, QWidget* parent )
-: PrefItem( Bool, edit, pItem, parent )
-{
-  myState = new QCheckBox( title, this );
-  myState->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::StateItem::~StateItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::StateItem::store()
-{
-  setBoolean( myState->isChecked() );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::StateItem::retrieve()
-{
-  myState->setChecked( getBoolean() );
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::StringItem::StringItem( const QString& title, QtxResourceEdit* edit,
-                                             Item* pItem, QWidget* parent )
-: PrefItem( String, edit, pItem, parent )
-{
-  new QLabel( title, this );
-  myString = new QLineEdit( this );
-  myString->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::StringItem::~StringItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::StringItem::store()
-{
-  setString( myString->text() );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::StringItem::retrieve()
-{
-  myString->setText( getString() );
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::IntegerEditItem::IntegerEditItem( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
-: PrefItem( Integer, edit, pItem, parent )
-{
-  new QLabel( title, this );
-  myInteger = new QLineEdit( this );
-  myInteger->setValidator( new QIntValidator( myInteger ) );
-  myInteger->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::IntegerEditItem::~IntegerEditItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::IntegerEditItem::store()
-{
-  setString( myInteger->text() );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::IntegerEditItem::retrieve()
-{
-  myInteger->setText( getString() );
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::IntegerSpinItem::IntegerSpinItem( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
-: PrefItem( IntSpin, edit, pItem, parent )
-{
-  new QLabel( title, this );
-  myInteger = new QtxIntSpinBox( this );
-  myInteger->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::IntegerSpinItem::~IntegerSpinItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::IntegerSpinItem::store()
-{
-  setInteger( myInteger->value() );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::IntegerSpinItem::retrieve()
-{
-  myInteger->setValue( getInteger() );
-}
-
-/*!
-  \return value of property
-  \param prop - property name
-*/
-QVariant QtxListResourceEdit::IntegerSpinItem::property( const QString& name ) const
-{
-  QVariant var;
-  if ( name == QString( "minimum" ) || name == QString( "min" ) )
-    var = QVariant( myInteger->minValue() );
-  else if ( name == QString( "maximum" ) || name == QString( "max" ) )
-    var = QVariant( myInteger->maxValue() );
-  else if ( name == QString( "step" ) )
-    var = QVariant( myInteger->lineStep() );
-  else if ( name == QString( "special" ) )
-    var = QVariant( myInteger->specialValueText() );
-  else if ( name == QString( "prefix" ) )
-    var = QVariant( myInteger->prefix() );
-  else if ( name == QString( "suffix" ) )
-    var = QVariant( myInteger->suffix() );
-  return var;
-}
-
-/*!
-  Sets property value
-  \param name - name of property
-  \param var - value of property
-*/
-void QtxListResourceEdit::IntegerSpinItem::setProperty( const QString& name, const QVariant& var )
-{
-  QVariant prop = var;
-
-  if ( ( name == QString( "minimum" ) || name == QString( "min" ) ) && prop.cast( QVariant::Int ) )
-    myInteger->setMinValue( prop.toInt() );
-  else if ( ( name == QString( "maximum" ) || name == QString( "max" ) ) && prop.cast( QVariant::Int ) )
-    myInteger->setMaxValue( prop.toInt() );
-  else if ( name == QString( "step" ) && prop.cast( QVariant::Int ) && prop.toInt() > 0 )
-    myInteger->setLineStep( prop.toInt() );
-  else if ( name == QString( "special" ) && prop.cast( QVariant::String ) )
-    myInteger->setSpecialValueText( prop.toString() );
-  else if ( name == QString( "prefix" ) && prop.cast( QVariant::String ) )
-    myInteger->setPrefix( prop.toString() );
-  else if ( name == QString( "suffix" ) && prop.cast( QVariant::String ) )
-    myInteger->setSuffix( prop.toString() );
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::DoubleEditItem::DoubleEditItem( const QString& title, QtxResourceEdit* edit,
-                                                     Item* pItem, QWidget* parent )
-: PrefItem( Double, edit, pItem, parent )
-{
-  new QLabel( title, this );
-  myDouble = new QLineEdit( this );
-  myDouble->setValidator( new QDoubleValidator( myDouble ) );
-  myDouble->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::DoubleEditItem::~DoubleEditItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::DoubleEditItem::store()
-{
-  setString( myDouble->text() );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::DoubleEditItem::retrieve()
-{
-  myDouble->setText( getString() );
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::DoubleSpinItem::DoubleSpinItem( const QString& title, QtxResourceEdit* edit,
-                                                     Item* pItem, QWidget* parent )
-: PrefItem( DblSpin, edit, pItem, parent )
-{
-  new QLabel( title, this );
-  myDouble = new QtxDblSpinBox( this );
-  myDouble->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::DoubleSpinItem::~DoubleSpinItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::DoubleSpinItem::store()
-{
-  setDouble( myDouble->value() );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::DoubleSpinItem::retrieve()
-{
-  myDouble->setValue( getDouble() );
-}
-
-/*!
-  \return value of property
-  \param prop - property name
-*/
-QVariant QtxListResourceEdit::DoubleSpinItem::property( const QString& name ) const
-{
-  QVariant var;
-  if ( name == QString( "minimum" ) || name == QString( "min" ) )
-    var = QVariant( myDouble->minValue() );
-  else if ( name == QString( "maximum" ) || name == QString( "max" ) )
-    var = QVariant( myDouble->maxValue() );
-  else if ( name == QString( "precision" ) )
-    var = QVariant( myDouble->precision() );
-  else if ( name == QString( "step" ) )
-    var = QVariant( myDouble->lineStep() );
-  else if ( name == QString( "special" ) )
-    var = QVariant( myDouble->specialValueText() );
-  else if ( name == QString( "prefix" ) )
-    var = QVariant( myDouble->prefix() );
-  else if ( name == QString( "suffix" ) )
-    var = QVariant( myDouble->suffix() );
-  return var;
-}
-
-/*!
-  Sets property value
-  \param name - name of property
-  \param var - value of property
-*/
-void QtxListResourceEdit::DoubleSpinItem::setProperty( const QString& name, const QVariant& var )
-{
-  QVariant prop = var;
-
-  if ( ( name == QString( "minimum" ) || name == QString( "min" ) ) && prop.cast( QVariant::Double ) )
-    myDouble->setMinValue( prop.toDouble() );
-  else if ( ( name == QString( "maximum" ) || name == QString( "max" ) ) && prop.cast( QVariant::Double ) )
-    myDouble->setMaxValue( prop.toDouble() );
-  else if ( name == QString( "step" ) && prop.cast( QVariant::Double ) && prop.toDouble() > 0 )
-    myDouble->setLineStep( prop.toDouble() );
-  else if ( name == QString( "precision" ) && prop.cast( QVariant::Int ) && prop.toInt() > 0 )
-    myDouble->setPrecision( prop.toInt() );
-  else if ( name == QString( "special" ) && prop.cast( QVariant::String ) )
-    myDouble->setSpecialValueText( prop.toString() );
-  else if ( name == QString( "prefix" ) && prop.cast( QVariant::String ) )
-    myDouble->setPrefix( prop.toString() );
-  else if ( name == QString( "suffix" ) && prop.cast( QVariant::String ) )
-    myDouble->setSuffix( prop.toString() );
-}
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::ColorItem::ColorItem( const QString& title, QtxResourceEdit* edit,
-                                           Item* pItem, QWidget* parent )
-: PrefItem( Color, edit, pItem, parent )
-{
-  /*!
-    \class QtxListResourceEdit::ColorItem::ColorSelector
-    \brief Label, showing color and allowing to pick color with help of standard color dialog
-  */
-  class ColorSelector : public QLabel
-  {
-  public:
-    ColorSelector( QWidget* parent = 0 ) : QLabel( parent )
-    {
-      setFrameStyle( WinPanel | Raised );
-    }
-    virtual ~ColorSelector() {}
-    virtual QSize minimumSizeHint() const
-    {
-      return QLabel::minimumSizeHint() + QSize( 0, 2 );
-    }
-
-  protected:
-    virtual void mousePressEvent( QMouseEvent* e )
-    {
-      if ( e->button() == LeftButton )
-      {
-        setFrameStyle( WinPanel | Sunken );
-        QColor c = QColorDialog::getColor( paletteBackgroundColor(), this );
-        if ( c.isValid() )
-          setPaletteBackgroundColor( c );
-
-        setFrameStyle( WinPanel | Raised );
-      }
-    }
-  };
-
-  new QLabel( title, this );
-  myColor = new ColorSelector( this );
-  myColor->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::ColorItem::~ColorItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::ColorItem::store()
-{
-  setColor( myColor->paletteBackgroundColor() );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::ColorItem::retrieve()
-{
-  myColor->setPaletteBackgroundColor( getColor() );
-}
-
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::FontItem::FontItem( const QString& title, QtxResourceEdit* edit,
-                                         Item* pItem, QWidget* parent )
-: PrefItem( Font, edit, pItem, parent )
-{
-  new QLabel( title, this );
-  myFamilies = new QtxComboBox( false, this );
-  mySizes = new QtxComboBox( true, this );
-  mySizes->setInsertionPolicy( QComboBox::NoInsertion );
-  myBold = new QCheckBox( tr( "Bold" ), this );
-  myItalic = new QCheckBox( tr( "Italic" ), this );
-  myUnderline = new QCheckBox( tr( "Shadow" ), this );
-  myPreview = new QToolButton( this );
-  myPreview->setText( "..." );
-
-  myFamilies->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Preferred );
-  mySizes->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Preferred );
-
-  connect( myFamilies, SIGNAL( activated( int ) ), this, SLOT( onActivateFamily( int ) ) );
-  connect( myPreview, SIGNAL( clicked() ), this, SLOT( onPreview() ) );
-
-  setProperty( "system", ( bool )true );
-  setProperty( "widget_flags", ( int )All );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::FontItem::~FontItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::FontItem::store()
-{
-  QFont f( family(), size() );
-  bool bold, italic, underline;
-  params( bold, italic, underline );
-  f.setBold( bold );
-  f.setItalic( italic );
-  f.setUnderline( underline );
-  Item::setFont( f );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::FontItem::retrieve()
-{
-  QFont f = getFont();
-  setFamily( f.family() );
-  setSize( f.pointSize() );
-  setParams( f.bold(), f.italic(), f.underline() );
-}
-
-/*!
-  \return value of property
-  \param prop - property name
-*/
-QVariant QtxListResourceEdit::FontItem::property( const QString& name ) const
-{
-  if( name=="system" )
-    return myIsSystem;
-
-  else if( name=="widget_flags" )
-    return ( int )myFlags;
-  
-  if( myIsSystem )
-  {
-    if( name=="families" )
-    {
-      QFontDatabase fdb;
-      return fdb.families();
-    }
-
-    else if( name=="default_family" )
-    {
-      QFontDatabase fdb;
-      QStringList fam = fdb.families();
-      if( fam.count()>0 )
-        return fam.first();
-      else
-        return QString::null;
-    }
-
-    else
-    {
-      QStringList parts = QStringList::split( ":", name );
-      if( parts.count()==2 )
-      {
-        if( parts[1]=="default_bold" || parts[1]=="default_italic" || parts[1]=="default_underline" )
-          return false;
-
-        else if( parts[1]=="sizes" )
-        {
-          QFontDatabase fdb;
-          QValueList<int> sizes = fdb.pointSizes( parts[0] );
-          QValueList<QVariant> vsizes;
-          QValueList<int>::const_iterator anIt = sizes.begin(),
-                                          aLast = sizes.end();
-          for( ; anIt!=aLast; anIt++ )
-            vsizes.append( *anIt );
-
-          return vsizes;
-        }
-
-        else if( parts[1]=="default_size" )
-        {
-          if( parts[0].isEmpty() )
-            return 0;
-            
-          QFontDatabase fdb;
-          QValueList<int> sizes = fdb.pointSizes( parts[0] );
-          if( sizes.count()>0 )
-            return sizes.first();
-          else
-            return 0;
-        }
-      }
-    }
-  }
-
-  else if( myProperties.contains( name ) )
-    return myProperties[ name ];
-
-  return QVariant();
-}
-
-/*!
-  Sets property value
-  \param name - name of property
-  \param var - value of property
-*/
-void QtxListResourceEdit::FontItem::setProperty( const QString& name, const QVariant& value )
-{
-  if( name=="system" )
-  {
-    if( !value.canCast( QVariant::Bool ) )
-      return;
-
-    bool isSystem = value.toBool();
-    if( myIsSystem==isSystem )
-      return;
-
-    myIsSystem = isSystem;
-
-    QVariant families = property( "families" );
-    QString fam = family();
-
-    myFamilies->clear();
-    if( families.canCast( QVariant::StringList ) )
-    {
-      QStringList list = families.toStringList();
-      myFamilies->insertStringList( list );
-    }
-
-    setFamily( fam );
-    setSize( -1 ); //set default size
-  }
-  
-  else if( name=="widget_flags" )
-  {
-    if( !value.canCast( QVariant::Int ) )
-      return;
-
-    int wf = value.toInt();
-    
-    myFlags = wf;
-    myFamilies ->setShown( wf & Family );
-    mySizes    ->setShown( wf & Size );
-    mySizes->lineEdit()->setReadOnly( ( wf & UserSize )==0 );
-    myBold     ->setShown( wf & Bold );
-    myItalic   ->setShown( wf & Italic );
-    myUnderline->setShown( wf & Underline );
-    bool isSystem = property( "system" ).canCast( QVariant::Bool ) ? property( "system" ).toBool() : false;
-    myPreview->setShown( ( wf & Preview ) && isSystem );
-
-    internalUpdate();
-  }
-  
-  else
-    myProperties[ name ] = value;
-}
-
-/*!
-  Sets family of font
-  \param f - new family
-*/
-void QtxListResourceEdit::FontItem::setFamily( const QString& f )
-{
-  QString curtext;
-  if( myFamilies->isShown() )
-  {
-    if( myFamilies->listBox()->findItem( f, Qt::ExactMatch ) )
-      curtext = f;
-  }
-  else
-  {
-    QVariant deffam = property( "default_family" );
-    if( deffam.canCast( QVariant::String ) )
-      curtext = deffam.toString();
-  }
-  
-  if ( curtext.isEmpty() )
-    curtext = (QApplication::font()).family();
-
-  int idx = -1;
-  for ( int i = 0; i < (int)myFamilies->count() && idx < 0; i++ )
-  {
-    if ( myFamilies->text( i ) == curtext )
-      idx = i;
-  }
-
-  if ( idx >= 0 )
-    myFamilies->setCurrentItem( idx );
-
-  onActivateFamily( idx );  
-}
-
-/*!
-  \return family of font
-*/
-QString QtxListResourceEdit::FontItem::family() const
-{
-  return myFamilies->currentText();
-}
-
-/*!
-  Sets size of font
-  \param s - new size of font
-*/
-void QtxListResourceEdit::FontItem::setSize( const int s )
-{
-  int cursize = -1;
-  if( mySizes->isShown() && s>0 )
-  {
-    if( ( myFlags & UserSize ) || mySizes->listBox()->findItem( QString( "%1" ).arg( s ), Qt::ExactMatch ) )
-      cursize = s;
-  }
-  else
-  {
-    QVariant defsize = property( QString( "%1:default_size" ).arg( family() ) );
-    if( defsize.canCast( QVariant::Int ) )
-      cursize = defsize.toInt();
-  }
-
-  mySizes->setCurrentText( cursize>0 ? QString( "%1" ).arg( cursize ) : "" );
-}
-
-/*!
-  \return size of font
-*/
-int QtxListResourceEdit::FontItem::size() const
-{
-  QString s = mySizes->currentText();
-  bool ok;
-  int pSize = s.toInt( &ok );
-  return ( ok ? pSize : 0 );
-}
-
-/*!
-  Sets font parameters
-  \param bold - is font bold
-  \param italic - is font italic
-  \param underline - is font underlined
-*/
-void QtxListResourceEdit::FontItem::setParams( const bool bold, const bool italic, const bool underline )
-{
-  bool curbold = false, curitalic = false, curunderline = false;
-  if( myBold->isShown() )
-    curbold = bold;
-  else
-  {
-    QVariant def = property( QString( "%1:default_bold" ).arg( family() ) );
-    if( def.canCast( QVariant::Bool ) )
-      curbold = def.toBool();
-  }
-  if( myItalic->isShown() )
-    curitalic = italic;
-  else
-  {
-    QVariant def = property( QString( "%1:default_italic" ).arg( family() ) );
-    if( def.canCast( QVariant::Bool ) )
-      curitalic = def.toBool();
-  }
-  if( myUnderline->isShown() )
-    curunderline = underline;
-  else
-  {
-    QVariant def = property( QString( "%1:default_underline" ).arg( family() ) );
-    if( def.canCast( QVariant::Bool ) )
-      curunderline = def.toBool();
-  }
-  myBold->setChecked( curbold );
-  myItalic->setChecked( curitalic );
-  myUnderline->setChecked( curunderline );
-}
-
-/*!
-  \return font parameters
-  \param bold - is font bold
-  \param italic - is font italic
-  \param underline - is font underlined
-*/
-void QtxListResourceEdit::FontItem::params( bool& bold, bool& italic, bool& underline )
-{
-  bold = myBold->isChecked();
-  italic = myItalic->isChecked();
-  underline = myUnderline->isChecked();
-}
-
-/*!
-  Updates internal selection of font properties
-*/
-void QtxListResourceEdit::FontItem::internalUpdate()
-{
-  setFamily( family() );
-  setSize( size() );
-  bool b1, b2, b3;
-  params( b1, b2, b3 );
-  setParams( b1, b2, b3 );
-}
-
-/*!
-  SLOT: called if family is activated, updates list of possible sizes
-*/
-void QtxListResourceEdit::FontItem::onActivateFamily( int )
-{
-  QVariant sizes = property( QString( "%1:sizes" ).arg( family() ) );
-
-  int s = size();
-  mySizes->clear();
-  if( sizes.canCast( QVariant::List ) )
-  {
-    QValueList<QVariant> list = sizes.toList();
-    QStringList sizeItems;
-    QValueList<QVariant>::const_iterator anIt = list.begin(),
-                                         aLast = list.end();
-    for( ; anIt!=aLast; anIt++ )
-      if( (*anIt).canCast( QVariant::Int ) && (*anIt).toInt()>0 )
-        sizeItems.append( QString( "%1" ).arg( (*anIt).toInt() ) );
-    mySizes->insertStringList( sizeItems );
-  }
-  setSize( s );
-}
-
-/*!
-  SLOT: called if it is necessary to show font preview
-*/
-void QtxListResourceEdit::FontItem::onPreview()
-{
-  QFont f( family(), size() );
-  bool bold, italic, underline;
-  params( bold, italic, underline );
-  f.setBold( bold );
-  f.setItalic( italic );
-  f.setUnderline( underline );
-
-  bool ok;
-  f = QFontDialog::getFont( &ok, f );
-
-  if( ok )
-  {
-    setFamily( f.family() );
-    setSize( f.pointSize() );
-    setParams( f.bold(), f.italic(), f.underline() );
-  }
-}
-
-
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::DirListItem::DirListItem( const QString& title, QtxResourceEdit* edit, Item* pItem, QWidget* parent )
-: PrefItem( Font, edit, pItem, parent )
-{
-  myDirListEditor = new QtxDirListEditor( this ); 
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::DirListItem::~DirListItem()
-{
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::DirListItem::store()
-{
-  QStringList list;
-  myDirListEditor->getPathList(list);
-  setString( QString(list.join(";")) );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::DirListItem::retrieve()
-{
-  myDirListEditor->setPathList(QStringList::split(";", getString()));
-}
-
-
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::FileItem::FileItem( const QString& title, QtxResourceEdit* edit,
-                                         Item* pItem, QWidget* parent )
-: PrefItem( Font, edit, pItem, parent ),
-  myFlags( QFileInfo::ReadUser ),
-  myIsExisting( true ),
-  myIsReadOnly ( true ),
-  myFileDlg( 0 )
-{
-  new QLabel( title, this );
-  myFile = new QLineEdit( this );
-  myFile->setValidator( new FileValidator( this, myFile ) );
-  myFile->setReadOnly( myIsReadOnly );
-  myOpenFile = new QToolButton( this );
-  myOpenFile->setText( "..." );
-  connect( myOpenFile, SIGNAL( clicked() ), this, SLOT( onOpenFile() ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::FileItem::~FileItem()
-{
-  if( myFileDlg ) 
-    delete myFileDlg;
-}
-
-/*!
-  Stores value to resource manager
-*/
-void QtxListResourceEdit::FileItem::store()
-{
-  setString( myFile->text() );
-}
-
-/*!
-  Retrieve value to resource manager
-*/
-void QtxListResourceEdit::FileItem::retrieve()
-{
-  myFile->setText( getString() );
-}
-
-/*!
-  \return value of property
-  \param prop - property name
-*/
-QVariant QtxListResourceEdit::FileItem::property( const QString& name ) const
-{
-  if( name=="filter" )
-    return myFilter;
-  else if( name=="existing" )
-    return myIsExisting;
-  else if( name=="flags" )
-    return myFlags;
-  else if( name=="readOnly")
-    return myIsReadOnly;
-
-  return QVariant();
-}
-
-/*!
-  Sets property value
-  \param name - name of property
-  \param var - value of property
-*/
-void QtxListResourceEdit::FileItem::setProperty( const QString& name, const QVariant& value )
-{
-  if( name=="filter" )
-  {
-    if( value.canCast( QVariant::String ) )
-    {
-      myFilter.clear();
-      myFilter.append( value.toString() );
-    }
-    else if( value.canCast( QVariant::StringList ) )
-      myFilter = value.toStringList();
-  }
-  else if( name=="existing" && value.canCast( QVariant::Bool ) )
-    myIsExisting = value.toBool();
-
-  else if( name=="flags" && value.canCast( QVariant::UInt ) )
-    myFlags = value.toUInt();
-
-  else if( name=="readOnly" && value.canCast( QVariant::Bool) ) {
-    myIsReadOnly = value.toBool();
-    myFile->setReadOnly( myIsReadOnly );
-  }
-}
-
-/*!
-  SLOT: called if user click "Open File" button, shows dialog 
-*/
-void QtxListResourceEdit::FileItem::onOpenFile()
-{
-  if( !myFileDlg )
-  {
-    myFileDlg = new QFileDialog( "." );
-    connect( myFileDlg, SIGNAL( fileHighlighted( const QString& ) ), this, SLOT( onFileSelected( const QString& ) ) );
-  }
-  
-  myFileDlg->setCaption( title() );
-  myFileDlg->setFilters( myFilter );
-  myFileDlg->setMode( myIsExisting ? QFileDialog::ExistingFile : QFileDialog::AnyFile );
-
-  if( myFileDlg->exec()==QDialog::Accepted )
-  {
-               QString selFile = QDir::convertSeparators( myFileDlg->selectedFile() );
-    myFile->setText( selFile ); 
-  }
-}
-
-/*!
-  \return true if file satisfies permissions
-  \param f - file name
-*/
-bool QtxListResourceEdit::FileItem::isFileCorrect( const QString& f ) const
-{
-  bool res = false;
-  QFileInfo info( f );
-  if( !myIsExisting || info.exists() )
-    res = info.isFile() && info.permission( myFlags );
-
-  return res;
-}
-
-/*!
-  SLOT: called if user has selected file in file dialog, checks file permissions and passes it's name to widget
-  \param f - file name
-*/
-void QtxListResourceEdit::FileItem::onFileSelected( const QString& f )
-{
-  if( myFileDlg && !isFileCorrect( f ) )
-    myFileDlg->setSelection( "" );
-}
-
-
-/*!
-  Constructor
-*/
-QtxListResourceEdit::FileItem::FileValidator::FileValidator( FileItem* item, QObject* parent )
-: QValidator( parent ),
-  myItem( item )
-{
-}
-
-/*!
-  Destructor
-*/
-QtxListResourceEdit::FileItem::FileValidator::~FileValidator()
-{
-}
-
-/*!
-  Check file permissions
-  \param f - file name
-*/
-QValidator::State QtxListResourceEdit::FileItem::FileValidator::validate( QString& f, int& ) const
-{
-  if( myItem && myItem->isFileCorrect( f ) )
-    return QValidator::Acceptable;
-  else
-    return QValidator::Intermediate;
-}
diff --git a/src/Qtx/QtxListResourceEdit.h b/src/Qtx/QtxListResourceEdit.h
deleted file mode 100644 (file)
index fc53800..0000000
+++ /dev/null
@@ -1,532 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxListResourceEdit.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXLISTRESOURCEEDIT_H
-#define QTXLISTRESOURCEEDIT_H
-
-#include "QtxResourceEdit.h"
-
-#include <qmap.h>
-#include <qhbox.h>
-#include <qframe.h>
-#include <qgroupbox.h>
-#include <qvalidator.h>
-
-class QLabel;
-class QListBox;
-class QLineEdit;
-class QCheckBox;
-class QComboBox;
-class QTabWidget;
-class QWidgetStack;
-
-class QtxIntSpinBox;
-class QtxDblSpinBox;
-
-class QtxDirListEditor;
-
-/*!
-  \class QtxListResourceEdit
-  GUI implementation of QtxResourceEdit - manager of resources
-*/
-
-class QTX_EXPORT QtxListResourceEdit : public QFrame, public QtxResourceEdit
-{
-  Q_OBJECT
-
-public:
-  class Tab;
-  class Group;
-  class Category;
-  class PrefItem;
-
-  class Spacer;
-  class ColorItem;
-  class StateItem;
-  class SelectItem;
-  class StringItem;
-  class DoubleSpinItem;
-  class DoubleEditItem;
-  class IntegerSpinItem;
-  class IntegerEditItem;
-  class FontItem;
-  class FileItem;
-  class DirListItem;
-
-  enum { Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer, GroupBox, Font, DirList, File, User };
-
-public:
-  QtxListResourceEdit( QtxResourceMgr*, QWidget* = 0 );
-  virtual ~QtxListResourceEdit();
-
-  virtual void  setItemProperty( const int, const QString&, const QVariant& );
-
-signals:
-  void          resourceChanged( int );
-  void          resourceChanged( QString&, QString& );
-  void          resourcesChanged( const QMap<int, QString>& );
-
-private slots:
-  void          onSelectionChanged();
-
-protected:
-  virtual void  itemAdded( Item* );
-  virtual Item* createItem( const QString&, const int );
-  virtual void  changedResources( const QMap<Item*, QString>& );
-
-private:
-  void          updateState();
-  void          updateVisible();
-
-private:
-  QListBox*     myList;
-  QWidgetStack* myStack;
-};
-
-/*!
-  \class QtxListResourceEdit::Category
-  GUI implementation of 'Category' frame
-*/
-
-class QtxListResourceEdit::Category : public QFrame, public Item
-{
-public:
-  Category( QtxListResourceEdit*, QWidget* = 0 );
-  virtual ~Category();
-
-  virtual bool     isEmpty() const;
-
-  virtual int      type() const;
-  virtual void     store();
-  virtual void     retrieve();
-
-  virtual QVariant property( const QString& ) const;
-  virtual void     setProperty( const QString&, const QVariant& );
-
-protected:
-  virtual Item*    createItem( const QString&, const int );
-
-private:
-  void             updateState();
-
-private:
-  QLabel*          myInfo;
-  QTabWidget*      myTabs;
-};
-
-/*!
-  \class QtxListResourceEdit::Tab
-  GUI implementation of resources tab.
-*/
-
-class QtxListResourceEdit::Tab : public QFrame, public Item
-{
-public:
-  Tab( QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~Tab();
-
-  virtual int   type() const;
-  virtual void  store();
-  virtual void  retrieve();
-
-public:
-  virtual void  polish();
-
-protected:
-  virtual Item* createItem( const QString&, const int );
-
-private:
-  void          adjustLabels();
-
-private:
-  QWidget*      myMainFrame;
-};
-
-/*!
-  \class QtxListResourceEdit::Group
-  GUI implementation of resources group.
-*/
-
-class QtxListResourceEdit::Group : public QGroupBox, public Item
-{
-public:
-  Group( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~Group();
-
-  virtual int      type() const;
-  virtual void     store();
-  virtual void     retrieve();
-
-  virtual QVariant property( const QString& ) const;
-  virtual void     setProperty( const QString&, const QVariant& );
-
-  virtual void     setTitle( const QString& );
-
-protected:
-  virtual Item*    createItem( const QString&, const int );
-};
-
-/*!
-  \class QtxListResourceEdit::PrefItem
-  Base class for preferences items.
-*/
-
-class QtxListResourceEdit::PrefItem : public QHBox, public Item
-{
-public:
-  PrefItem( const int, QtxResourceEdit*, Item* = 0, QWidget* = 0 );
-  virtual ~PrefItem();
-
-  virtual int   type() const;
-
-protected:
-  virtual Item* createItem( const QString&, const int );
-
-private:
-  int           myType;
-};
-
-/*!
-  \class QtxListResourceEdit::Spacer
-  GUI implementation of resources spacer.
-*/
-
-class QtxListResourceEdit::Spacer : public PrefItem
-{
-public:
-  Spacer( QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~Spacer();
-
-  virtual void store();
-  virtual void retrieve();
-};
-
-/*!
-  \class QtxListResourceEdit::SelectItem
-  GUI implementation of resources selector item.
-*/
-
-class QtxListResourceEdit::SelectItem : public PrefItem
-{
-public:
-  SelectItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~SelectItem();
-
-  virtual void     store();
-  virtual void     retrieve();
-
-  virtual QVariant property( const QString& ) const;
-  virtual void     setProperty( const QString&, const QVariant& );
-
-private:
-  void             setStrings( const QVariant& );
-  void             setIndexes( const QVariant& );
-
-  void             setStrings( const QStringList& );
-  void             setIndexes( const QValueList<int>& );
-
-private:
-  QComboBox*       myList;
-  QMap<int, int>   myIndex;
-};
-
-/*!
-  \class  QtxListResourceEdit::StateItem
-  GUI implementation of resources bool item.
-*/
-class QtxListResourceEdit::StateItem : public PrefItem
-{
-public:
-  StateItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~StateItem();
-
-  virtual void     store();
-  virtual void     retrieve();
-
-private:
-  QCheckBox*       myState;
-};
-
-/*!
-  \class  QtxListResourceEdit::StringItem
-  GUI implementation of resources string item.
-*/
-
-class QtxListResourceEdit::StringItem : public PrefItem
-{
-public:
-  StringItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~StringItem();
-
-  virtual void     store();
-  virtual void     retrieve();
-
-private:
-  QLineEdit*       myString;
-};
-
-/*!
-  \class  QtxListResourceEdit::IntegerEditItem
-  GUI implementation of resources integer item.
-*/
-
-class QtxListResourceEdit::IntegerEditItem : public PrefItem
-{
-public:
-  IntegerEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~IntegerEditItem();
-
-  virtual void     store();
-  virtual void     retrieve();
-
-private:
-  QLineEdit*       myInteger;
-};
-
-/*!
-  \class  QtxListResourceEdit::IntegerSpinItem
-  GUI implementation of resources integer item.
-*/
-
-class QtxListResourceEdit::IntegerSpinItem : public PrefItem
-{
-public:
-  IntegerSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~IntegerSpinItem();
-
-  virtual void     store();
-  virtual void     retrieve();
-
-  virtual QVariant property( const QString& ) const;
-  virtual void     setProperty( const QString&, const QVariant& );
-
-private:
-  QtxIntSpinBox*  myInteger;
-};
-
-/*!
-  \class  QtxListResourceEdit::DoubleEditItem
-  GUI implementation of resources double item.
-*/
-
-class QtxListResourceEdit::DoubleEditItem : public PrefItem
-{
-public:
-  DoubleEditItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~DoubleEditItem();
-
-  virtual void     store();
-  virtual void     retrieve();
-
-private:
-  QLineEdit*       myDouble;
-};
-
-/*!
-  \class  QtxListResourceEdit::DoubleSpinItem
-  GUI implementation of resources double item.
-*/
-
-class QtxListResourceEdit::DoubleSpinItem : public PrefItem
-{
-public:
-  DoubleSpinItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~DoubleSpinItem();
-
-  virtual void     store();
-  virtual void     retrieve();
-
-  virtual QVariant property( const QString& ) const;
-  virtual void     setProperty( const QString&, const QVariant& );
-
-private:
-  QtxDblSpinBox*   myDouble;
-};
-
-/*!
-  \class  QtxListResourceEdit::ColorItem
-  GUI implementation of resources color item.
-*/
-
-class QtxListResourceEdit::ColorItem : public PrefItem
-{
-public:
-  ColorItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~ColorItem();
-
-  virtual void     store();
-  virtual void     retrieve();
-
-private:
-  QWidget*         myColor;
-};
-
-class QtxComboBox;
-class QToolButton;
-
-/*!
-  \class  QtxListResourceEdit::FontItem
-  GUI implementation of resources font item.
-*/
-class QtxListResourceEdit::FontItem : public PrefItem
-{
-  Q_OBJECT
-
-public:
-  typedef enum
-  {
-    Family    = 0x01,
-    Size      = 0x02,
-    UserSize  = 0x04,
-    Bold      = 0x08,
-    Italic    = 0x10,
-    Underline = 0x20,
-    Preview   = 0x40,
-
-    All = Family | Size | UserSize | Bold | Italic | Underline | Preview
-    
-  } WidgetFlags;
-  
-public:
-  FontItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~FontItem();
-
-  virtual void store();
-  virtual void retrieve();
-
-  virtual QVariant property( const QString& ) const;
-  virtual void     setProperty( const QString&, const QVariant& );
-
-private slots:
-  void onActivateFamily( int );
-  void onPreview();
-  
-private:
-  void       setFamily( const QString& );
-  QString    family() const;
-  void       setSize( const int );
-  int        size() const;
-  void       setParams( const bool, const bool, const bool );
-  void       params( bool&, bool&, bool& );
-  void       internalUpdate();
-  
-private:
-  int            myFlags;
-  bool           myIsSystem;
-  QtxComboBox   *myFamilies, *mySizes;
-  QCheckBox     *myBold, *myItalic, *myUnderline;
-  QToolButton   *myPreview;
-  QMap<QString, QVariant>   myProperties;
-};
-
-
-/*!
-  \class QtxListResourceEdit
-  \brief GUI implementation of resources directory list item.
-*/
-class QtxListResourceEdit::DirListItem : public PrefItem
-{
-  Q_OBJECT
-  
-public:
-
-  /*!
-   * \brief Constructor
-   */
-  DirListItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  /*!
-   * \brief Destructor
-   */
-  virtual ~DirListItem();
-
-  /*!
-   * \brief Stores the data
-   */
-  virtual void     store();
-
-  /*!
-   * \brief Retrieves the data
-   */
-  virtual void     retrieve();
-
-private:
-  QtxDirListEditor* myDirListEditor; //!< The widget wich implements in GUI the list of directories
-};
-
-class QtxComboBox;
-class QToolButton;
-class QFileDialog;
-
-/*!
-  \class QtxListResourceEdit::FontItem
-  GUI implementation of resources font item.
-*/
-
-class QtxListResourceEdit::FileItem : public PrefItem
-{
-  Q_OBJECT
-
-private:
-  /*!
-    \class QtxListResourceEdit::FileItem::FileValidator
-    custom file validator: checks files on some rights
-  */
-
-  class FileValidator : public QValidator
-  {
-  public:
-    FileValidator( FileItem*, QObject* );
-    ~FileValidator();
-
-    virtual QValidator::State validate( QString&, int& ) const;
-
-  private:
-    FileItem* myItem;
-  };
-
-public:
-  FileItem( const QString&, QtxResourceEdit*, Item*, QWidget* = 0 );
-  virtual ~FileItem();
-
-  virtual void store();
-  virtual void retrieve();
-  
-  virtual QVariant property( const QString& ) const;
-  virtual void     setProperty( const QString&, const QVariant& );
-
-  virtual bool isFileCorrect( const QString& ) const;
-
-private slots:
-  void onOpenFile();
-  void onFileSelected( const QString& );
-
-private:
-  uint          myFlags;
-  bool          myIsReadOnly;
-  QStringList   myFilter;
-  bool          myIsExisting;
-  QLineEdit*    myFile;
-  QToolButton*  myOpenFile;
-  QFileDialog*  myFileDlg;
-};
-
-
-#endif
diff --git a/src/Qtx/QtxListView.cxx b/src/Qtx/QtxListView.cxx
deleted file mode 100755 (executable)
index 92af7e3..0000000
+++ /dev/null
@@ -1,422 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-
-#include "QtxListView.h"
-
-#include <qheader.h>
-#include <qpopupmenu.h>
-#include <qpushbutton.h>
-
-static const char* list_xpm[] = {
-"16 16 6 1",
-". c None",
-"a c #E3E9EB",
-"b c #798391",
-"c c #EBEBEB",
-"d c #ABB4BE",
-"e c #030E1F",
-"................",
-"................",
-"................",
-"...aaaaaaaaaa...",
-"..abbbbbbbbbbe..",
-"..abecbecbecbe..",
-"..abbbbbbbbbbe..",
-"..abecbecbecbe..",
-"..abecaaaaaaaa..",
-"..abeccdbbbbbb..",
-"..abecccdbbbbe..",
-"..abbbbe.dbbe...",
-"...eeeee..de....",
-"................",
-"................",
-"................" };
-
-/*!
-  Constructor
-*/
-QtxListView::QtxListView( const int state, QWidget* parent, const char* name, WFlags f )
-: QListView( parent, name, f ),
-myButton( 0 ),
-myHeaderState( state )
-{
-  initialize();
-}
-
-/*!
-  Constructor
-*/
-QtxListView::QtxListView( QWidget* parent, const char* name, WFlags f )
-: QListView( parent, name, f ),
-myButton( 0 ),
-myHeaderState( HeaderAuto )
-{
-  initialize();
-}
-
-/*!
-  Initialization
-*/
-void QtxListView::initialize()
-{
-  if ( myHeaderState == HeaderButton )
-  {
-    QPixmap p( list_xpm );
-
-    QPushButton* but = new QPushButton( this );
-    but->setDefault( false );
-    but->setFlat( true );
-    but->setIconSet( p );
-    but->setBackgroundPixmap( p );
-    if ( p.mask() )
-           but->setMask( *p.mask() );
-    myButton = but;
-
-    connect( myButton, SIGNAL( clicked() ), this, SLOT( onButtonClicked() ) );
-  }
-  else
-  {
-    header()->installEventFilter( this );
-  }
-
-  myPopup = new QPopupMenu( this );
-  connect( myPopup, SIGNAL( activated( int ) ), this, SLOT( onShowHide( int ) ) );
-  connect( header(), SIGNAL( sizeChange( int, int, int ) ), this, SLOT( onHeaderResized() ) );
-}
-
-/*!
-  Destructor
-*/
-QtxListView::~QtxListView()
-{
-}
-
-/*!
-  Add new column
-  \param label - column title
-  \param width - column width
-*/
-int QtxListView::addColumn( const QString& label, int width )
-{
-  int res = QListView::addColumn( label, width );
-  for ( int i = myAppropriate.count(); i <= res; i++ )
-    myAppropriate.append( 1 );
-  onHeaderResized();
-  return res;
-}
-
-/*!
-  Add new column
-  \param iconset - column icon
-  \param label - column title
-  \param width - column width
-*/
-int QtxListView::addColumn( const QIconSet& iconset, const QString& label, int width ) 
-{
-  int res = QListView::addColumn( iconset, label, width );
-  for ( int i = myAppropriate.count(); i <= res; i++ )
-    myAppropriate.append( 1 );
-  onHeaderResized();
-  return res;
-}
-
-/*!
-  Removes column
-  \param index - column index
-*/
-void QtxListView::removeColumn( int index ) 
-{
-  QListView::removeColumn( index );
-  if ( index >= 0 && index < (int)myAppropriate.count() )
-    myAppropriate.remove( myAppropriate.at( index ) );
-  onHeaderResized();
-}
-
-/*!
-  \return true if column is situated in popup for show/hide columns
-*/
-bool QtxListView::appropriate( const int index ) const
-{
-  return index >= 0 && index < (int)myAppropriate.count() && myAppropriate[index];
-}
-
-/*!
-  Sets appropriate state: whether column is situated in popup for show/hide columns
-  \param index - column index
-  \param on - new state
-*/
-void QtxListView::setAppropriate( const int index, const bool on )
-{
-  if ( index < 0 || index >= (int)myAppropriate.count() )
-    return;
-
-  myAppropriate[index] = on ? 1 : 0;
-}
-
-/*!
-  Resizes list view and header
-*/
-void QtxListView::resize( int w, int h )
-{
-  QListView::resize( w, h );
-  onHeaderResized();
-}
-
-/*!
-  Shows list view
-*/
-void QtxListView::show()
-{
-  QListView::show();
-  onHeaderResized();
-}
-
-/*!
-  Update on resize contents
-*/
-void QtxListView::resizeContents( int w, int h )
-{
-/*
-  if ( myButton && myButton->isVisibleTo( myButton->parentWidget() ) )
-  {
-    if ( header()->orientation() == Qt::Horizontal )
-      w += myButton->width();
-    else
-      h += myButton->width();
-  }
-*/
-  QListView::resizeContents( w, h );
-
-  onHeaderResized();
-}
-
-/*!
-  Shows column
-  \param ind - column index
-*/
-void QtxListView::show( int ind )
-{
-  setShown( ind, true );
-}
-
-/*!
-  Hides column
-  \param ind - column index
-*/
-void QtxListView::hide( int ind )
-{
-  setShown( ind, false );
-}
-
-/*!
-  \return true if column is shown
-  \param ind - column index
-*/
-bool QtxListView::isShown( int ind ) const
-{
-  if ( ind>=0 && ind<header()->count() )
-    return columnWidth( ind ) > 0 || header()->isResizeEnabled( ind );
-  else
-    return false;
-}
-
-/*!
-  Shows/hides column
-  \param ind - column index
-  \param sh - new is shown state
-*/
-void QtxListView::setShown( int ind, bool sh )
-{
-  if( ind<0 || ind>=header()->count() || isShown( ind )==sh )
-    return;
-
-  ColumnData& data = myColumns[ind];
-  if ( sh )
-  {
-    int w = data.width;
-    bool resizeable = data.resizeable;
-    myColumns.remove( ind );
-
-    setColumnWidth( ind, w );
-    header()->setResizeEnabled( resizeable, ind );
-  }
-  else
-  {
-    int w = columnWidth( ind );
-    bool r = header()->isResizeEnabled( ind );
-    setColumnWidth( ind, 0 );
-    header()->setResizeEnabled( false, ind );
-    data.width = w;
-    data.resizeable = r;
-  }
-  updateContents();
-}
-
-/*!
-  Changes column width
-  \param c - column index
-  \param w - new width
-*/
-void QtxListView::setColumnWidth( int c, int w )
-{
-  if ( myColumns.contains( c ) )
-    myColumns[c].width = w;
-
-  QListView::setColumnWidth( c, !myColumns.contains( c ) ? w : 0 );
-}
-
-/*!
-  \return the recommended size for the widget
-*/
-QSize QtxListView::sizeHint() const
-{
-  QSize sz = QListView::sizeHint();
-
-  if ( myButton && myButton->isVisibleTo( myButton->parentWidget() ) )
-    sz.setWidth( sz.width() + 2 + myButton->width() );
-
-  return sz;
-}
-
-/*!
-  \return the recommended minimum size for the widget
-*/
-QSize QtxListView::minimumSizeHint() const
-{
-  QSize sz = QListView::minimumSizeHint();
-
-  if ( myButton && myButton->isVisibleTo( myButton->parentWidget() ) )
-    sz.setWidth( sz.width() + 2 + myButton->width() );
-
-  return sz;
-}
-
-/*!
-  SLOT: called if header is resized
-*/
-void QtxListView::onHeaderResized()
-{
-  if ( myHeaderState == HeaderAuto )
-  {
-    int c = 0;
-    for ( int i = 0; i < columns(); i++ )
-    {
-      if ( !header()->label( i ).isEmpty() ||
-           ( header()->iconSet( i ) && !header()->iconSet( i )->isNull() ) )
-        c++;
-    }
-
-    if ( c > 1 )
-      header()->show();
-    else
-      header()->hide();
-  }
-
-  if ( !myButton || !header()->isVisibleTo( this ) )
-    return;
-
-  int lw = lineWidth();
-  int h = header()->size().height() - 1;
-  myButton->setFixedSize( h, h );
-
-  int x = header()->headerWidth() - header()->offset() + 2;
-  if ( x < header()->width() - h )
-    x = header()->width() - h;
-
-  if ( myHeaderState == HeaderButton )
-  {
-    if ( header()->orientation() == Qt::Horizontal )
-      myButton->move( lw+x, lw );
-    else
-      myButton->move( lw, lw+x );
-  }
-}
-
-/*!
-  Shows popup filled with column names to show/hide column
-  \param x, y - position of popup
-*/
-void QtxListView::showPopup( const int x, const int y )
-{
-  myPopup->clear();
-  for ( int i = 0; i < columns(); i++ )
-  {
-    if ( appropriate( i ) )
-    {
-      int id = myPopup->insertItem( header()->label( i ), i );
-      myPopup->setItemChecked( id, isShown( i ) );
-    }
-  }
-
-  if( myPopup->count() )
-    myPopup->exec( mapToGlobal( QPoint( x, y ) ) );
-}
-
-/*!
-  SLOT: shows popup on button ".." click
-*/
-void QtxListView::onButtonClicked()
-{
-  if ( myHeaderState != HeaderButton )
-    return;
-
-  int x = myButton->x(),
-      y = myButton->y() + myButton->height();
-
-  showPopup( x, y );
-}
-
-/*!
-  SLOT: called on popup action is activated, toggles shown state of column
-  \param id - column index
-*/
-void QtxListView::onShowHide( int id )
-{
-  //if ( myHeaderState != HeaderButton )
-  //  return;
-
-  setShown( id, !isShown( id ) );
-}
-
-/*!
-  Receives all resize events sent to the viewport
-*/
-void QtxListView::viewportResizeEvent( QResizeEvent* e )
-{
-  QListView::viewportResizeEvent( e );
-  onHeaderResized();
-}
-
-/*!
-  Custom event filter, shows popup on right button click
-*/
-bool QtxListView::eventFilter( QObject* o, QEvent* e )
-{
-  if( o==header() && e->type()==QEvent::MouseButtonPress )
-  {
-    QMouseEvent* me = ( QMouseEvent* )e;
-    if( me->button()==Qt::RightButton )
-    {
-      showPopup( me->x()+2, me->y()+2 );
-      return true;
-    }
-  }
-  
-  return QListView::eventFilter( o, e );
-}
diff --git a/src/Qtx/QtxListView.h b/src/Qtx/QtxListView.h
deleted file mode 100755 (executable)
index 76aa63a..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-
-#ifndef QTXLISTVIEW_H
-#define QTXLISTVIEW_H
-
-#include "Qtx.h"
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-#include <qlistview.h>
-#include <qiconset.h>
-
-class QButton;
-class QPopupMenu;
-
-class QTX_EXPORT QtxListView : public QListView
-{
-  Q_OBJECT
-
-public:
-  enum { HeaderAuto, HeaderButton, NoHeaderButton };
-
-public:
-  QtxListView( QWidget* = 0, const char* = 0, WFlags = 0 );
-  QtxListView( const int, QWidget* = 0, const char* = 0, WFlags = 0 );
-  virtual ~QtxListView();
-
-  virtual int   addColumn( const QString&, int = -1 );
-  virtual int   addColumn( const QIconSet&, const QString&, int width = -1 );
-
-  virtual void  removeColumn( int );
-
-  virtual void  resize( int, int );
-
-  void          show( int );
-  void          hide( int );
-
-  bool          isShown( int ) const;
-  void          setShown( int, bool );
-
-  bool          appropriate( const int ) const;
-  virtual void  setAppropriate( const int, const bool );
-
-  virtual void  setColumnWidth( int, int );
-
-  virtual QSize sizeHint() const;
-  virtual QSize minimumSizeHint() const;
-
-public slots:
-  virtual void  show();
-  virtual void  resizeContents( int, int );
-
-protected slots:
-  void          onHeaderResized();
-  void          onButtonClicked();
-  void          onShowHide( int );
-
-protected:
-  virtual void  viewportResizeEvent( QResizeEvent* );
-  virtual bool  eventFilter( QObject*, QEvent* );
-  virtual void  showPopup( const int x, const int y );
-
-private:
-  typedef struct { int width; bool resizeable; } ColumnData;
-  typedef QMap<int, ColumnData>                  ColumnsMap;
-
-private:
-  void          initialize();
-
-private:
-  QPopupMenu*   myPopup;
-  QButton*      myButton;
-  ColumnsMap    myColumns;
-  QIntList      myAppropriate;
-  int           myHeaderState;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
diff --git a/src/Qtx/QtxLogoMgr.cxx b/src/Qtx/QtxLogoMgr.cxx
deleted file mode 100644 (file)
index 2103ecc..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-#include "QtxLogoMgr.h"
-
-#include <qhbox.h>
-#include <qlabel.h>
-#include <qstyle.h>
-#include <qimage.h>
-#include <qbitmap.h>
-#include <qlayout.h>
-#include <qmenubar.h>
-#include <qapplication.h>
-
-/*!
-  Constructor
-*/
-QtxLogoMgr::QtxLogoMgr( QMenuBar* mb )
-: QObject( mb ),
-myMenus( mb ),
-myId( 0 )
-{
-}
-
-/*!
-  Destructor
-*/
-QtxLogoMgr::~QtxLogoMgr()
-{
-}
-
-/*!
-  Returns the menubar.
-*/
-QMenuBar* QtxLogoMgr::menuBar() const
-{
-  return myMenus;
-}
-
-/*!
-  Returns the count of the existed logos.
-*/
-int QtxLogoMgr::count() const
-{
-  return myLogos.count();
-}
-
-/*!
-  Insert new logo to the menu bar area
-*/
-void QtxLogoMgr::insert( const QString& id, const QPixmap& pix, const int index )
-{
-  if ( pix.isNull() )
-    return;
-
-  LogoInfo* inf = 0;
-
-  int idx = find( id );
-  if ( idx < 0 )
-  {
-    idx = index < (int)myLogos.count() ? index : -1;
-    if ( idx < 0 )
-      inf = &( *myLogos.append( LogoInfo() ) );
-    else
-      inf = &( *myLogos.insert( myLogos.at( idx ), LogoInfo() ) );
-  }
-  else
-    inf = &( *myLogos.at( idx ) );
-
-
-  inf->id = id;
-  inf->pix = pix;
-
-  generate();
-}
-
-/*!
-  Removes a logo
-*/
-void QtxLogoMgr::remove( const QString& id )
-{
-  int idx = find( id );
-  if ( idx < 0 )
-    return;
-
-  myLogos.remove( myLogos.at( idx ) );
-
-  generate();
-}
-
-/*!
-  Removes all logos 
-*/
-void QtxLogoMgr::clear()
-{
-  myLogos.clear();
-  generate();
-}
-
-/*!
-  Inserts logo to menu bar
-*/
-void QtxLogoMgr::generate()
-{
-  if ( !menuBar() )
-    return;
-
-  if ( myId ) 
-    menuBar()->removeItem( myId );
-
-  myId = 0;
-
-  if ( myLogos.isEmpty() )
-    return;
-
-  class LogoBox : public QHBox
-  {
-  public:
-    LogoBox( QWidget* parent = 0, const char* name = 0, WFlags f = 0 ) : QHBox( parent, name, f ) {};
-
-    void addSpacing( int spacing )
-    {
-      QApplication::sendPostedEvents( this, QEvent::ChildInserted );
-      ((QHBoxLayout*)layout())->addSpacing( spacing );
-    }
-
-  protected:
-    void drawContents( QPainter* p )
-    {
-      if ( parentWidget()->inherits( "QMenuBar" ) )
-        style().drawControl( QStyle::CE_MenuBarEmptyArea, p, this, contentsRect(), colorGroup() );
-      else
-        QHBox::drawContents( p );
-    }
-  };
-
-  LogoBox* cnt = new LogoBox( menuBar() );
-  cnt->setSpacing( 3 );
-
-  for ( LogoList::const_iterator it = myLogos.begin(); it != myLogos.end(); ++it )
-  {
-    QPixmap pix = (*it).pix;
-    if ( !pix.mask() )
-    {
-      QImage img = pix.convertToImage();
-      QBitmap bm;
-      if ( img.hasAlphaBuffer() )
-        bm = img.createAlphaMask();
-      else
-        bm = img.createHeuristicMask();
-      pix.setMask( bm );
-    }
-
-    QLabel* logoLab = new QLabel( cnt );
-    logoLab->setPixmap( (*it).pix );
-    logoLab->setScaledContents( false );
-    logoLab->setAlignment( QLabel::AlignCenter ); 
-
-    if ( pix.mask() )
-         logoLab->setMask( *pix.mask() );
-  }
-
-  QApplication::sendPostedEvents( cnt, QEvent::ChildInserted );
-  cnt->addSpacing( 2 );
-
-  myId = menuBar()->insertItem( cnt );
-
-  QApplication::sendPostedEvents( menuBar()->parentWidget(), QEvent::LayoutHint );
-  QApplication::postEvent( menuBar()->parentWidget(), new QEvent( QEvent::LayoutHint ) );
-}
-
-/*!
-  \return index of found logo
-  \param id - logo id
-*/
-int QtxLogoMgr::find( const QString& id ) const
-{
-  int idx = -1;
-  for ( uint i = 0; i < myLogos.count() && idx < 0; i++ )
-  {
-    if ( (*myLogos.at( i ) ).id == id )
-      idx = i;
-  }
-  return idx;
-}
diff --git a/src/Qtx/QtxLogoMgr.h b/src/Qtx/QtxLogoMgr.h
deleted file mode 100644 (file)
index 7e0615c..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-#ifndef QTX_LOGOMGR_H
-#define QTX_LOGOMGR_H
-
-#include "Qtx.h"
-
-class QMenuBar;
-
-#include <qobject.h>
-#include <qpixmap.h>
-
-#ifdef WIN32
-#pragma warning( disable : 4251 )
-#endif
-
-class QTX_EXPORT QtxLogoMgr : public QObject
-{
-  Q_OBJECT
-
-public:
-  QtxLogoMgr( QMenuBar* );
-  virtual ~QtxLogoMgr();
-
-  int        count() const;
-
-  void       insert( const QString&, const QPixmap&, const int = -1 );
-  void       remove( const QString& );
-  void       clear();
-
-  QMenuBar*  menuBar() const;
-
-private:
-  void       generate();
-  int        find( const QString& ) const;
-
-private:
-  typedef struct { QString id; QPixmap pix; } LogoInfo;
-  typedef QValueList<LogoInfo>                LogoList;
-
-private:
-  int        myId;
-  QMenuBar*  myMenus;
-  LogoList   myLogos;
-};
-
-#ifdef WIN32
-#pragma warning( default : 4251 )
-#endif
-
-#endif
diff --git a/src/Qtx/QtxMRUAction.cxx b/src/Qtx/QtxMRUAction.cxx
deleted file mode 100755 (executable)
index eea0be2..0000000
+++ /dev/null
@@ -1,662 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxMRUAction.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxMRUAction.h"
-
-#include "QtxResourceMgr.h"
-
-#include <qpopupmenu.h>
-
-/*!
-       Name: QtxMRUAction [public]
-       Desc: Constructs an MRU action with given parent and name.
-*/
-
-QtxMRUAction::QtxMRUAction( QObject* parent, const char* name )
-: QtxAction( "Most Recently Used", "Most Recently Used", 0, parent, name ),
-myVisCount( 5 ),
-myPopupMode( SubMenu ),
-myInsertMode( MoveFirst )
-{
-}
-
-/*!
-       Name: QtxMRUAction [public]
-       Desc: This constructor creates an action with the following properties: the
-                   description text, the menu text and.  It is a child of given parent and
-        named specified name.
-*/
-
-QtxMRUAction::QtxMRUAction( const QString& text, const QString& menuText, QObject* parent, const char* name )
-: QtxAction( text, menuText, 0, parent, name ),
-myVisCount( 5 ),
-myPopupMode( SubMenu ),
-myInsertMode( MoveFirst )
-{
-}
-
-/*!
-       Name: QtxMRUAction [public]
-       Desc: This constructor creates an action with the following properties: the
-                   description text, the menu text, the icon or iconset icon and keyboard
-        accelerator. It is a child of given parent and named specified name.
-*/
-
-QtxMRUAction::QtxMRUAction( const QString& text, const QIconSet& icon, const QString& menuText, QObject* parent, const char* name )
-: QtxAction( text, icon, menuText, 0, parent, name ),
-myVisCount( 5 ),
-myPopupMode( SubMenu ),
-myInsertMode( MoveFirst )
-{
-}
-
-/*!
-       Name: ~QtxMRUAction [public]
-       Desc: This destructor removes all added popup items.
-*/
-
-QtxMRUAction::~QtxMRUAction()
-{
-  for ( ItemsMap::ConstIterator iIt = myItems.begin(); iIt != myItems.end(); ++iIt )
-    removeFrom( iIt.key() );
-
-  for ( MenusMap::ConstIterator mIt = myMenus.begin(); mIt != myMenus.end(); ++mIt )
-    removeFrom( mIt.key() );
-}
-
-/*!
-       Name: insertMode [public]
-       Desc: Returns the insert mode.
-*/
-
-int QtxMRUAction::insertMode() const
-{
-  return myInsertMode;
-}
-
-/*!
-       Name: setInsertMode [public]
-       Desc: Returns the insert mode. Can be following values:
-      MoveFirst - place the specified link to the first position in any case
-      MoveLast  - place the specified link to the last position in any case
-      AddFirst  - if inserted link doesn't exist then add to the first position
-      AddLast   - if inserted link doesn't exist then add to the lase position
-*/
-
-void QtxMRUAction::setInsertMode( const int mode )
-{
-  myInsertMode = mode;
-}
-
-/*!
-       Name: popupMode [public]
-       Desc: Returns the popup mode.
-*/
-
-int QtxMRUAction::popupMode() const
-{
-  return myPopupMode;
-}
-
-/*!
-       Name: setPopupMode [public]
-       Desc: Set the popup mode. If this mode is 'Items' then method "addTo" creates the
-        items in the specified popup menu.  If mode is 'SubMenu' then items will be
-        create in sub popup menu which will be placed in specified popup.
-*/
-
-void QtxMRUAction::setPopupMode( const int mode )
-{
-  myPopupMode = mode;
-}
-
-/*!
-       Name: count [public]
-       Desc: Returns the number of links.
-*/
-
-int QtxMRUAction::count() const
-{
-  return myLinks.count();
-}
-
-/*!
-       Name: isEmpty [public]
-       Desc: Returns 'true' if there is no links.
-*/
-
-bool QtxMRUAction::isEmpty() const
-{
-  return myLinks.isEmpty();
-}
-
-/*!
-       Name: visibleCount [public]
-       Desc: Returns the number of first links which will be added to popup menu.
-        If 'visibleCount' less than 1 then all links will be used.
-*/
-
-int QtxMRUAction::visibleCount() const
-{
-  return myVisCount;
-}
-
-/*!
-       Name: setVisibleCount [public]
-       Desc: Sets the number of links which will be used in popup menu.
-*/
-
-void QtxMRUAction::setVisibleCount( int num )
-{
-  if ( myVisCount == num )
-    return;
-
-  myVisCount = num;
-
-  updateState();
-}
-
-/*!
-       Name: insert [public]
-       Desc: Insert the link according to the insert mode.
-*/
-
-void QtxMRUAction::insert( const QString& link )
-{
-  if ( myLinks.contains( link ) && ( insertMode() == AddFirst || insertMode() == AddLast ) )
-    return;
-
-  myLinks.remove( link );
-
-  switch ( insertMode() )
-  {
-  case AddFirst:
-  case MoveFirst:
-    myLinks.prepend( link );
-    break;
-  case AddLast:
-  case MoveLast:
-    myLinks.append( link );
-    break;
-  }
-
-  updateState();
-}
-
-/*!
-       Name: remove [public]
-       Desc: Removes link with specified index.
-*/
-
-void QtxMRUAction::remove( const int idx )
-{
-  if ( idx < 0 || idx >= (int)myLinks.count() )
-    return;
-
-  myLinks.remove( myLinks.at( idx ) );
-
-  updateState();
-}
-
-/*!
-       Name: remove [public]
-       Desc: Removes specified link.
-*/
-
-void QtxMRUAction::remove( const QString& link )
-{
-  if ( myLinks.remove( link ) )
-    updateState();
-}
-
-/*!
-       Name: item [public]
-       Desc: Returns the link with specified index.
-*/
-
-QString QtxMRUAction::item( const int idx ) const
-{
-  QString res;
-  if ( idx >= 0 && idx < (int)myLinks.count() )
-    res = myLinks[idx];
-  return res;
-}
-
-/*!
-       Name: find [public]
-       Desc: Find specified link. If link exists then returns index otherwise -1 returned.
-*/
-
-int QtxMRUAction::find( const QString& link ) const
-{
-  return myLinks.findIndex( link );
-}
-
-/*!
-       Name: contains [public]
-       Desc: Returns 'true' if given link exist.
-*/
-
-bool QtxMRUAction::contains( const QString& link ) const
-{
-  return myLinks.contains( link );
-}
-
-/*!
-       Name: addTo [public]
-       Desc: Add the MRU links to the end of specified popup according to the popup mode.
-*/
-
-bool QtxMRUAction::addTo( QWidget* wid )
-{
-  if ( !wid || !wid->inherits( "QPopupMenu" ) )
-    return false;
-
-  QPopupMenu* pm = (QPopupMenu*)wid;
-  checkPopup( pm );
-
-  int mode = popupMode();
-
-  if ( ( mode == Items && myItems.contains( pm ) ) ||
-       ( mode == SubMenu && myMenus.contains( pm ) ) )
-    return false;
-
-  bool exist = myItems.contains( pm ) || myMenus.contains( pm );
-
-  if ( mode == SubMenu && !QtxAction::addTo( wid ) )
-    return false;
-
-  if ( mode == Items )
-  {
-    myItems.insert( pm, Item() );
-    myItems[pm].pId = myItems[pm].nId -1;
-    connect( pm, SIGNAL( activated( int ) ), this, SLOT( onActivated( int ) ) );
-  }
-  else if ( mode == SubMenu )
-  {
-    myMenus.insert( pm, new QPopupMenu( pm ) );
-    setPopup( pm, pm->idAt( pm->count() - 1 ), myMenus[pm] );
-    connect( myMenus[pm], SIGNAL( activated( int ) ), this, SLOT( onActivated( int ) ) );
-  }
-
-  if ( !exist )
-  {
-    connect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-    connect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
-  }
-
-  return insertLinks( pm, mode );
-}
-
-/*!
-       Name: addTo [public]
-       Desc: Add the MRU links to the specified popup at given index according to the popup mode.
-*/
-
-bool QtxMRUAction::addTo( QWidget* wid, const int idx )
-{
-  if ( !QtxAction::addTo( wid, idx ) )
-    return false;
-
-  QPopupMenu* pm = (QPopupMenu*)wid;
-
-  removeLinks( pm, popupMode() );
-  insertLinks( pm, popupMode(), idx );
-
-  return true;
-}
-
-/*!
-       Name: removeFrom [public]
-       Desc: Removes all MRU links from specified popup.
-*/
-
-bool QtxMRUAction::removeFrom( QWidget* wid )
-{
-  QtxAction::removeFrom( wid );
-
-  QPopupMenu* pm = (QPopupMenu*)wid;
-  if ( !wid || !wid->inherits( "QPopupMenu" ) )
-    return false;
-
-  if ( myItems.contains( pm ) )
-  {
-    removeLinks( pm, Items );
-    myItems.remove( pm );
-    disconnect( pm, SIGNAL( activated( int ) ), this, SLOT( onActivated( int ) ) );
-  }
-  if ( myMenus.contains( pm ) )
-  {
-    removeLinks( pm, SubMenu );
-    delete myMenus[pm];
-    myMenus.remove( pm );
-  }
-
-  disconnect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-  disconnect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
-
-  return true;
-}
-
-/*!
-       Name: loadLinks [public]
-       Desc: Load the MRU links from specified resource manager section.
-        If parameter 'clear' is 'true' then link list will be cleared first.
-*/
-
-void QtxMRUAction::loadLinks( QtxResourceMgr* resMgr, const QString& section, const bool clear )
-{
-  if ( !resMgr || section.isEmpty() )
-    return;
-
-  if ( clear )
-    myLinks.clear();
-
-  QString itemPrefix( "item_" );
-
-  QMap<QString, int> map;
-  for ( QStringList::const_iterator itr = myLinks.begin(); itr != myLinks.end(); ++ itr )
-    map.insert( *itr, 0 );
-
-  QStringList items = resMgr->parameters( section );
-  for ( QStringList::const_iterator it = items.begin(); it != items.end(); ++it )
-  {
-    if ( !(*it).startsWith( itemPrefix ) )
-      continue;
-
-    QString link = resMgr->stringValue( section, *it, QString::null );
-    if ( link.isEmpty() || map.contains( link ) )
-      continue;
-
-    myLinks.append( link );
-    map.insert( link, 0 );
-  }
-
-  updateState();
-}
-
-/*!
-       Name: saveLinks [public]
-       Desc: Save the MRU links into specified resource manager section.
-        If parameter 'clear' is 'true' then section will be cleared first.
-*/
-
-void QtxMRUAction::saveLinks( QtxResourceMgr* resMgr, const QString& section, const bool clear ) const
-{
-  if ( !resMgr || section.isEmpty() )
-    return;
-
-  if ( clear )
-    resMgr->remove( section );
-
-  QStringList lst;
-  QMap<QString, int> map;
-  for ( QStringList::const_iterator itr = myLinks.begin(); itr != myLinks.end(); ++itr )
-    map.insert( *lst.append( *itr ), 0 );
-
-  QString itemPrefix( "item_" );
-  QStringList items = resMgr->parameters( section );
-  for ( QStringList::const_iterator it = items.begin(); it != items.end(); ++it )
-  {
-    if ( !(*it).startsWith( itemPrefix ) )
-      continue;
-
-    QString link = resMgr->stringValue( section, *it, QString::null );
-    if ( !link.isEmpty() && !map.contains( link ) )
-      map.insert( *lst.append( link ), 0 );
-
-    resMgr->remove( section, *it );
-  }
-
-  int counter = 0;
-  for ( QStringList::const_iterator iter = lst.begin(); iter != lst.end(); ++iter, counter++ )
-    resMgr->setValue( section, itemPrefix + QString().sprintf( "%03d", counter ), *iter );
-}
-
-/*!
-       Name: setEnabled [public slot]
-       Desc: Enable or disable all popup items with MRU links.
-*/
-
-void QtxMRUAction::setEnabled( bool on )
-{
-  QtxAction::setEnabled( on );
-
-  for ( ItemsMap::ConstIterator iter = myItems.begin(); iter != myItems.end(); ++iter )
-    for ( QIntList::const_iterator it = iter.data().idList.begin(); it != iter.data().idList.end(); ++it )
-      iter.key()->setItemEnabled( *it, on );
-}
-
-/*!
-       Name: onAboutToShow [private slots]
-       Desc: Enable or disable sub menu item according to number of MRU links
-        in sub popup when parent popup is shown.
-*/
-
-void QtxMRUAction::onAboutToShow()
-{
-  const QObject* obj = sender();
-  if ( obj && obj->inherits( "QPopupMenu" ) )
-  {
-    QPopupMenu* pm = (QPopupMenu*)obj;
-    if ( myMenus.contains( pm ) )
-      pm->setItemEnabled( findId( pm, myMenus[pm]), isEnabled() && myMenus[pm] && myMenus[pm]->count() );
-  }
-}
-
-/*!
-       Name: onActivated [private slot]
-       Desc: Process popup item activation and emit signal activated with selected MRU link.
-*/
-
-void QtxMRUAction::onActivated( int id )
-{
-  const QObject* obj = sender();
-  if ( !obj->inherits( "QPopupMenu" ) )
-    return;
-
-  QPopupMenu* pm = (QPopupMenu*)obj;
-
-  QString link;
-  if ( ( myItems.contains( pm ) && myItems[pm].idList.contains( id ) ) ||
-       ( myMenus.contains( (QPopupMenu*)pm->parent() ) && myMenus[(QPopupMenu*)pm->parent()] == pm ) )
-    link = pm->text( id );
-
-  if ( !link.isEmpty() )
-    emit activated( link );
-}
-
-/*!
-       Name: onDestroyed [private slot]
-       Desc: Removes deleted popup menu from internal data structures.
-*/
-
-void QtxMRUAction::onDestroyed( QObject* obj )
-{
-  if ( !obj )
-    return;
-
-  myItems.remove( (QPopupMenu*)obj );
-  myMenus.remove( (QPopupMenu*)obj );
-}
-
-/*!
-       Name: updateState [private]
-       Desc: Updates the state of all popup menus which contains MRU link items.
-*/
-
-void QtxMRUAction::updateState()
-{
-  for ( ItemsMap::ConstIterator iIt = myItems.begin(); iIt != myItems.end(); ++iIt )
-    updatePopup( iIt.key(), Items );
-
-  for ( MenusMap::ConstIterator mIt = myMenus.begin(); mIt != myMenus.end(); ++mIt )
-    updatePopup( mIt.key(), SubMenu );
-}
-
-/*!
-       Name: checkPopup [private]
-       Desc: Check consistency the popup content and internal datas.
-        Synchronize internal data structures with popup content.
-*/
-
-void QtxMRUAction::checkPopup( QPopupMenu* pm )
-{
-  if ( myItems.contains( pm ) )
-  {
-    bool found = true;
-    for ( QIntList::const_iterator it = myItems[pm].idList.begin(); it != myItems[pm].idList.end() && found; ++it )
-      found = pm->indexOf( *it ) != -1;
-    if ( !found )
-    {
-      removeLinks( pm, Items );
-      myItems.remove( pm );
-      disconnect( pm, SIGNAL( activated( int ) ), this, SLOT( onActivated( int ) ) );
-    }
-  }
-  if ( myMenus.contains( pm ) )
-  {
-    int id = findId( pm, myMenus[pm] );
-    if ( id == -1 )
-    {
-      delete myMenus[pm];
-      myMenus.remove( pm );
-    }
-  }
-
-  if ( !myItems.contains( pm ) && !myMenus.contains( pm ) )
-    disconnect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
-}
-
-/*!
-       Name: updatePopup [private]
-       Desc: Updates the MRU link items state in the specified popup menu.
-*/
-
-void QtxMRUAction::updatePopup( QPopupMenu* pm, const int mode )
-{
-  if ( !pm )
-    return;
-
-  int idx = -1;
-  if ( mode == Items && myItems.contains( pm ) )
-  {
-    if ( !myItems[pm].idList.isEmpty() )
-      idx = pm->indexOf( myItems[pm].idList.first() );
-    else
-    {
-      int pIdx = pm->indexOf( myItems[pm].pId );
-      int nIdx = pm->indexOf( myItems[pm].nId );
-      if ( pIdx != -1 )
-        idx = pIdx + 1;
-      else if ( nIdx != -1 )
-        idx = nIdx - 1;
-    }
-  }
-
-  removeLinks( pm, mode );
-  insertLinks( pm, mode, idx );
-}
-
-/*!
-       Name: removeLinks [private]
-       Desc: Removes MRU link items from specified popup.
-*/
-
-bool QtxMRUAction::removeLinks( QPopupMenu* pm, const int mode )
-{
-  if ( !pm )
-    return false;
-
-  if ( mode == SubMenu && myMenus.contains( pm ) )
-    myMenus[pm]->clear();
-  else if ( mode == Items && myItems.contains( pm ) )
-  {
-    for ( QIntList::const_iterator it = myItems[pm].idList.begin(); it != myItems[pm].idList.end(); ++it )
-      pm->removeItem( *it );
-    myItems[pm].idList.clear();
-  }
-
-  return true;
-}
-
-/*!
-       Name: insertLinks [private]
-       Desc: Inserts MRU link items to the specified popup.
-*/
-
-bool QtxMRUAction::insertLinks( QPopupMenu* pm, const int mode, const int idx )
-{
-  if ( !pm )
-    return false;
-
-  int count = visibleCount() < 0 ? myLinks.count() : visibleCount();
-  bool isOn = isEnabled();
-  if ( mode == SubMenu && myMenus.contains( pm ) )
-  {
-    for ( QStringList::const_iterator it = myLinks.begin(); it != myLinks.end() && count > 0; ++it, count-- )
-    {
-      int id = myMenus[pm]->insertItem( *it, -1 );
-      myMenus[pm]->setItemEnabled( id, isOn );
-    }
-  }
-  else if ( mode == Items )
-  {
-    QIntList ids;
-    int index = idx;
-    for ( QStringList::const_iterator it = myLinks.begin(); it != myLinks.end() && count > 0; ++it, count--  )
-    {
-      ids.append( pm->insertItem( *it, -1, index ) );
-      pm->setItemEnabled( ids.last(), isOn );
-      if ( index >= 0 )
-        index++;
-    }
-    myItems[pm].idList = ids;
-    if ( !myItems[pm].idList.isEmpty() )
-    {
-      myItems[pm].pId = pm->idAt( pm->indexOf( myItems[pm].idList.first() ) - 1 );
-      myItems[pm].nId = pm->idAt( pm->indexOf( myItems[pm].idList.first() ) + 1 );
-    }
-  }
-  return true;
-}
-
-/*!
-       Name: findId [private]
-       Desc: Returns identificator of popup item which contains sub popup 'pm' in the popup 'cont'.
-*/
-
-int QtxMRUAction::findId( QPopupMenu* cont, QPopupMenu* pm ) const
-{
-  if ( !cont || !pm )
-    return -1;
-
-  int id = -1;
-
-  for ( int i = 0; i < (int)cont->count() && id == -1; i++ )
-  {
-    QMenuData* md = 0;
-    QMenuItem* item = cont->findItem( cont->idAt( i ), &md );
-    if ( item && md == cont && item->popup() == pm )
-      id = item->id();
-  }
-  return id;
-}
diff --git a/src/Qtx/QtxMRUAction.h b/src/Qtx/QtxMRUAction.h
deleted file mode 100755 (executable)
index 6325860..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxMRUAction.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXMRUACTION_H
-#define QTXMRUACTION_H
-
-#include "QtxAction.h"
-
-#include <qmap.h>
-#include <qstringlist.h>
-
-class QPopupMenu;
-class QtxResourceMgr;
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QTX_EXPORT QtxMRUAction : public QtxAction
-{
-  Q_OBJECT
-
-  Q_PROPERTY( int visibleCount READ visibleCount WRITE setVisibleCount )
-
-public:
-  enum { Items, SubMenu };
-  enum { MoveFirst, MoveLast, AddFirst, AddLast };
-
-public:
-  QtxMRUAction( QObject* = 0, const char* = 0 );
-  QtxMRUAction( const QString&, const QString&, QObject*, const char* = 0 );
-  QtxMRUAction( const QString&, const QIconSet&, const QString&, QObject*, const char* = 0 );
-  virtual ~QtxMRUAction();
-
-  int          insertMode() const;
-  void         setInsertMode( const int );
-
-  int          popupMode() const;
-  void         setPopupMode( const int );
-
-  int          count() const;
-  bool         isEmpty() const;
-
-  int          visibleCount() const;
-  void         setVisibleCount( const int );
-
-  void         remove( const int );
-  void         remove( const QString& );
-  void         insert( const QString& );
-
-  QString      item( const int ) const;
-  int          find( const QString& ) const;
-  bool         contains( const QString& ) const;
-
-  virtual bool addTo( QWidget* );
-  virtual bool addTo( QWidget*, const int );
-
-  virtual bool removeFrom( QWidget* );
-
-  virtual void loadLinks( QtxResourceMgr*, const QString&, const bool = true );
-  virtual void saveLinks( QtxResourceMgr*, const QString&, const bool = true ) const;
-
-signals:
-  void         activated( QString );
-
-public slots:
-  virtual void setEnabled( bool );
-
-private slots:
-  void         onAboutToShow();
-  void         onActivated( int );
-  void         onDestroyed( QObject* );
-
-private:
-  void         updateState();
-  void         checkPopup( QPopupMenu* );
-  void         updatePopup( QPopupMenu*, const int );
-  bool         removeLinks( QPopupMenu*, const int );
-  bool         insertLinks( QPopupMenu*, const int, const int = -1 );
-
-  int          findId( QPopupMenu*, QPopupMenu* ) const;
-
-private:
-  typedef struct { int pId, nId; QIntList idList; } Item;
-  typedef QMap<QPopupMenu*, Item>                   ItemsMap;
-  typedef QMap<QPopupMenu*, QPopupMenu*>            MenusMap;
-
-private:
-  QStringList  myLinks;
-  ItemsMap     myItems;
-  MenusMap     myMenus;
-  int          myVisCount;
-  int          myPopupMode;
-  int          myInsertMode;
-};
-
-#endif
index 99f602bbb69824ff562c477f359ea94152ec29b7..9d3ce309284c31bf6fb50e91747d051f89fec8d3 100644 (file)
 #include "QtxToolBar.h"
 #include "QtxResourceMgr.h"
 
-#include <qlayout.h>
-#include <qmenubar.h>
-#include <qstatusbar.h>
-#include <qapplication.h>
+#include <QtGui/qlayout.h>
+#include <QtGui/qmenubar.h>
+#include <QtGui/qstatusbar.h>
+#include <QtGui/qapplication.h>
+#include <QtGui/qdesktopwidget.h>
 
 /*!
     Class: QtxMainWindow::Filter [Internal]
@@ -82,8 +83,8 @@ bool QtxMainWindow::Filter::eventFilter( QObject* o, QEvent* e )
     Descr: Main window with support of dockable menubar/status bar
            and geometry store/retrieve.
 */
-QtxMainWindow::QtxMainWindow( QWidget* parent, const char* name, WFlags f )
-: QMainWindow( parent, name, f ),
+QtxMainWindow::QtxMainWindow( QWidget* parent, Qt::WindowFlags f )
+: QMainWindow( parent ),
 myMode( -1 ),
 myMenuBar( NULL ),
 myStatusBar( NULL )
@@ -122,26 +123,22 @@ void QtxMainWindow::setDockableMenuBar( const bool on )
 
   if ( on && !myMenuBar )
   {
-    mb->setCaption( tr( "Menu bar" ) );
-    QtxToolBar* dockMb = new QtxToolBar( true, this, "menu bar container" );
+    mb->setWindowTitle( tr( "Menu bar" ) );
+    QtxToolBar* dockMb = new QtxToolBar( true, this );
+    dockMb->setObjectName( "menu_bar_container" );
     myMenuBar = dockMb;
     new Filter( mb, this, myMenuBar );
-    dockMb->setWidget( mb );
-    dockMb->setNewLine( true );
-    dockMb->setStretchable( true );
-    dockMb->setResizeEnabled( false );
+    dockMb->addWidget( mb );
+    dockMb->setAllowedAreas( Qt::TopToolBarArea | Qt::BottomToolBarArea );
+    addToolBar( Qt::TopToolBarArea, dockMb );
 
-    moveDockWindow( dockMb, DockTop );
-    setDockEnabled( dockMb, Left, false );
-    setDockEnabled( dockMb, Right, false );
-
-    setAppropriate( dockMb, false );
+//    setAppropriate( dockMb, false );
 
     connect( dockMb, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
   }
   else if ( !on && myMenuBar )
   {
-    mb->reparent( this, QPoint( 0, 0 ), mb->isVisibleTo( mb->parentWidget() ) );
+    mb->setParent( this );
     disconnect( myMenuBar, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
     delete myMenuBar;
     myMenuBar = 0;
@@ -175,29 +172,25 @@ void QtxMainWindow::setDockableStatusBar( const bool on )
 
   if ( on && !myStatusBar )
   {
-    sb->setCaption( tr( "Status bar" ) );
-    QtxToolBar* dockSb = new QtxToolBar( true, this, "status bar container" );
+    sb->setWindowTitle( tr( "Status bar" ) );
+    QtxToolBar* dockSb = new QtxToolBar( true, this );
+    dockSb->setObjectName( "status_bar_container" );
     myStatusBar = dockSb;
     new Filter( sb, this, myStatusBar );
-    dockSb->setWidget( sb );
-    dockSb->setNewLine( true );
-    dockSb->setStretchable( true );
-    dockSb->setResizeEnabled( false );
     sb->setMinimumWidth( 250 );
-
     sb->setSizeGripEnabled( false );
 
-    moveDockWindow( dockSb, DockBottom );
-    setDockEnabled( dockSb, Left, false );
-    setDockEnabled( dockSb, Right, false );
+    dockSb->addWidget( sb );
+    dockSb->setAllowedAreas( Qt::TopToolBarArea | Qt::BottomToolBarArea );
+    addToolBar( Qt::BottomToolBarArea, dockSb );
 
-    setAppropriate( dockSb, false );
+//    setAppropriate( dockSb, false );
 
     connect( dockSb, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
   }
   else if ( !on && myStatusBar )
   {
-    sb->reparent( this, QPoint( 0, 0 ), sb->isVisibleTo( sb->parentWidget() ) );
+    sb->setParent( this );
     disconnect( myStatusBar, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
     delete myStatusBar;
     myStatusBar = 0;
@@ -217,7 +210,7 @@ void QtxMainWindow::setDockableStatusBar( const bool on )
 */
 void QtxMainWindow::loadGeometry( QtxResourceMgr* resMgr, const QString& section )
 {
-  QString sec = section.stripWhiteSpace();
+  QString sec = section.trimmed();
   if ( !resMgr || sec.isEmpty() )
     return;
 
@@ -255,11 +248,12 @@ void QtxMainWindow::loadGeometry( QtxResourceMgr* resMgr, const QString& section
   move( win_x, win_y );
 
   myMode = -1;
-
+/*
   if ( vis )
-    QApplication::postEvent( this, new QCustomEvent( QEvent::User, (void*)winState ) );
+    QApplication::postEvent( this, new QEvent( QEvent::User, (void*)winState ) );
   else
     myMode = winState;
+*/
 }
 
 /*!
@@ -267,9 +261,10 @@ void QtxMainWindow::loadGeometry( QtxResourceMgr* resMgr, const QString& section
 */
 void QtxMainWindow::show()
 {
+/*
   if ( myMode != -1 )
     QApplication::postEvent( this, new QCustomEvent( QEvent::User, (void*)myMode ) );
-
+*/
   myMode = -1;
 
   QMainWindow::show();
@@ -278,11 +273,12 @@ void QtxMainWindow::show()
 /*!
   Handler of custom events
 */
-void QtxMainWindow::customEvent( QCustomEvent* e )
+void QtxMainWindow::customEvent( QEvent* e )
 {
   QMainWindow::customEvent( e );
 
-  size_t mode = size_t(e->data());
+  int mode = WS_Normal;
+//  int mode = (int)e->data();
   switch ( mode )
   {
   case WS_Normal:
@@ -328,7 +324,7 @@ int QtxMainWindow::relativeCoordinate( const int type, const int WH, const int w
 */
 void QtxMainWindow::saveGeometry( QtxResourceMgr* resMgr, const QString& section ) const
 {
-  QString sec = section.stripWhiteSpace();
+  QString sec = section.trimmed();
   if ( !resMgr || sec.isEmpty() )
     return;
 
@@ -362,7 +358,7 @@ bool QtxMainWindow::eventFilter( QObject* o, QEvent* e )
 */
 void QtxMainWindow::setAppropriate( QDockWindow* dw, bool a )
 {
-  QMainWindow::setAppropriate( dw, myStatusBar != dw && myMenuBar != dw && a );
+//  QMainWindow::setAppropriate( dw, myStatusBar != dw && myMenuBar != dw && a );
 }
 
 /*!
@@ -370,7 +366,7 @@ void QtxMainWindow::setAppropriate( QDockWindow* dw, bool a )
 */
 void QtxMainWindow::setUpLayout()
 {
-  QMainWindow::setUpLayout();
+//  QMainWindow::setUpLayout();
 
   if ( myMenuBar && layout() )
     layout()->setMenuBar( 0 );
@@ -423,7 +419,7 @@ int QtxMainWindow::windowState( const QString& str ) const
   }
 
   int res = -1;
-  QString stateStr = str.stripWhiteSpace().lower();
+  QString stateStr = str.trimmed().toLower();
   if ( winStateMap.contains( stateStr ) )
     res = winStateMap[stateStr];
   return res;
@@ -446,7 +442,7 @@ int QtxMainWindow::windowPosition( const QString& str ) const
   }
 
   int res = WP_Absolute;
-  QString posStr = str.stripWhiteSpace().lower();
+  QString posStr = str.trimmed().toLower();
   if ( winPosMap.contains( posStr ) )
     res = winPosMap[posStr];
   return res;
index ee779aefd3b33820888a34322013bec3c335645b..795f1fc4d286c9767193eb5b77e640210f9243a0 100644 (file)
@@ -24,7 +24,7 @@
 
 #include "Qtx.h"
 
-#include <qmainwindow.h>
+#include <QtGui/qmainwindow.h>
 
 class QDockWindow;
 class QtxResourceMgr;
@@ -39,7 +39,7 @@ class QTX_EXPORT QtxMainWindow : public QMainWindow
   enum { WP_Absolute, WP_Center, WP_Left, WP_Right, WP_Top = WP_Left, WP_Bottom = WP_Right };
 
 public:
-  QtxMainWindow( QWidget* = 0, const char* = 0, WFlags = WType_TopLevel );
+  QtxMainWindow( QWidget* = 0, Qt::WindowFlags = 0 );
   virtual ~QtxMainWindow();
 
   bool              isDockableMenuBar() const;
@@ -59,7 +59,7 @@ public slots:
 
 protected:
   virtual void      setUpLayout();
-  virtual void      customEvent( QCustomEvent* );
+  virtual void      customEvent( QEvent* );
 
 private slots:
   void              onDestroyed( QObject* );
@@ -71,8 +71,8 @@ private:
 
 private:
   int               myMode;
-  QDockWindow*      myMenuBar;
-  QDockWindow*      myStatusBar;
+  QToolBar*         myMenuBar;
+  QToolBar*         myStatusBar;
 };
 
 #endif
diff --git a/src/Qtx/QtxMenuButton.cxx b/src/Qtx/QtxMenuButton.cxx
deleted file mode 100755 (executable)
index dc8abdd..0000000
+++ /dev/null
@@ -1,429 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxMenuButton.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxMenuButton.h"
-
-#include <qstyle.h>
-#include <qpainter.h>
-#include <qpopupmenu.h>
-#include <qpointarray.h>
-#include <qapplication.h>
-
-class QtxMenuButton::PopupMenu : public QPopupMenu
-{
-public:
-    PopupMenu( QtxMenuButton* mb ) : QPopupMenu( mb ), myMenuButton( mb ) {};
-    virtual ~PopupMenu() {};
-
-    virtual void setMinimumSize( int, int );
-
-private:
-    QtxMenuButton* myMenuButton;
-};
-
-/*!
-  Sets the widget's minimum size
-  \param w - width
-  \param h - height
-*/
-void QtxMenuButton::PopupMenu::setMinimumSize( int w, int h )
-{
-    if ( myMenuButton->isAlignWidth() &&
-         ( myMenuButton->position() == Top || myMenuButton->position() == Bottom ) )
-        w = QMAX( w, myMenuButton->width() );
-
-    QPopupMenu::setMinimumSize( w, h );
-}
-
-
-/*!
-  Constructor
-  \param pos - position
-  \param parent - parent widget
-  \param name - name
-*/
-QtxMenuButton::QtxMenuButton( int pos, QWidget* parent, const char* name )
-: QPushButton( parent, name ),
-myPos( pos )
-{
-       initialize();
-}
-
-/*!
-  Constructor
-  \param text - button text
-  \param parent - parent widget
-  \param name - name
-*/
-QtxMenuButton::QtxMenuButton( const QString& text, QWidget* parent, const char* name )
-: QPushButton( parent, name ),
-myPos( Bottom )
-{
-       setText( text );
-       initialize();
-}
-
-/*!
-  Constructor
-  \param pos - position
-  \param text - button text
-  \param parent - parent widget
-  \param name - name
-*/
-QtxMenuButton::QtxMenuButton( int pos, const QString& text, QWidget* parent, const char* name )
-: QPushButton( parent, name ),
-myPos( pos )
-{
-       setText( text );
-       initialize();
-}
-
-/*!
-  Constructor
-  \param parent - parent widget
-  \param name - name
-*/
-QtxMenuButton::QtxMenuButton( QWidget* parent, const char* name )
-: QPushButton( parent, name ),
-myPos( Bottom )
-{
-       initialize();
-}
-
-/*!
-  Destructor
-*/
-QtxMenuButton::~QtxMenuButton()
-{
-}
-
-/*!
-  Initialization
-*/
-void QtxMenuButton::initialize()
-{
-       myArrow = true;
-    myAlign = true;
-
-       setAutoDefault( false );
-       myPopup = new PopupMenu( this );
-    myPopup->hide();
-
-       connect( myPopup, SIGNAL( activated( int ) ), this, SIGNAL( activated( int ) ) );
-       connect( this, SIGNAL( clicked() ), this, SLOT( onShowPopup() ) );
-}
-
-/*!
-  \return position
-*/
-int QtxMenuButton::position() const
-{
-       return myPos;
-}
-
-/*!
-  \return true if align is enabled
-*/
-bool QtxMenuButton::isAlignWidth() const
-{
-    return myAlign;
-}
-
-/*!
-  \return true if arrow is shown
-*/
-bool QtxMenuButton::isArrowEnabled() const
-{
-       return myArrow;
-}
-
-/*!
-  Changes position
-  \param pos - new position
-*/
-void QtxMenuButton::setPosition( const int pos )
-{
-       if ( myPos == pos )
-               return;
-
-    myPos = pos;
-    if ( myPopup->isVisible() )
-        onShowPopup();
-}
-
-/*!
-  Changes align state
-  \param on - new align state
-*/
-void QtxMenuButton::setAlignWidth( const bool on )
-{
-    if ( myAlign == on )
-        return;
-
-    myAlign = on;
-    updateGeometry();
-}
-
-/*!
-  Enables/disable arrow
-  \param on - new enabled state
-*/
-void QtxMenuButton::setArrowEnabled( const bool on )
-{
-       if ( myArrow == on )
-               return;
-
-    myArrow = on;
-    repaint();
-}
-
-/*!
-  Clears popup
-*/
-void QtxMenuButton::clear()
-{
-       if ( myPopup )
-               myPopup->clear();
-       onShowPopup();
-       updateGeometry();
-}
-
-/*!
-  Removes item from popup
-  \param id - item id
-*/
-void QtxMenuButton::removeItem( int id )
-{
-       if ( myPopup )
-               myPopup->removeItem( id );
-       updateGeometry();
-}
-
-/*!
-  Inserts separator into popup
-  \param id - position
-*/
-int QtxMenuButton::insertSeparator( int id )
-{
-       int res = -1;
-       if ( myPopup )
-               res = myPopup->insertSeparator( id );
-    return res;
-}
-
-/*!
-  Inserts item into popup
-  \param t - menu text
-  \param id - item id
-  \param index - position
-*/
-int QtxMenuButton::insertItem( const QString& t, int id, int index )
-{
-       int resId = -1;
-       if ( myPopup )
-               resId = myPopup->insertItem( t, id, index );
-
-       if ( resId != -1 )
-               updateGeometry();
-
-       return resId;
-}
-
-/*!
-  Inserts item into popup
-  \param is - icons
-  \param t - menu text
-  \param id - item id
-  \param index - position
-*/
-int QtxMenuButton::insertItem( const QIconSet& is, const QString& t, int id, int index )
-{
-       int resId = -1;
-       if ( myPopup )
-               resId = myPopup->insertItem( is, t, id, index );
-
-       if ( resId != -1 )
-               updateGeometry();
-
-       return resId;
-}
-
-/*!
-  SLOT: calls when button is clicked, shows popup
-*/
-void QtxMenuButton::onShowPopup()
-{
-       if ( !myPopup || !myPopup->count() )
-       {
-               myPopup->hide();
-               return;
-       }
-
-       QPoint p = mapToGlobal( QPoint( 0, 0 ) );
-       int x = p.x();
-       int y = p.y() + 1;
-       int margin = 0;
-       int xoffset = 0;
-       int yoffset = 0;
-       switch ( position() )
-       {
-       case Left:
-               xoffset = -1 * ( myPopup->sizeHint().width() + margin );
-               break;
-       case Right:
-               xoffset = width() + margin;
-               break;
-       case Top:
-               yoffset = -1 * ( myPopup->sizeHint().height() + margin );
-               break;
-       case Bottom:
-       default:
-               yoffset = height() + margin;
-               break;
-       }
-       int dw = QApplication::desktop()->width();
-       int dh = QApplication::desktop()->height();
-       x = QMIN( QMAX( x + xoffset, 0 ), dw );
-       y = QMIN( QMAX( y + yoffset, 0 ), dh );
-
-       myPopup->exec( QPoint( x, y ) );
-}
-
-/*!
-  Custom event handler
-*/
-bool QtxMenuButton::event( QEvent* e )
-{
-       if ( e->type() == QEvent::MouseButtonPress ||
-                e->type() == QEvent::MouseButtonDblClick ||
-                e->type() == QEvent::MouseButtonRelease )
-       {
-               onShowPopup();
-               return false;
-       }
-
-       return QPushButton::event( e );
-}
-
-/*!
-  \return the recommended size for the widget
-*/
-QSize QtxMenuButton::sizeHint() const
-{
-       QSize sz = QPushButton::sizeHint();
-       if ( ( position() == Top || position() == Bottom ) && myPopup && myAlign )
-               sz = QSize( QMAX( sz.width(), myPopup->sizeHint().width() ), sz.height() );
-
-       return sz;
-}
-
-/*!
-  \return the recommended minimum size for the widget
-*/
-QSize QtxMenuButton::minimumSizeHint() const
-{
-       QSize sz = QPushButton::minimumSizeHint();
-       if ( ( position() == Top || position() == Bottom ) && myPopup && myAlign )
-               sz = QSize( QMAX( sz.width(), myPopup->sizeHint().width() ), sz.height() );
-
-       return sz;
-}
-
-/*!
-  Custom resize event handler
-*/
-void QtxMenuButton::resizeEvent( QResizeEvent* re )
-{
-       if ( re )
-               QPushButton::resizeEvent( re );
-
-       if ( ( position() == Top || position() == Bottom ) && myPopup && myAlign )
-        myPopup->setMinimumWidth( re ? re->size().width() : width() );
-}
-
-/*!
-  \return corresponding popup
-*/
-QPopupMenu* QtxMenuButton::popup() const
-{
-    return myPopup;
-}
-
-/*!
-  Draws label
-*/
-void QtxMenuButton::drawButtonLabel( QPainter* p )
-{
-    QPushButton::drawButtonLabel( p );
-/*
-       QStyle::SFlags flags = QStyle::Style_Default;
-       if ( isEnabled() )
-               flags |= QStyle::Style_Enabled;
-       if ( hasFocus() )
-               flags |= QStyle::Style_HasFocus;
-*/
-#if QT_VER < 3
-    QRect r = rect();
-#else
-       QRect r = style().subRect( QStyle::SR_PushButtonContents, this );
-#endif
-
-       if ( myArrow && myPopup && myPopup->count() )
-       {
-               int w = 7;
-               int h = 7;
-               int margin = 5;
-
-               QRect ar( 0, 0, w, h );
-               if ( position() == Left || position() == Top )
-                       r.moveBy( ar.width() + 2 * margin, 0 );
-               else
-                       ar.moveBy( r.width() - ar.width() - 2 * margin, 0 );
-
-               r.setWidth( r.width() - ar.width() - 2 * margin );
-    
-               ar.moveBy( margin, ( height() - h ) / 2 );
-
-               QPointArray arrow( 3 );
-               switch ( position() )
-               {
-               case Left:
-                       arrow.putPoints( 0, 3, ar.left(), ar.top() + ar.height() / 2, ar.right(), ar.top(), ar.right(), ar.bottom() );
-                       break;
-               case Right:
-                       arrow.putPoints( 0, 3, ar.left(), ar.top(), ar.left(), ar.bottom(), ar.right(), ar.top() + ar.height() / 2 );
-                       break;
-               case Top:
-                       arrow.putPoints( 0, 3, ar.left(), ar.bottom(), ar.right(), ar.bottom(), ar.left() + ar.width() / 2, ar.top() );
-                       break;
-               case Bottom:
-               default:
-                       arrow.putPoints( 0, 3, ar.left(), ar.top(), ar.right(), ar.top(), ar.left() + ar.width() / 2, ar.bottom() );
-                       break;
-               }
-
-               p->setPen( colorGroup().text() );
-               p->setBrush( colorGroup().text() );
-               p->drawPolygon( arrow, true );
-       }
-
-//     style().drawControl( QStyle::CE_PushButtonLabel, p, this, r, colorGroup(), flags );
-}
diff --git a/src/Qtx/QtxMenuButton.h b/src/Qtx/QtxMenuButton.h
deleted file mode 100755 (executable)
index b0f6741..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxMenuButton.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXMENUBUTTON_H
-#define QTXMENUBUTTON_H
-
-#include "Qtx.h"
-
-#include <qpushbutton.h>
-
-class QIconSet;
-class QPopupMenu;
-
-class QTX_EXPORT QtxMenuButton : public QPushButton
-{
-    Q_OBJECT
-
-    class PopupMenu;
-
-public:
-    enum { Left, Right, Top, Bottom };
-
-public:
-    QtxMenuButton( int, QWidget* = 0, const char* = 0 );
-       QtxMenuButton( const QString&, QWidget* = 0, const char* = 0 );
-       QtxMenuButton( int, const QString&, QWidget* = 0, const char* = 0 );
-       QtxMenuButton( QWidget* = 0, const char* = 0 );
-       virtual ~QtxMenuButton();
-
-       int           position() const;
-       void          setPosition( const int );
-
-    bool          isAlignWidth() const;
-    void          setAlignWidth( const bool );
-
-       bool          isArrowEnabled() const;
-       void          setArrowEnabled( const bool );
-
-       void          clear();
-       void          removeItem( int );
-       int           insertSeparator( int = -1 );
-       int           insertItem( const QString&, int = -1, int = -1 );
-       int           insertItem( const QIconSet&, const QString&, int = -1, int = -1 );
-
-       virtual QSize sizeHint() const;
-       virtual QSize minimumSizeHint() const;
-
-signals:
-       void          activated( int );
-
-private slots:
-       void          onShowPopup();
-
-protected:
-    QPopupMenu*   popup() const;
-       virtual bool  event( QEvent* );
-       virtual void  resizeEvent( QResizeEvent* );
-       virtual void  drawButtonLabel( QPainter* );
-
-private:
-    void          initialize();
-
-private:
-       int           myPos;
-       bool          myArrow;
-    bool          myAlign;
-       QPopupMenu*   myPopup;
-};
-
-#endif
diff --git a/src/Qtx/QtxOperations.cxx b/src/Qtx/QtxOperations.cxx
deleted file mode 100644 (file)
index ccf1500..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-
-#include "QtxOperations.h"
-
-/*!
-    Default constructor
-*/
-QtxOperations::QtxOperations()
-{
-}
-
-/*!
-    Destructor
-*/
-QtxOperations::~QtxOperations()
-{
-}
-
-/*!
-    Creates QtxValue by it's string representation
-*/
-bool QtxOperations::createValue( const QString& str, QtxValue& v ) const
-{
-    v = str;
-    return false;
-}
diff --git a/src/Qtx/QtxOperations.h b/src/Qtx/QtxOperations.h
deleted file mode 100644 (file)
index 642a3bf..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxOperations.h
-// Author:    Alexander SOLOVYOV
-
-#ifndef __QTX_OPERATIONS_HEADER__
-#define __QTX_OPERATIONS_HEADER__
-
-#include "Qtx.h"
-#include "QtxParser.h"
-
-class QTX_EXPORT QtxOperations
-{
-public:
-    QtxOperations();
-    virtual ~QtxOperations();
-
-    virtual void  opersList( QStringList& ) const = 0;
-    //list of possible operations
-
-    virtual void  bracketsList( QStringList&, bool open ) const = 0;
-    //list of open/close brackets
-
-    virtual bool  createValue( const QString&, QtxValue& ) const;
-    //by default, the String value will be set, it corresponds to parameter
-    //base method returns false (always parameter)
-    //successor's method returns true if it has created custom value
-    //or call base if it hasn't
-
-    virtual int   prior( const QString&, bool isBin ) const = 0;
-    //returns prioritet of operation;
-    //if operation is impossible, it must return 0 or less
-
-    virtual QtxParser::Error isValid( const QString&,
-                                      const QVariant::Type,
-                                      const QVariant::Type ) const = 0;
-    //return OK if this parameter types is valid for operation
-    //return OperandsNotMatch or InvalidOperation otherwise
-
-    virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const = 0;
-    //process binary operation with values
-    //for unary operation the second QtxValue will be passed as invalid
-};
-
-#endif
diff --git a/src/Qtx/QtxParser.cxx b/src/Qtx/QtxParser.cxx
deleted file mode 100644 (file)
index b4b32bb..0000000
+++ /dev/null
@@ -1,850 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-
-#include "QtxParser.h"
-#include "QtxOperations.h"
-
-/*!
-  Constructor
-*/
-QtxParser::QtxParser( QtxOperations* operations, const QString& expr )
-: myOperations( operations )
-{
-    if( myOperations )
-    {
-        setLastError( OK );
-        setExpr( expr );
-    }
-    else
-        setLastError( OperationsNull );
-}
-
-/*!
-  Destructor
-*/
-QtxParser::~QtxParser()
-{
-}
-
-/*!
-  Search elements of list as substrings starting on 'offset'
-  \returns the least position of substrings inside string
-  \param list - list of substrings
-  \param str - string where search
-  \param offset - starting index for search
-  \param matchLen - the length of appropriate substring
-  \param listind - list index of appropriate substring
-*/
-int QtxParser::search( const QStringList& list, const QString& str, int offset,
-                       int& matchLen, int& listind )
-{
-    QStringList::const_iterator anIt = list.begin(), aLast = list.end();
-    int min = -1;
-    for( int ind = 0; anIt!=aLast; anIt++, ind++ )
-    {
-      //const char* where = str.latin1(), *what = (*anIt).latin1();
-        int pos = str.find( *anIt, offset );
-        if( pos>=0 && ( min < 0 || min > pos ||
-                        ( min==pos && matchLen< (int)(*anIt).length() ) ) )
-        {
-            min = pos;
-            listind = ind;
-            matchLen = (*anIt).length();
-        }
-    }
-    if( min<0 )
-        matchLen = 0;
-    return min;
-}
-
-/*!
-  \return substring
-  \param str - string
-  \param pos - start position of substring
-  \param len - length of substring
-*/
-QString QtxParser::note( const QString& str, int pos, int len )
-{
-    return str.mid( pos, len ).stripWhiteSpace();
-}
-
-/*!
-  First step of parsing: finding tokens, determining its types and creating of unsorted pseudo-postfix (with brackets)
-  \param expr - string expression
-  \param post - postfix to be created
-*/
-bool QtxParser::prepare( const QString& expr, Postfix& post )
-{
-    int pos = 0, len = expr.length();
-    QValueStack< int > aBracketStack;
-    QStringList anOpers, anOpenBr, aCloseBr;
-    if( myOperations )
-    {
-        myOperations->bracketsList( anOpenBr, true );
-        myOperations->bracketsList( aCloseBr, false );
-        myOperations->opersList( anOpers );
-    }
-    else
-    {
-        setLastError( OperationsNull );
-        return false;
-    }
-
-    while( pos < len && lastError()==OK )
-    {
-        PostfixItem item;
-        while( expr[ pos ].isSpace() && pos<len ) pos++;
-        if( pos>=len )
-            break;
-
-        int mBrLen = 0, mLen = 0, br_ind = -1, op_ind = -1;
-        int oPos = search( anOpenBr, expr, pos, mBrLen, br_ind ),
-            cPos = oPos==pos ? -1 : search( aCloseBr, expr, pos, mBrLen, br_ind ),
-            opPos = search( anOpers, expr, pos, mLen, op_ind );
-
-        if( expr[ pos ]=="'" )
-        {
-            int vpos = pos+1;
-            while ( vpos< (int)expr.length() && expr[ vpos ]!="'" )
-                vpos++;
-
-            mLen = vpos-pos+1;
-
-            int res = myOperations->createValue( note( expr, pos, mLen ), item.myValue );
-            item.myType = res ? Value : Param;
-            post.append( item );
-            pos = vpos+1;
-            continue;
-        }
-
-        if( oPos==pos )
-        {
-            aBracketStack.push( br_ind );
-            item.myValue = note( expr, pos, mBrLen );
-            item.myType = Open;
-            post.append( item );
-        }
-
-        else if( cPos==pos )
-        {
-            if( aBracketStack.count()==0 )
-            {
-                setLastError( ExcessClose );
-                break;
-            }
-            if( br_ind!=aBracketStack.top() )
-            {
-                setLastError( BracketsNotMatch );
-                break;
-            }
-            else
-            {
-                aBracketStack.pop();
-                item.myValue = note( expr, pos, mBrLen );
-                item.myType = Close;
-                post.append( item );
-            }
-        }
-        else
-            mBrLen = 0;
-
-        if( opPos==pos )
-        {
-            mBrLen = 0;
-            item.myValue = note( expr, pos, mLen );
-            item.myType = Binary;
-            //the type is set by default;
-            //the method setOperationTypes will set correct types
-
-            if( oPos==pos )
-                post.insert( post.at( post.count()-1 ), item );
-            else
-                post.append( item );
-        }
-        else
-        {
-            mLen = 0;
-            if( oPos!=pos && cPos!=pos )
-            {
-               int i; 
-                for( i=pos+1; i<(int)expr.length(); i++ )
-                    if( expr[ i ].isSpace() )
-                        break;
-
-                int vpos = i;
-                if( oPos>=0 && oPos<vpos )
-                    vpos = oPos;
-                if( cPos>=0 && cPos<vpos )
-                    vpos = cPos;
-                if( opPos>=0 && opPos<vpos )
-                    vpos = opPos;
-
-                while( vpos<(int)expr.length() && 
-                       ( expr[vpos].isLetter() || expr[vpos].isDigit() || expr[vpos]=='_' ) )
-                    vpos++;
-
-                mLen = vpos-pos;
-                bool res = myOperations->createValue( note( expr, pos, mLen ), item.myValue );
-                item.myType = res ? Value : Param;
-                post.append( item );
-            }
-        }
-
-        pos+=mBrLen+mLen;
-    }
-
-    //Bracket checking
-    PostfixIterator anIt = post.begin(),
-                    aLast = post.end();
-    int brValue = 0;
-    for( ; anIt!=aLast; anIt++ )
-        if( (*anIt).myType==Open )
-            brValue++;
-        else if( (*anIt).myType==Close )
-            if( brValue>0 )
-                brValue--;
-            else
-            {
-                setLastError( ExcessClose );
-                break;
-            }
-    if( brValue>0 )
-        setLastError( CloseExpected );
-
-    return lastError()==OK;
-}
-
-/*!
-  Second step of parsing: determining types of operations
-  \param post - unsorted postfix
-*/
-bool QtxParser::setOperationTypes( Postfix& post )
-{
-    Postfix::iterator aStart = post.begin(),
-                      aLast = post.end(),
-                      anIt = aStart, aPrev, aNext;
-    QStringList anOpen, aClose;
-    if( myOperations )
-    {
-        myOperations->bracketsList( anOpen, true );
-        myOperations->bracketsList( aClose, false );
-    }
-    else
-        return false;
-
-    for( ; anIt!=aLast; anIt++ )
-    {
-        aPrev = anIt; aPrev--;
-        aNext = anIt; aNext++;
-        if( (*anIt).myType != Binary )
-            continue;
-
-        if( ( anIt==aStart || (*aPrev).myType == Open ||
-                              (*aPrev).myType == Pre ||
-                              (*aPrev).myType == Binary )
-            && 
-            aNext!=aLast && ( (*aNext).myType == Value ||
-                              (*aNext).myType == Param ||
-                              (*aNext).myType == Open  ||
-                              (*aNext).myType == Binary ) )
-            (*anIt).myType = Pre;
-
-        else if( anIt!=aStart && ( (*aPrev).myType == Close ||
-                                   (*aPrev).myType == Param ||
-                                   (*aPrev).myType == Value ||
-                                   (*aPrev).myType == Pre ||
-                                   (*aPrev).myType == Post ||
-                                   (*aPrev).myType == Binary )
-                 &&
-                 ( aNext==aLast || (*aNext).myType == Close ) )
-            (*anIt).myType = Post;
-
-        if( anOpen.contains( ( *anIt ).myValue.toString() )>0 )
-            (*anIt).myType = Pre;
-        else if( aClose.contains( ( *anIt ).myValue.toString() )>0 )
-            (*anIt).myType = Post;
-    }
-
-    return lastError()==OK;
-}
-
-/*!
-  \return how many global brackets there is (for example '((2+3))' has 2 global brackets)
-  \param post - postfix to be checked
-  \param f - start index to search
-  \param l - last index to search
-*/
-int QtxParser::globalBrackets( const QtxParser::Postfix& post, int f, int l )
-{
-    int i,
-        start_br = 0,
-        fin_br = 0,
-        br = 0,
-        br_num = 0,
-        min_br_num = (l-f+1)*5;
-    
-    for( i=f; i<=l; i++ )
-        if( post[ i ].myType==QtxParser::Open )
-            start_br++;
-        else
-            break;
-    for( i=l; i>=f; i-- )
-        if( post[ i ].myType==QtxParser::Close )
-            fin_br++;
-        else
-            break;
-
-    br = start_br<fin_br ? start_br : fin_br;
-    for( i=f+br; i<=l-br; i++ )
-    {
-        if( post[i].myType==QtxParser::Open )
-            br_num++;
-        else if( post[i].myType==QtxParser::Close )
-            br_num--;
-        if( br_num<min_br_num )
-            min_br_num = br_num;
-    }
-
-    return br+min_br_num;
-}
-
-/*!
-  Third step of parsing: sorting of postfix in order to convert it to real postfix
-  \param post - source postfix
-  \param res - destination postfix
-  \param anOpen - list of open brackets
-  \param aClose - list of close brackets
-  \param f - start index of postfix to sorting
-  \param l - last index of postfix to sorting
-*/
-bool QtxParser::sort( const Postfix& post, Postfix& res,
-                      const QStringList& anOpen,
-                      const QStringList& aClose,
-                      int f, int l )
-{
-    if( l<f )
-        return true;
-
-    if( f<0 )
-        f = 0;
-    if( l<0 )
-        l = post.count()-1;
-
-    int br = globalBrackets( post, f, l );
-    f+=br; l-=br;
-
-    if( f==l && f>=0 )
-        res.append( post[ f ] );
-    if( l<=f )
-        return true;
-
-    if( myOperations )
-    {
-        int min = -1;
-        QIntList argmin;
-        QValueList< PostfixItemType > min_types;
-
-        //Find operation with minimal priority
-        //PostfixIterator anIt = post.at( f ),
-        //                aLast = post.at( l+1 );
-        for( int i=0, j=f; j<=l; i++, j++ )
-        {
-            const PostfixItem& item = post[ j ];
-            PostfixItemType tt = item.myType;
-            if( tt==Binary || tt==Pre || tt==Post )
-            {
-                int cur_pr = myOperations->prior( item.myValue.toString(), tt==Binary );
-                if( cur_pr>0 )
-                {
-                    if( min<0 || min>=cur_pr )
-                    {
-                        if( min==cur_pr )
-                        {
-                            argmin.append( f+i );
-                            min_types.append( tt );
-                        }
-                        else
-                        {
-                            min = cur_pr;
-                            argmin.clear(); argmin.append( f+i );
-                            min_types.clear(); min_types.append( tt );
-                        }
-                    }
-                }
-                else
-                {
-                    setLastError( InvalidOperation );
-                    break;
-                }
-            }
-            else if( tt==Open )
-            {
-                QString opBr = item.myValue.toString();
-                int ind = anOpen.findIndex( opBr ), brValue = 0;
-                while( j<=l )
-                {
-                    const PostfixItem& anItem = post[ j ];
-                    if( anItem.myType==Open )
-                        brValue++;
-
-                    if( anItem.myType==Close )
-                    {
-                        brValue--;
-                        QString clBr = anItem.myValue.toString();
-                        if( aClose.findIndex( clBr )==ind && brValue==0 )
-                            break;
-                    }
-                    i++; j++;
-                }
-                if( brValue>0 )
-                {
-                    setLastError( CloseExpected );
-                    break;
-                }
-            }
-        }
-
-        if( lastError()==OK )
-            if( min>=0 )
-            {
-                QValueList< Postfix > parts;
-                QIntList::const_iterator anIt = argmin.begin(),
-                                         aLast = argmin.end();
-                Postfix one;
-                bool ok = sort( post, one, anOpen, aClose, f, *anIt - 1 );
-                parts.append( one );
-                one.clear();
-                for( ; anIt!=aLast && ok; anIt++ )
-                {
-                    QIntList::const_iterator aNext = anIt; aNext++;
-                    ok = sort( post, one, anOpen, aClose, *anIt + 1, aNext==aLast ? l : *aNext - 1 );
-                    parts.append( one );
-                    one.clear();
-                }
-                if( !ok )
-                    return false;
-
-                QValueList< Postfix >::const_iterator aPIt = parts.begin();
-                QValueList< PostfixItemType >::const_iterator aTIt = min_types.begin();
-                QValueStack< PostfixItem > aStack;
-                res += (*aPIt); aPIt++;
-                anIt = argmin.begin();
-                for( ; anIt!=aLast; anIt++, aPIt++, aTIt++ )
-                {
-                    if( *aTIt==Pre )
-                        if( anOpen.contains( post[ *anIt ].myValue.toString() )==0 )
-                        {
-                            res+=(*aPIt);
-                            aStack.push( post[ *anIt ] );
-                        }
-                        else
-                        {
-                            res.append( post[ *anIt ] );
-                            res+=(*aPIt);
-                        }
-                    else
-                    {
-                        res+=(*aPIt);
-                        while( !aStack.isEmpty() )
-                        {
-                            res.append( aStack.top() );
-                            aStack.pop();
-                        }
-                        res.append( post[ *anIt ] );
-                    }
-                }
-                while( !aStack.isEmpty() )
-                {
-                    res.append( aStack.top() );
-                    aStack.pop();
-                }
-            }
-            else
-            { //there are no operations
-                PostfixIterator anIt = post.at( f ),
-                                aLast = post.at( l+1 );
-                for( ; anIt!=aLast; anIt++ )
-                    if( (*anIt).myType==Value || (*anIt).myType==Param )
-                        res.append( *anIt );
-            }
-    }
-    else 
-        setLastError( OperationsNull );
-
-    return lastError()==OK;
-}
-
-/*!
-  Build posfix by expression
-  \param expr - string expression
-*/
-bool QtxParser::parse( const QString& expr )
-{
-    myPost.clear();
-
-    Postfix p;
-    QStringList opens, closes;
-
-    if( myOperations )
-    {
-        setLastError( OK );
-        myOperations->bracketsList( opens, true );
-        myOperations->bracketsList( closes, false );
-    }
-    else
-    {
-        setLastError( OperationsNull );
-        return false;
-    }
-
-    //return prepare( expr, myPost ) && setOperationTypes( myPost );
-    return prepare( expr, p ) && setOperationTypes( p ) && 
-           sort( p, myPost, opens, closes );
-}
-
-/*!
-  Calculate operation
-  \param op - operation name
-  \param v1 - first argument (it is not valid for unary prefix operations and it is used to store result)
-  \param v2 - second argument (it is not valid for unary postfix operations)
-*/
-bool QtxParser::calculate( const QString& op, QtxValue& v1, QtxValue& v2 )
-{
-    Error err = myOperations->isValid( op, v1.type(), v2.type() );
-    if( err==OK )
-        setLastError( myOperations->calculate( op, v1, v2 ) );
-    else
-        setLastError( err );
-
-    return lastError()==OK;
-}
-
-/*!
-  Calculates expression without postfix rebuilding
-  \return QtxValue as result (it is invalid if there were errors during calculation)
-*/
-QtxValue QtxParser::calculate()
-{
-    setLastError( OK );
-
-    QStringList anOpen, aClose;
-    if( myOperations )
-    {
-        myOperations->bracketsList( anOpen, true );
-        myOperations->bracketsList( aClose, false );
-    }
-    else
-    {
-        setLastError( OperationsNull );
-        return QtxValue();
-    }
-
-    QtxValueStack aStack;
-    PostfixIterator anIt = myPost.begin(),
-                    aLast = myPost.end();
-    for( ; anIt!=aLast && lastError()==OK; anIt++ )
-    {
-        QString nn = (*anIt).myValue.toString();
-        if( (*anIt).myType==Param )
-        {
-            if( has( nn ) )
-            {
-                QVariant& v = myParameters[ nn ];
-                if( v.isValid() )
-                    aStack.push( v );
-                else
-                    setLastError( InvalidToken );
-            }
-            else
-                setLastError( InvalidToken );
-        }
-
-        else if( (*anIt).myType==Value )
-            aStack.push( (*anIt).myValue );
-
-        else if( (*anIt).myType==Pre || (*anIt).myType==Post )
-        {
-            if( anOpen.contains( nn )>0 )
-            {
-                QtxValue inv;
-                if( calculate( nn, inv, inv ) )
-                    aStack.push( QtxValue() );
-            }
-            else if( aClose.contains( nn )>0 )
-            {
-                QValueList< QtxValue > set;
-                while( true )
-                {
-                    if( aStack.count()==0 )
-                    {
-                        setLastError( StackUnderflow );
-                        break;
-                    }
-                    if( aStack.top().isValid() )
-                    {
-                        set.append( aStack.top() );
-                        aStack.pop();
-                    }
-                    else
-                    {
-                        aStack.pop();
-                        break;
-                    }
-                }
-
-                QtxValue qSet = set, inv;
-                if( calculate( nn, qSet, inv ) )
-                    aStack.push( set );
-            }
-            else if( aStack.count()>=1 )
-            {
-                QtxValue inv;
-                QtxValue* v1 = &aStack.top(), *v2 = &inv; //"post-" case
-                if( (*anIt).myType==Pre )
-                {
-                    v2 = &aStack.top(); v1 = &inv;
-                }
-
-                calculate( nn, *v1, *v2 );
-            }
-            else
-                setLastError( StackUnderflow );
-        }
-
-        else if( (*anIt).myType==Binary )
-        {
-            if( aStack.count()>=2 )
-            {
-                QVariant v2 = aStack.top(); aStack.pop();
-                calculate( nn, aStack.top(), v2 );
-            }
-            else
-                setLastError( StackUnderflow );
-        }
-    }
-
-    QtxValue res;
-    if( lastError()==OK )
-    {
-        int count = aStack.count();
-        if( count==0 )
-            setLastError( StackUnderflow );
-        else if( count==1 )
-            res = aStack.top();
-        else
-            setLastError( ExcessData );
-    }
-    return res;
-}
-
-/*!
-  Change expression, rebuild postfix and calculate it
-  \return QtxValue as result (it is invalid if there were errors during calculation)
-*/
-QtxValue QtxParser::calculate( const QString& expr )
-{
-    setExpr( expr );
-    return calculate();
-}
-
-/*!
-  Change expression and rebuild postfix
-*/
-bool QtxParser::setExpr( const QString& expr )
-{
-    return parse( expr );
-}
-
-/*!
-  \return true, if parser contain parameter
-  \param name - name of parameter
-*/
-bool QtxParser::has( const QString& name ) const
-{
-    return myParameters.contains( name.stripWhiteSpace() );
-}
-
-/*!
-  Sets parameter value
-  \param name - name of parameter
-  \param value - value of parameter
-*/
-void QtxParser::set( const QString& name, const QtxValue& value )
-{
-    myParameters[ name.stripWhiteSpace() ] = value;
-}
-
-/*!
-  Removes parameter
-  \param name - name of parameter
-*/
-bool QtxParser::remove( const QString& name )
-{
-    QString sname = name.stripWhiteSpace();
-    bool res = has( sname );
-    if( res )
-        myParameters.remove( sname );
-    return res;
-}
-
-/*!
-  \return value of parameter (result is invalid if there is no such parameter)
-  \param name - name of parameter
-*/
-QtxValue QtxParser::value( const QString& name ) const
-{
-    QString sname = name.stripWhiteSpace();
-    if( has( sname ) )
-        return myParameters[ sname ].toString();
-    else
-        return QtxValue();
-}
-
-/*!
-  Searches first parameter with assigned invalid QtxValue
-  \return true if it is found
-  \param name - variable to return name of parameter
-*/
-bool QtxParser::firstInvalid( QString& name ) const
-{
-    QMap< QString, QtxValue >::const_iterator anIt = myParameters.begin(),
-                                              aLast = myParameters.end();
-    for( ; anIt!=aLast; anIt++ )
-        if( !anIt.data().isValid() )
-        {
-            name = anIt.key();
-            return true;
-        }
-    return false;
-}
-
-/*!
-  Removes all parameters with assigned invalid QtxValues
-*/
-void QtxParser::removeInvalids()
-{
-    QStringList toDelete;
-    QMap< QString, QtxValue >::const_iterator anIt = myParameters.begin(),
-                                              aLast = myParameters.end();
-    for( ; anIt!=aLast; anIt++ )
-        if( !anIt.data().isValid() )
-            toDelete.append( anIt.key() );
-
-    QStringList::const_iterator aLIt = toDelete.begin(),
-                                aLLast = toDelete.end();
-    for( ; aLIt!=aLLast; aLIt++ )
-        myParameters.remove( *aLIt );
-}
-
-/*!
-  \return last error occured during parsing
-*/
-QtxParser::Error QtxParser::lastError() const
-{
-    return myLastError;
-}
-
-/*!
-  Sets last error occured during parsing (for internal using only)
-*/
-void QtxParser::setLastError( QtxParser::Error err )
-{
-    myLastError = err;
-}
-
-/*!
-  \return string dump of internal parser postfix
-*/
-QString QtxParser::dump() const
-{
-    return dump( myPost );
-}
-
-/*!
-  \return string dump of postfix
-  \param post - postfix to be dumped
-*/
-QString QtxParser::dump( const Postfix& post ) const
-{
-    QString res;
-
-    if( myOperations )
-    {
-        PostfixIterator anIt = post.begin(),
-                        aLast = post.end();
-        for( ; anIt!=aLast; anIt++ )
-        {
-            if( (*anIt).myType == Value && 
-                    ( ( *anIt ).myValue.type()==QVariant::String ||
-                    ( *anIt ).myValue.type()==QVariant::CString ) )
-                res += "'" + ( *anIt ).myValue.toString() + "'";
-            else
-                res += ( *anIt ).myValue.toString();
-            if( (*anIt).myType == Pre )
-                res += "(pre)";
-            else if( (*anIt).myType == Post )
-                res += "(post)";
-            else if( (*anIt).myType == Binary )
-                res += "(bin)";
-
-            res += "_";
-        }
-    }
-    return res;
-}
-
-/*!
-  Fills list with names of parameters
-  \param list - list to be filled
-*/
-void QtxParser::paramsList( QStringList& list )
-{
-    PostfixIterator anIt = myPost.begin(),
-                    aLast = myPost.end();
-    for( ; anIt!=aLast; anIt++ )
-        if( (*anIt).myType==Param )
-        {
-            QString name = (*anIt).myValue.toString();
-            if( list.contains( name )==0 )
-                list.append( name );
-        }
-}
-
-/*!
-  Removes all parameters
-*/
-void QtxParser::clear()
-{
-    myParameters.clear();
-}
-
-/*!
-  \return string representation for list of QtxValues
-  \param list - list to be converted
-*/
-QString QtxParser::toString( const QValueList< QtxValue >& list )
-{
-    QValueList< QtxValue >::const_iterator anIt = list.begin(),
-                                           aLast = list.end();
-    QString res = "set : [ ";
-    for( ; anIt!=aLast; anIt++ )
-        res+=(*anIt).toString()+" ";
-    res+="]";
-    return res;
-}
diff --git a/src/Qtx/QtxParser.h b/src/Qtx/QtxParser.h
deleted file mode 100644 (file)
index 0a0b05a..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxParser.h
-// Author:    Alexander SOLOVYOV
-
-#ifndef __QTX_PARSER_HEADER__
-#define __QTX_PARSER_HEADER__
-
-#include "Qtx.h"
-#include <qvaluestack.h>
-#include <qvariant.h>
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-
-class QtxOperations;
-
-/*! \var QtxValue
-    \brief Alias for QVariant
-*/
-typedef QVariant QtxValue;
-
-
-/*!
-  \class QtxParser
-
-  This class allows to calculate values of expressions using different set of operations.
-  It is provided some of standard set of operations (arithmetics, logic, strings, etc - in QtxStdOperations.h).
-  This parser allows to use parameters with help of methods has(), set(), remove(), value(). It uses
-  postfix representation of expressions and uses class QtxOperations in order to make certain operation
-  Every instance of parser contains only one postfix, so that if expression has been changed, then postfix
-  must be rebuilt. In order to increase performance of frequent calculation for many of expressions it is 
-  recommended to use different instances of parser for expressions
-
-*/
-class QTX_EXPORT QtxParser
-{
-public:
-    /*!
-      \enum Error
-      \brief Errors during parsing
-    */
-    typedef enum
-    {
-        OK,               /*! \var All right */
-       OperandsNotMatch, /*! \var Types of arguments are invalid for this operation */
-       InvalidResult,    /*! \var Operation cannot find result (for example, division by zero) */
-       InvalidOperation, /*! \var Name of operation is unknown */
-        OperationsNull,   /*! \var Internal operations pointer of parser is null */
-       InvalidToken,     /*! \var It isn't operation, parameter of value  */
-       CloseExpected,    /*! \var Close bracket is expected */
-       ExcessClose,      /*! \var The one of close bracket is excess */
-        BracketsNotMatch, /*! \var Last open and this close bracket are different, for example [) */
-       StackUnderflow,   /*! \var There is no arguments in stack for operation */
-       ExcessData        /*! \var The parsing is finished, but there is more then one value in stack */
-
-    } Error;
-
-public:
-    QtxParser( QtxOperations*, const QString& = QString::null );
-    virtual ~QtxParser();
-
-    QtxValue   calculate();
-    QtxValue   calculate( const QString& );
-    bool       setExpr( const QString& );
-
-    virtual void     clear();
-    virtual bool     has   ( const QString& name ) const;
-    virtual void     set   ( const QString& name, const QtxValue& value );
-    virtual bool     remove( const QString& name );
-    virtual QtxValue value ( const QString& name ) const;
-
-    bool       firstInvalid( QString& ) const;
-    void       removeInvalids();
-    QString    dump() const;
-    Error      lastError() const;
-    void       paramsList( QStringList& );
-
-    static QString toString( const QValueList< QtxValue >& );
-
-protected:
-    /*!
-      \enum PostfixItemType
-      \brief Types of postfix representation elements
-    */  
-    typedef enum
-    {
-      Value, /*! \var Value (number, string, etc.)*/
-      Param, /*! \var Parameter */
-      Open,  /*! \var Open bracket */
-      Close, /*! \var Close bracket */
-      Pre,   /*! \var Unary prefix operation */
-      Post,  /*! \var Unary postfix operation */
-      Binary /*! \var Binary operation */
-
-    } PostfixItemType;
-
-    /*! \var postfix representation element */
-    typedef struct
-    {
-        QtxValue          myValue;
-        PostfixItemType   myType;
-
-    } PostfixItem;
-
-    /*! \var postfix representation */
-    typedef QValueList< PostfixItem > Postfix;
-
-    /*! \var postfix representation iterator */
-    typedef Postfix::const_iterator PostfixIterator;
-
-protected:
-            QString  dump( const Postfix& ) const;
-    virtual bool     prepare( const QString&, Postfix& );
-    virtual bool     setOperationTypes( Postfix& );
-    virtual bool     sort( const Postfix&, Postfix&, 
-                           const QStringList&, const QStringList&, 
-                           int f=-1, int l=-1 );
-
-    virtual bool     parse( const QString& );
-    virtual void     setLastError( const Error );
-
-            bool     calculate( const QString&, QtxValue&, QtxValue& );
-
-    static int       search        ( const QStringList&, const QString&, int offset,
-                                     int& matchLen, int& listind );
-    static QString   note          ( const QString& str, int pos, int len );
-    static int       globalBrackets( const Postfix&, int, int );
-
-private:
-    /*! \var stack of QtxValues */
-    typedef QValueStack < QtxValue >  QtxValueStack;
-
-private:
-    QtxOperations*              myOperations;
-    QMap< QString, QtxValue >   myParameters;
-    Error                       myLastError;
-    Postfix                     myPost;
-};
-
-#endif
diff --git a/src/Qtx/QtxPathDialog.cxx b/src/Qtx/QtxPathDialog.cxx
deleted file mode 100755 (executable)
index fd098e7..0000000
+++ /dev/null
@@ -1,606 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxPathDialog.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxPathDialog.h"
-
-#include "QtxGroupBox.h"
-
-#include <qdir.h>
-#include <qlabel.h>
-#include <qpixmap.h>
-#include <qlayout.h>
-#include <qlineedit.h>
-#include <qfileinfo.h>
-#include <qobjectlist.h>
-#include <qstringlist.h>
-#include <qfiledialog.h>
-#include <qmessagebox.h>
-#include <qpushbutton.h>
-
-static const char* open_icon[] = {
-"16 16 5 1",
-"  c none",
-". c #ffff00",
-"# c #848200",
-"a c #ffffff",
-"b c #000000",
-"                ",
-"          bbb   ",
-"         b   b b",
-"              bb",
-"  bbb        bbb",
-" ba.abbbbbbb    ",
-" b.a.a.a.a.b    ",
-" ba.a.a.a.ab    ",
-" b.a.abbbbbbbbbb",
-" ba.ab#########b",
-" b.ab#########b ",
-" bab#########b  ",
-" bb#########b   ",
-" bbbbbbbbbbb    ",
-"                ",
-"                "
-};
-
-/*!
-  Constructor.
-*/
-QtxPathDialog::QtxPathDialog( const bool import, QWidget* parent, const bool modal, const bool resize, const int buttons, WFlags f )
-: QtxDialog( parent, 0, modal, resize, buttons, f ),
-myDefault( -1 ),
-myEntriesFrame( 0 ),
-myOptionsFrame( 0 )
-{
-       initialize();
-
-       setCaption( tr( import ? "Open file" : "Save file" ) );
-
-       setDefaultEntry( createFileEntry( tr( "File name" ), import ? OpenFile : SaveFile ) );
-       QLineEdit* le = fileEntry( defaultEntry() );
-       if ( le )
-               le->setMinimumWidth( 200 );
-
-       validate();
-
-       setFocusProxy( le );
-}
-
-/*!
-  Constructor.
-*/
-QtxPathDialog::QtxPathDialog( QWidget* parent, const bool modal, const bool resize, const int buttons, WFlags f )
-: QtxDialog( parent, 0, modal, resize, buttons, f ),
-myDefault( -1 ),
-myEntriesFrame( 0 ),
-myOptionsFrame( 0 )
-{
-       initialize();
-}
-
-/*!
-  Destructor.
-*/
-QtxPathDialog::~QtxPathDialog()
-{
-}
-
-/*!
-  \return file name
-*/
-QString QtxPathDialog::fileName() const
-{
-       return fileName( defaultEntry() );
-}
-
-/*!
-  Sets file name
-  \param txt - new file name
-  \param autoExtension - auto extension determination by file
-*/
-void QtxPathDialog::setFileName( const QString& txt, const bool autoExtension )
-{
-       setFileName( defaultEntry(), txt, autoExtension );
-}
-
-/*!
-  \return filter
-*/
-QString QtxPathDialog::filter() const
-{
-       return myFilter;
-}
-
-/*!
-  Changes filter (filter is a list of masks, separated by ';;')
-  \param fltr - new filter
-*/
-void QtxPathDialog::setFilter( const QString& fltr )
-{
-       myFilter = fltr;
-}
-
-/*!
-  Shows path dialog
-*/
-void QtxPathDialog::show()
-{
-       if ( hasVisibleChildren( myEntriesFrame ) )
-               myEntriesFrame->show();
-       else
-               myEntriesFrame->hide();
-
-       if ( hasVisibleChildren( myOptionsFrame ) )
-               myOptionsFrame->show();
-       else
-               myOptionsFrame->hide();
-
-       QtxDialog::show();
-}
-
-/*!
-  SLOT: called if user click button to show standard file dialog
-*/
-void QtxPathDialog::onBrowse()
-{
-       const QObject* obj = sender();
-
-       int id = -1;
-
-       for ( FileEntryMap::Iterator it = myEntries.begin(); it != myEntries.end() && id == -1; ++it )
-               if ( it.data().btn == obj )
-                       id = it.key();
-
-       if ( id == -1 )
-               return;
-
-       FileEntry& entry = myEntries[id];
-
-       bool isDir = entry.mode != OpenFile && entry.mode != SaveFile;
-
-       if ( !entry.dlg )
-       {
-               entry.dlg = new QFileDialog( QDir::current().path(), QString::null, this, 0, true );
-               entry.dlg->setCaption( caption() );
-               switch ( entry.mode )
-               {
-               case NewDir:
-               case OpenDir:
-               case SaveDir:
-                       isDir = true;
-                       entry.dlg->setMode( QFileDialog::DirectoryOnly );
-                       break;
-               case SaveFile:
-                       entry.dlg->setMode( QFileDialog::AnyFile );
-                       break;
-               case OpenFile:
-               default:
-                       entry.dlg->setMode( QFileDialog::ExistingFile );
-                       break;
-               }
-       }
-
-       if ( !isDir )
-               entry.dlg->setFilters( prepareFilters() );
-       entry.dlg->setSelection( fileName( id ) );
-
-       if ( entry.dlg->exec() != Accepted )
-               return;
-
-       QString fName = entry.dlg->selectedFile();
-
-       if ( fName.isEmpty() )
-               return;
-
-       if ( QFileInfo( fName ).extension().isEmpty() && !isDir )
-               fName = autoExtension( fName, entry.dlg->selectedFilter() );
-
-       fName = QDir::convertSeparators( fName );
-       QString prev = QDir::convertSeparators( fileName( id ) );
-       if ( isDir )
-       {
-               while ( prev.length() && prev.at( prev.length() - 1 ) == QDir::separator() )
-                       prev.remove( prev.length() - 1, 1 );
-               while ( fName.length() && fName.at( fName.length() - 1 ) == QDir::separator() )
-                       fName.remove( fName.length() - 1, 1 );
-       }
-
-       if ( prev == fName )
-               return;
-
-       setFileName( id, fName );
-       fileNameChanged( id, fName );
-
-       if ( id == defaultEntry() )
-               emit fileNameChanged( fName );
-}
-
-/*!
-  SLOT: called if user presses RETURN in line edit
-*/
-void QtxPathDialog::onReturnPressed()
-{
-       const QObject* obj = sender();
-
-       int id = -1;
-       for ( FileEntryMap::Iterator it = myEntries.begin(); it != myEntries.end() && id == -1; ++it )
-               if ( it.data().edit == obj )
-                       id = it.key();
-
-       if ( id == -1 )
-               return;
-
-       fileNameChanged( id, fileName( id ) );
-
-       if ( id == defaultEntry() )
-               emit fileNameChanged( fileName() );
-}
-
-/*!
-  SLOT: called if text in line edit is changed
-*/
-void QtxPathDialog::onTextChanged( const QString& )
-{
-       validate();
-}
-
-/*!
-  Checks validity of text and according to it enables/disables OK, Yes buttons
-*/
-void QtxPathDialog::validate()
-{
-       setButtonEnabled( isValid(), OK | Yes );
-}
-
-/*!
-  \return true if selected file is valid
-*/
-bool QtxPathDialog::isValid()
-{
-       bool ok = true;
-       for ( FileEntryMap::Iterator it = myEntries.begin(); it != myEntries.end() && ok; ++it )
-               if ( it.data().edit->isEnabled() )
-                       ok = !it.data().edit->text().stripWhiteSpace().isEmpty();
-
-       return ok;
-}
-
-/*!
-  \return true entered data is accepted
-*/
-bool QtxPathDialog::acceptData() const
-{
-       bool ok = true;
-
-       QWidget* parent = (QWidget*)this;
-
-       FileEntryMap::ConstIterator it;
-       for ( it = myEntries.begin(); it != myEntries.end() && ok; ++it )
-       {
-               const FileEntry& entry = it.data();
-               QFileInfo fileInfo( entry.edit->text() );
-               if ( entry.edit->text().isEmpty() )
-               {
-                       QMessageBox::critical( parent, caption(), tr( "File name not specified" ),
-                                                                  QMessageBox::Ok, QMessageBox::NoButton );
-                       ok = false;
-               }
-               else switch ( entry.mode )
-               {
-               case OpenFile:
-                       if ( !fileInfo.exists() )
-                       {
-                               QMessageBox::critical( parent, caption(), tr( "File \"%1\" does not exist" ).arg( fileInfo.filePath() ),
-                                                                          QMessageBox::Ok, QMessageBox::NoButton );
-                               ok = false;
-                       }
-                       break;
-               case SaveFile:
-                       if ( fileInfo.exists() )
-                               ok = QMessageBox::warning( parent, caption(), tr( "File \"%1\" already exist. Do you want to overwrite it?" ).arg( fileInfo.filePath() ),
-                                                                                  QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes;
-                       break;
-               case OpenDir:
-                       if ( !fileInfo.exists() || !fileInfo.isDir() )
-                       {
-                               QMessageBox::critical( parent, caption(), tr( "Directory \"%1\" does not exist" ).arg( fileInfo.filePath() ),
-                                                                          QMessageBox::Ok, QMessageBox::NoButton );
-                               ok = false;
-                       }
-                       break;
-               case SaveDir:
-                       if ( fileInfo.exists() && !fileInfo.isDir() )
-                       {
-                               QMessageBox::critical( parent, caption(), tr( "Directory \"%1\" can't be created because file with the same name exist" ).arg( fileInfo.filePath() ),
-                                                                          QMessageBox::Ok, QMessageBox::NoButton );
-                               ok = false;
-                       }
-                       break;
-               case NewDir:
-                       if ( fileInfo.exists() )
-                       {
-                               if ( !fileInfo.isDir() )
-                               {
-                                       QMessageBox::critical( parent, caption(), tr( "Directory \"%1\" can't be created because file with the same name exist" ).arg( fileInfo.filePath() ),
-                                                                                  QMessageBox::Ok, QMessageBox::NoButton );
-                                       ok = false;
-                               }
-                               else if ( QDir( fileInfo.filePath() ).count() > 2 )
-                                       ok = QMessageBox::warning( parent, caption(), tr( "Directory \"%1\" not empty. Do you want to remove all files in this directory?" ).arg( fileInfo.filePath() ),
-                                                                                          QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes;
-                       }
-                       break;
-               default:
-                       break;
-               }
-
-               if ( !ok )
-                       entry.edit->setFocus();
-       }
-
-       return ok;
-}
-
-/*!
-  Some custom activity on file name changing (must be redefined, default implementation is empty
-*/
-void QtxPathDialog::fileNameChanged( int, QString )
-{
-}
-
-/*!
-  \return frame with options
-*/
-QFrame* QtxPathDialog::optionsFrame()
-{
-       return myOptionsFrame;
-}
-
-/*!
-  \return file name
-  \param id - id of file entry
-*/
-QString QtxPathDialog::fileName( const int id ) const
-{
-       QString res;
-       if ( myEntries.contains( id ) )
-               res = myEntries[id].edit->text();
-
-       return res;
-}
-
-/*!
-  Change file name of file entry
-  \param id - id of file entry
-  \param txt - new file name
-  \param autoExt - assign extension automatically
-*/
-void QtxPathDialog::setFileName( const int id, const QString& txt, const bool autoExt )
-{
-       int mode;
-       QLineEdit* le = fileEntry( id, mode );
-
-       if ( le )
-       {
-               if ( autoExt && ( mode == OpenFile || mode == SaveFile ) )
-                       le->setText( autoExtension( txt ) );
-               else
-                       le->setText( txt );
-       }
-}
-
-/*!
-  \return line edit of file entry
-  \param id - id of file entry
-*/
-QLineEdit* QtxPathDialog::fileEntry( const int id ) const
-{
-       QLineEdit* le = 0;
-       if ( myEntries.contains( id ) )
-               le = myEntries[id].edit;
-
-       return le;
-}
-
-/*!
-  \return line edit and mode of file entry
-  \param id - id of file entry
-  \param theMode - for return mode of file entry
-*/
-QLineEdit* QtxPathDialog::fileEntry( const int theId, int& theMode ) const
-{
-       QLineEdit* le = 0;
-       if ( myEntries.contains( theId ) )
-       {
-               le = myEntries[theId].edit;
-               theMode = myEntries[theId].mode;
-       }
-
-       return le;
-}
-
-/*!
-  Creates file entry
-  \return id of just created file entry
-  \param lab - title of entry
-  \param mode - mode of entry
-  \param id - proposed id (if it is -1, then id will be chosen automatically)
-*/
-int QtxPathDialog::createFileEntry( const QString& lab, const int mode, const int id )
-{
-       int num = id;
-       if ( num == -1 )
-       {
-               num--;
-               while ( myEntries.contains( num ) )
-                       num--;
-       }
-
-       FileEntry entry;
-       entry.dlg = 0;
-       entry.mode = mode;
-
-       new QLabel( lab, myEntriesFrame );
-       entry.edit = new QLineEdit( myEntriesFrame );
-       entry.btn = new QPushButton( myEntriesFrame );
-       entry.btn->setAutoDefault( false );
-       entry.btn->setPixmap( QPixmap( open_icon ) );
-
-       connect( entry.btn, SIGNAL( clicked() ), this, SLOT( onBrowse() ) );
-       connect( entry.edit, SIGNAL( returnPressed() ), this, SLOT( onReturnPressed() ) );
-       connect( entry.edit, SIGNAL( textChanged( const QString& ) ), this, SLOT( onTextChanged( const QString& ) ) );
-
-       myEntries.insert( num, entry );
-
-       return num;
-}
-
-/*!
-  \return id of default entry
-*/
-int QtxPathDialog::defaultEntry() const
-{
-       return myDefault;
-}
-
-/*!
-  Change default entry id
-  \param id - new default entry id
-*/
-void QtxPathDialog::setDefaultEntry( const int id )
-{
-       myDefault = id;
-}
-
-/*!
-  Initialize dialog layout
-*/
-void QtxPathDialog::initialize()
-{
-       setCaption( tr( "File dialog" ) );
-
-       QVBoxLayout* main = new QVBoxLayout( mainFrame() );
-       QtxGroupBox* mainGroup = new QtxGroupBox( 1, Qt::Horizontal, "", mainFrame() );
-       mainGroup->setFrameStyle( QFrame::NoFrame );
-  mainGroup->setInsideMargin( 0 );
-       main->addWidget( mainGroup );
-
-       myEntriesFrame = new QGroupBox( 3, Qt::Horizontal, "", mainGroup );
-       myOptionsFrame = new QFrame( mainGroup );
-}
-
-/*!
-  \return list of filters
-*/
-QStringList QtxPathDialog::prepareFilters() const
-{
-       QStringList res;
-       if ( !myFilter.isEmpty() )
-       {
-               res = QStringList::split( ";;", myFilter );
-               bool allFilter = false;
-               for ( QStringList::ConstIterator it = res.begin(); it != res.end() && !allFilter; ++it )
-               {
-                       QStringList wildCards = filterWildCards( *it );
-                       allFilter = wildCards.findIndex( "*.*" ) != -1;
-               }
-
-               if ( !allFilter )
-                       res.append( tr( "All files (*.*)" ) );
-       }
-
-       return res;
-}
-
-/*!
-  \return list of filters with filtered wild cards
-*/
-QStringList QtxPathDialog::filterWildCards( const QString& theFilter ) const
-{
-       QStringList res;
-
-       int b = theFilter.findRev( "(" );
-       int e = theFilter.findRev( ")" );
-       if ( b != -1 && e != -1 )
-       {
-               QString content = theFilter.mid( b + 1, e - b - 1 ).stripWhiteSpace();
-               QStringList lst = QStringList::split( " ", content );
-               for ( QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it )
-                       if ( (*it).find( "." ) != -1 )
-                               res.append( (*it).stripWhiteSpace() );
-       }
-       return res;
-}
-
-/*!
-  \return file name with assigned extension
-  \param theFileName - source file name
-  \param theFilter - list of filters
-*/
-QString QtxPathDialog::autoExtension( const QString& theFileName, const QString& theFilter ) const
-{
-       QString fName = theFileName;
-
-       if ( fName.isEmpty() )
-               return fName;
-
-       QString filter = theFilter;
-       if ( filter.isEmpty() )
-       {
-               QStringList filters = prepareFilters();
-               if ( !filters.isEmpty() )
-                       filter = filters.first();
-       }
-
-       QStringList wildCards = filterWildCards( filter );
-       if ( !wildCards.isEmpty() )
-       {
-               QString ext = wildCards.first();
-               if ( ext.find( "." ) != -1 )
-                       ext = ext.mid( ext.find( "." ) + 1 );
-
-               if ( !ext.isEmpty() && !ext.contains( "*" ) )
-                       fName = QDir::convertSeparators( fName ) + QString( "." ) + ext;
-       }
-
-       return fName;
-}
-
-/*!
-  \return true if widget has visible children
-  \param wid - widget
-*/
-bool QtxPathDialog::hasVisibleChildren( QWidget* wid ) const
-{
-       bool res = false;
-       if ( wid )
-       {
-               const QObjectList* aChildren = wid->children();
-               if ( aChildren )
-               {
-                       for ( QObjectListIt it( *aChildren ); it.current() && !res; ++it )
-                       {
-                               if ( it.current()->isWidgetType() )
-                                       res = ((QWidget*)it.current())->isVisibleTo( wid );
-                       }
-               }
-       }
-       return res;
-}
diff --git a/src/Qtx/QtxPathDialog.h b/src/Qtx/QtxPathDialog.h
deleted file mode 100755 (executable)
index a4db3a7..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxPathDialog.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXPATHDIALOG_H
-#define QTXPATHDIALOG_H
-
-#include "QtxDialog.h"
-
-#include <qmap.h>
-
-class QFrame;
-class QLineEdit;
-class QPushButton;
-class QFileDialog;
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QTX_EXPORT QtxPathDialog : public QtxDialog
-{
-  Q_OBJECT
-
-protected:
-  QtxPathDialog( QWidget* = 0, const bool = true, const bool = false, const int = Standard, WFlags = 0 );
-
-public:
-  QtxPathDialog( const bool, QWidget* = 0, const bool = true, const bool = false, const int = Standard, WFlags = 0 );
-  virtual ~QtxPathDialog();
-
-  QString            fileName() const;
-  void               setFileName( const QString&, const bool = false );
-
-  QString            filter() const;
-  void               setFilter( const QString& );
-
-  virtual void       show();
-
-signals:
-  void               fileNameChanged( QString );
-
-protected slots:
-  void               validate();
-
-private slots:
-  void               onBrowse();
-  void               onReturnPressed();
-  void               onTextChanged( const QString& );
-
-protected:
-  virtual bool       isValid();
-  virtual bool       acceptData() const;
-  virtual void       fileNameChanged( int, QString );
-
-  QFrame*            optionsFrame();
-  QString            fileName( const int ) const;
-  void               setFileName( const int, const QString&, const bool = false );
-
-  QLineEdit*         fileEntry( const int ) const;
-  QLineEdit*         fileEntry( const int, int& ) const;
-  int                createFileEntry( const QString&, const int, const int = -1 );
-
-  int                defaultEntry() const;
-  void               setDefaultEntry( const int );
-
-private:
-  void               initialize();
-  QStringList        prepareFilters() const;
-       bool               hasVisibleChildren( QWidget* ) const;
-  QStringList        filterWildCards( const QString& ) const;
-  QString            autoExtension( const QString&, const QString& = QString::null ) const;
-
-protected:
-  enum { OpenFile, SaveFile, OpenDir, SaveDir, NewDir };
-
-private:
-  typedef struct { int mode; QLineEdit* edit;
-                   QPushButton* btn; QFileDialog* dlg; } FileEntry;
-  typedef QMap<int, FileEntry> FileEntryMap;
-
-private:
-  QString            myFilter;
-  FileEntryMap       myEntries;
-  int                myDefault;
-  QFrame*            myEntriesFrame;
-  QFrame*            myOptionsFrame;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
diff --git a/src/Qtx/QtxPopupMenu.cxx b/src/Qtx/QtxPopupMenu.cxx
deleted file mode 100644 (file)
index 8a1a4e4..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-#include "QtxPopupMenu.h"
-
-#include <qpainter.h>
-
-/*!
-    Class: QtxPopupMenu::TitleMenuItem [Internal]
-    Descr: Custom menu item for popup title.
-*/
-
-class QtxPopupMenu::TitleMenuItem : public QCustomMenuItem
-{
-public:
-  TitleMenuItem( const QString&, const QIconSet&, const int );
-  virtual ~TitleMenuItem();
-
-  virtual bool  fullSpan() const;
-  virtual bool  isSeparator() const;
-  virtual void  setFont( const QFont& );
-
-  virtual void  paint( QPainter*, const QColorGroup&, bool, bool, int, int, int, int );
-  virtual QSize sizeHint();
-
-private:
-  QString       myText;
-  QIconSet      myIcon;
-  QFont         myFont;
-  int           myAlign;
-};
-
-/*!
-  Constructor
-*/
-QtxPopupMenu::TitleMenuItem::TitleMenuItem( const QString& txt, const QIconSet& ico, const int align )
-: QCustomMenuItem(),
-myText( txt ),
-myIcon( ico ),
-myAlign( align )
-{
-}
-
-/*!
-  Destructor
-*/
-QtxPopupMenu::TitleMenuItem::~TitleMenuItem()
-{
-}
-
-/*!
-  \return  TRUE if this item wants to span the entire popup menu width  
-*/
-bool QtxPopupMenu::TitleMenuItem::fullSpan() const
-{
-  return true;
-}
-
-/*!
-  \return TRUE if this item is just a separator
-*/
-bool QtxPopupMenu::TitleMenuItem::isSeparator() const
-{
-  return false;
-}
-
-/*!
-  Changes font of item
-  \param font - new font
-*/
-void QtxPopupMenu::TitleMenuItem::setFont( const QFont& font )
-{
-  myFont = font;
-  myFont.setBold( true );
-}
-
-/*!
-  Draws item
-*/
-void QtxPopupMenu::TitleMenuItem::paint( QPainter* p, const QColorGroup& cg,
-                                         bool act, bool enabled, int x, int y, int w, int h )
-{
-  QFont f = p->font();
-  p->setFont( myFont );
-
-  p->fillRect( x, y, w, h, cg.brush( QColorGroup::Dark ) );
-
-  p->setPen( cg.shadow() );
-  p->drawRect( x, y, w, h );
-
-  int m = 3;
-  int s = 3;
-  int iw = p->fontMetrics().width( myText ) + ( myIcon.isNull() ? 0 : myIcon.pixmap().width() + s );
-  int ih = QMAX( ( myIcon.isNull() ? 0 : myIcon.pixmap().height() ), p->fontMetrics().height() );
-
-  int ix = x;
-  int iy = y + m;
-
-  if ( myAlign & AlignLeft )
-    ix = x;
-  else if ( myAlign & AlignRight )
-    ix = x + ( w - iw );
-  else if ( myAlign & AlignHCenter )
-    ix = x + ( w - iw ) / 2;
-
-  if ( myAlign & AlignTop )
-    iy = y;
-  else if ( myAlign & AlignBottom )
-    iy = y + ( h - ih - m );
-  else if ( myAlign & AlignVCenter )
-    iy = y + ( h - ih ) / 2;
-
-  if ( !myIcon.isNull() )
-  {
-    p->drawPixmap( ix, iy + ( ih - myIcon.pixmap().height() ) / 2, myIcon.pixmap() );
-    ix += myIcon.pixmap().width() + s;
-  }
-
-  p->setPen( cg.brightText() );
-  p->drawText( ix, iy + ( ih - p->fontMetrics().height() ) / 2 +
-               p->fontMetrics().ascent(), myText, 0, -1 );
-
-  p->setFont( f );
-}
-
-/*!
-  \return the recommended size for item
-*/
-QSize QtxPopupMenu::TitleMenuItem::sizeHint()
-{
-  QFontMetrics fM( myFont );
-
-  int m = 3;
-  int s = 3;
-  int w = fM.width( myText ) + ( myIcon.isNull() ? 0 : myIcon.pixmap().width() + s );
-  int h = QMAX( ( myIcon.isNull() ? 0 : myIcon.pixmap().height() ), fM.height() ) + 2 * m;
-
-  return QSize( w, h );
-}
-
-/*!
-  Constructor
-*/
-QtxPopupMenu::QtxPopupMenu( QWidget* parent, const char* name )
-: QPopupMenu( parent, name ),
-myId( -1 ),
-myPolicy( TitleAuto ),
-myAlign( AlignCenter )
-{
-}
-
-/*!
-  Destructor
-*/
-QtxPopupMenu::~QtxPopupMenu()
-{
-}
-
-/*!
-  \return popup menu title
-*/
-QString QtxPopupMenu::titleText() const
-{
-  return myText;
-}
-
-/*!
-  \return popup menu icon
-*/
-QIconSet QtxPopupMenu::titleIcon() const
-{
-  return myIcon;
-}
-
-/*!
-  \return popup menu title policy
-*/
-int QtxPopupMenu::titlePolicy() const
-{
-  return myPolicy;
-}
-
-/*!
-  \return popup menu title alignment
-*/
-int QtxPopupMenu::titleAlignment() const
-{
-  return myAlign;
-}
-
-/*!
-  Changes title text
-  \param txt - new text
-*/
-void QtxPopupMenu::setTitleText( const QString& txt )
-{
-  if ( myText == txt )
-    return;
-
-  myText = txt;
-
-  updateTitle();
-}
-
-/*!
-  Changes title icon
-  \param icon - new icon
-*/
-void QtxPopupMenu::setTitleIcon( const QIconSet& ico )
-{
-  myIcon = ico;
-
-  updateTitle();
-}
-
-/*!
-  Changes title policy
-  \param p - new policy
-*/
-void QtxPopupMenu::setTitlePolicy( const int p )
-{
-  if ( myPolicy == p )
-    return;
-
-  myPolicy = p;
-
-  updateTitle();
-}
-
-/*!
-  Changes title alignment
-  \param a - new alignment
-*/
-void QtxPopupMenu::setTitleAlignment( const int a )
-{
-  if ( myAlign == a )
-    return;
-
-  myAlign = a;
-
-  updateTitle();
-}
-
-/*!
-  Shows menu
-*/
-void QtxPopupMenu::show()
-{
-  insertTitle();
-
-  QPopupMenu::show();
-}
-
-/*!
-  Hides menu
-*/
-void QtxPopupMenu::hide()
-{
-  QPopupMenu::hide();
-
-  removeTitle();
-}
-
-/*!
-  Creates title item
-  \param txt - item text
-  \param icon - item icon
-  \param align - item alignment
-*/
-QtxPopupMenu::TitleMenuItem* QtxPopupMenu::createTitleItem( const QString& txt, const QIconSet& ico,
-                                                            const int align ) const
-{
-  return new TitleMenuItem( txt, ico, align );
-}
-
-/*!
-  Inserts title item to popup menu
-*/
-void QtxPopupMenu::insertTitle()
-{
-  if ( myId != -1 || titlePolicy() == TitleOff ||
-       ( titlePolicy() == TitleAuto && titleText().stripWhiteSpace().isEmpty() ) )
-    return;
-
-  TitleMenuItem* item = createTitleItem( titleText(), titleIcon(), titleAlignment() );
-
-  myId = insertItem( item, -1, 0 );
-  setItemEnabled( myId, false );
-}
-
-/*!
-  Removes title item from popup menu
-*/
-void QtxPopupMenu::removeTitle()
-{
-  if ( myId == -1 )
-    return;
-
-  removeItem( myId );
-  myId = -1;
-}
-
-/*!
-  Updates title item
-*/
-void QtxPopupMenu::updateTitle()
-{
-  if ( myId != -1 )
-  {
-    removeTitle();
-    insertTitle();
-  }
-}
diff --git a/src/Qtx/QtxPopupMenu.h b/src/Qtx/QtxPopupMenu.h
deleted file mode 100644 (file)
index 01dd270..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-#ifndef QTXPOPUPMENU_H
-#define QTXPOPUPMENU_H
-
-#include "Qtx.h"
-
-#include <qstring.h>
-#include <qiconset.h>
-#include <qpopupmenu.h>
-
-class QTX_EXPORT QtxPopupMenu : public QPopupMenu
-{
-  Q_OBJECT
-
-protected:
-  class TitleMenuItem;
-
-public:
-  enum { TitleAuto, TitleOn, TitleOff };
-
-public:
-  QtxPopupMenu( QWidget* = 0, const char* = 0 );
-  virtual ~QtxPopupMenu();
-
-  QString                titleText() const;
-  QIconSet               titleIcon() const;
-
-  int                    titlePolicy() const;
-  int                    titleAlignment() const;
-
-  virtual void           setTitleText( const QString& );
-  virtual void           setTitleIcon( const QIconSet& );
-
-  virtual void           setTitlePolicy( const int );
-  virtual void           setTitleAlignment( const int );
-
-public slots:
-  virtual void           show();
-  virtual void           hide();
-
-protected:
-  virtual TitleMenuItem* createTitleItem( const QString&, const QIconSet&, const int ) const;
-
-private:
-  void                   updateTitle();
-  void                   insertTitle();
-  void                   removeTitle();
-
-private:
-  int                    myId;
-  QString                myText;
-  QIconSet               myIcon;
-  int                    myAlign;
-  int                    myPolicy;
-};
-
-#endif
diff --git a/src/Qtx/QtxPopupMgr.cxx b/src/Qtx/QtxPopupMgr.cxx
deleted file mode 100644 (file)
index 5f0df3d..0000000
+++ /dev/null
@@ -1,759 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-
-#include "QtxPopupMgr.h"
-#include "QtxListOfOperations.h"
-#include "QtxStdOperations.h"
-#include "QtxAction.h"
-
-#include <qpopupmenu.h>
-#include <qdatetime.h>
-
-
-/*!
-  \return value of global parameter (depending on whole selection, but not dependending on one object of selection)
-  \param str - name of parameter
-
-  By default, it returns count of selected objects ("selcount") and list of parameters ("$<name>")
-*/
-QtxValue QtxPopupMgr::Selection::globalParam( const QString& str ) const
-{
-  if( str==selCountParam() )
-    return count();
-
-  else if( str[0]==equality() )
-  {
-    QtxSets::ValueSet set;
-    QString par = str.mid( 1 );
-
-    for( int i=0, n=count(); i<n; i++ )
-    {
-      QtxValue v = param( i, par );
-      if( v.isValid() )
-       QtxSets::add( set, v );
-      else
-       return QtxValue();      
-    }
-    return set;
-  }
-
-  else
-    return QtxValue();
-}
-
-/*!
-  \return symbole to detect name of parameter list
-*/
-QChar QtxPopupMgr::Selection::equality() const
-{
-  return defEquality();
-}
-
-/*!
-  \return name of parameter for count of selected objects
-*/
-QString QtxPopupMgr::Selection::selCountParam() const
-{
-  return defSelCountParam();
-}
-
-/*!
-  \return default symbole to detect name of parameter list
-*/
-QChar QtxPopupMgr::Selection::defEquality()
-{
-    return '$';
-}
-
-/*!
-  \return default name of parameter for count of selected objects
-*/
-QString QtxPopupMgr::Selection::defSelCountParam()
-{
-    return "selcount";
-}
-
-
-
-/*!
-  \class QtxCacheSelection
-
-  Special selection class, that caches parameter values.
-  Every parameter during popup building is calculated only one time,
-  although it may be included to many rules. After calculation
-  it is stored in internal map
-*/
-
-class QtxCacheSelection : public QtxPopupMgr::Selection
-{
-public:
-  QtxCacheSelection( QtxPopupMgr::Selection* );
-  virtual ~QtxCacheSelection();
-
-  virtual int      count() const;
-  virtual QtxValue param( const int, const QString& ) const;
-  virtual QtxValue globalParam( const QString& ) const;
-
-private:
-  typedef QMap< QString, QtxValue >  CacheMap;
-
-  QtxPopupMgr::Selection*    mySel;
-  CacheMap                   myParamCache;
-};
-
-/*!
-  Constructor
-  \param sel - base selection used for parameter calculation
-*/
-QtxCacheSelection::QtxCacheSelection( QtxPopupMgr::Selection* sel )
-: mySel( sel )
-{
-}
-
-/*!
-  Destructor
-*/
-QtxCacheSelection::~QtxCacheSelection()
-{
-}
-
-/*!
-  \return count of selected objects
-*/
-int QtxCacheSelection::count() const
-{
-  return mySel ? mySel->count() : 0;
-}
-
-/*!
-  Calculates and caches parameters.
-  Already calculated parameters are returned without calculation
-  \return parameter value
-  \param i - index of selected object
-  \param name - name of parameter
-*/
-QtxValue QtxCacheSelection::param( const int i, const QString& name ) const
-{
-  QString param_name = name + "#####" + QString::number( i );
-  if( myParamCache.contains( param_name ) )
-    return myParamCache[ param_name ];
-  else
-  {
-    QtxValue v;
-    if( mySel )
-      v = mySel->param( i, name );
-    if( v.isValid() )
-      ( ( CacheMap& )myParamCache ).insert( param_name, v );
-    return v;
-  }
-}
-
-/*!
-  Calculates and caches global parameters.
-  Already calculated parameters are returned without calculation
-  \return parameter value
-  \param name - name of parameter
-*/
-QtxValue QtxCacheSelection::globalParam( const QString& name ) const
-{
-  if( myParamCache.contains( name ) )
-    return myParamCache[ name ];
-  else
-  {
-    QtxValue v;
-    if( mySel )
-      v = mySel->globalParam( name );
-    if( v.isValid() )
-      ( ( CacheMap& )myParamCache ).insert( name, v );
-    return v;
-  }
-}
-
-
-
-
-/*!
-  Constructor
-  \param mgr - popup manager
-*/
-QtxPopupMgr::Operations::Operations( QtxPopupMgr* mgr )
-: QtxStrings(),
-  myPopupMgr( mgr )
-{
-    QStringList aList;
-    aList.append( "every" );
-    aList.append( "any" );
-    aList.append( "onlyone" );
-    addOperations( aList );
-
-    myParser = new QtxParser( mgr->myOperations );
-}
-
-/*!
-  Destructor
-  Deletes internal parser
-*/
-QtxPopupMgr::Operations::~Operations()
-{
-    delete myParser;
-}
-
-/*!
-    \return priority of popup operation 'op'.
-    \param isBin indicate whether the operation is binary
-*/
-int QtxPopupMgr::Operations::prior( const QString& op, bool isBin ) const
-{
-    if( !isBin && ( op=="every" || op=="any" || op=="onlyone" ) )
-        return 1;
-    else
-        return QtxStrings::prior( op, isBin );
-
-}
-
-/*!
-    Calculates result of operation
-    \return one of error states
-    \param op - name of operation
-    \param v1 - first operation argument (must be used also to store result)
-    \param v2 - second operation argument
-*/
-QtxParser::Error QtxPopupMgr::Operations::calculate
-    ( const QString& op, QtxValue& v1, QtxValue& v2 ) const
-{
-    int ind = -1;
-    if( op=="every" )
-        ind = 0;
-    else if( op=="any" )
-        ind = 1;
-    else if( op=="onlyone" )
-        ind = 2;
-
-    if( ind>=0 && ind<=2 )
-    {
-        QString val_name = op + "(" + v2.toString() + ")";
-        QtxParser::Error err = QtxParser::OK;
-
-        if( !myValues.contains( val_name ) )
-        {
-            myParser->setExpr( v2.toString() );
-            QStringList params, specific;
-            myParser->paramsList( params );
-
-            myParser->clear();
-            myPopupMgr->setParams( myParser, specific );
-
-            QtxPopupMgr::Selection* sel = myPopupMgr->myCurrentSelection;
-
-            int global_result = 0;
-            if( sel )
-                for( int i=0, n=sel->count(); i<n; i++ )
-                {
-                    QStringList::const_iterator anIt = specific.begin(),
-                                                aLast = specific.end();
-                    for( ; anIt!=aLast; anIt++ )
-                    {
-                        QtxValue v = sel->param( i, *anIt );
-                        if( v.isValid() )
-                            myParser->set( *anIt, v );
-                        else
-                            return QtxParser::InvalidToken;
-                    }
-
-                    QtxValue res = myParser->calculate();
-                    err = myParser->lastError();
-                    if( err==QtxParser::OK )
-                        if( res.type()==QVariant::Bool )
-                        {
-                            if( res.toBool() )
-                                global_result++;
-                            if( ind==2 && global_result>1 )
-                                break;
-                        }
-                        else
-                            return QtxParser::InvalidResult;
-                    else
-                        return err;
-                }
-
-            QtxValue& vv = ( QtxValue&  )myValues[ val_name ];
-            vv = ( ind==0 && global_result==sel->count() ) ||
-                 ( ind==1 ) ||
-                 ( ind==2 && global_result==1 );
-        }
-
-        v2 = myValues[ val_name ];
-
-        return err;
-    }
-    else
-        return QtxStrings::calculate( op, v1, v2 );
-}
-
-/*!
-  Clears internal map of values
-*/
-void QtxPopupMgr::Operations::clear()
-{
-    myValues.clear();
-}
-
-
-
-
-
-
-
-
-/*!
-  Constructor
-*/
-QtxPopupMgr::QtxPopupMgr( QPopupMenu* popup, QObject* parent )
-: QtxActionMenuMgr( popup, parent ),
-  myCurrentSelection( 0 )
-{
-    createOperations();
-}
-
-/*!
-  Destructor
-*/
-QtxPopupMgr::~QtxPopupMgr()
-{
-}
-
-/*!
-  Creates popup operations instance
-*/
-void QtxPopupMgr::createOperations()
-{
-    myOperations = new QtxListOfOperations;
-    myOperations->prepend( "logic",   new QtxLogic(),           0 );
-    myOperations->prepend( "arithm",  new QtxArithmetics(),    50 );
-    myOperations->append( "strings", new QtxStrings(),       100 );
-    myOperations->append( "sets",    new QtxSets(),          150 );
-    myOperations->append( "custom",  new Operations( this ), 200 );
-}
-
-/*!
-  Additional version of registerAction
-  \param act - action to be registered
-  \param visible - rule for visibility state
-  \param toggle - rule for toggle on state
-  \param id - proposed id (if it is less than 0, then id will be generated automatically)
-*/
-int QtxPopupMgr::registerAction( QAction* act,
-                                 const QString& visible,
-                                 const QString& toggle,
-                                 const int id )
-{
-    int _id = QtxActionMenuMgr::registerAction( act, id );
-    setRule( _id, visible, true );
-    setRule( _id, toggle, false );
-    return _id;
-}
-
-/*!
-  Removes action from internal map
-  \param id - action id
-*/
-void QtxPopupMgr::unRegisterAction( const int id )
-{
-    QAction* act = action( id );
-
-    myVisibility.remove( act );
-    myToggle.remove( act );
-
-    remove( id );
-    //QtxActionMenuMgr::unRegisterAction( id );
-}
-
-/*!
-  \return true if manager has rule for action
-  \param act - action
-  \param visibility - if it is true, then rule for "visibility" is checked, otherwise - for "toggle"
-*/
-bool QtxPopupMgr::hasRule( QAction* act, bool visibility ) const
-{
-    return map( visibility ).contains( act );
-}
-
-/*!
-  \return true if manager has rule for action
-  \param id - action id
-  \param visibility - if it is true, then rule for "visibility" is checked, otherwise - for "toggle"
-*/
-bool QtxPopupMgr::hasRule( const int id, bool visibility ) const
-{
-    return hasRule( action( id ), visibility );
-}
-
-/*!
-  Sets new rule for action
-  \param act - action
-  \param rule - string expression of rule
-  \param visibility - if it is true, then rule for "visibility" will be set, otherwise - for "toggle"
-*/
-void QtxPopupMgr::setRule( QAction* act, const QString& rule, bool visibility )
-{
-    if( !act || rule.isEmpty() )
-        return;
-
-    if( !hasRule( act, visibility ) )
-    {
-        QtxParser* p = new QtxParser( myOperations, rule );
-        if( p->lastError()==QtxParser::OK )
-            map( visibility ).insert( act, p );
-        else
-            delete p;
-    }
-    else
-    {
-        QtxParser* p = map( visibility )[ act ];
-        p->setExpr( rule );
-        if( p->lastError()!=QtxParser::OK )
-            p->setExpr( QString() );
-    }
-}
-
-/*!
-  Sets new rule for action
-  \param id - action id
-  \param rule - string expression of rule
-  \param visibility - if it is true, then rule for "visibility" will be set, otherwise - for "toggle"
-*/
-void QtxPopupMgr::setRule( const int id, const QString& rule, bool visibility )
-{
-    setRule( action( id ), rule, visibility );
-}
-
-/*!
-  \return true if parser has finished work without errors
-  \param p - parser
-*/
-bool result( QtxParser* p )
-{
-    bool res = false;
-    if( p )
-    {
-        QtxValue vv = p->calculate();
-        res = p->lastError()==QtxParser::OK &&
-            ( ( vv.type()==QVariant::Int && vv.toInt()!=0 ) ||
-              ( vv.type()==QVariant::Bool && vv.toBool() ) );
-    }
-    return res;
-}
-
-/*!
-  Fills parser parameters with help of Selection::globalParam() method
-  \param p - parser
-  \param specific - list will be filled with names of parameters depending on selection objects (not global)
-*/
-void QtxPopupMgr::setParams( QtxParser* p, QStringList& specific ) const
-{
-    if( !p || !myCurrentSelection )
-        return;
-
-    QStringList params;
-
-    p->paramsList( params );
-    QStringList::const_iterator anIt = params.begin(),
-                                aLast = params.end();
-    for( ; anIt!=aLast; anIt++ )
-    {
-      QtxValue v = myCurrentSelection->globalParam( *anIt );
-      if( v.isValid() )
-       p->set( *anIt, v );
-      else
-        specific.append( *anIt );
-    }
-}
-
-/*!
-  \return true if 'v1'<'v2'
-  This function can work with many types of values
-*/
-bool operator<( const QtxValue& v1, const QtxValue& v2 )
-{
-  QVariant::Type t1 = v1.type(), t2 = v2.type();
-  if( t1==t2 )
-  {
-    switch( t1 )
-    {
-    case QVariant::Int:
-      return v1.toInt() < v2.toInt();
-      
-    case QVariant::Double:
-      return v1.toDouble() < v2.toDouble();
-
-    case QVariant::CString:
-    case QVariant::String:
-      return v1.toString() < v2.toString();
-
-    case QVariant::StringList:
-    case QVariant::List:
-    {
-      const QValueList<QtxValue>& aList1 = v1.toList(), aList2 = v2.toList();
-      QValueList<QtxValue>::const_iterator
-       anIt1 = aList1.begin(), aLast1 = aList1.end(),
-        anIt2 = aList2.begin(), aLast2 = aList2.end();
-      for( ; anIt1!=aLast1 && anIt2!=aLast2; anIt1++, anIt2++ )
-       if( (*anIt1)!=(*anIt2) )
-         return (*anIt1)<(*anIt2);
-
-      return anIt1==aLast1 && anIt2!=aLast2;
-    }
-
-    default:
-      return v1.toString()<v2.toString();
-    }
-  }
-  else
-    return t1<t2;
-}
-
-/*!
-  \return true if rule of action is satisfied on current selection
-  \param act - action
-  \param visibility - what rule is checked: for visibility(true) or for toggle(false)
-*/
-bool QtxPopupMgr::isSatisfied( QAction* act, bool visibility ) const
-{
-  QString menu = act->menuText();
-
-  bool res = false;
-  if( !act )
-    return res;
-
-  if( hasRule( act, visibility ) )
-  {
-    QtxParser* p = map( visibility )[ act ];
-    QStringList specific;
-    p->clear();
-    ( ( Operations* )myOperations->operations( "custom" ) )->clear();
-
-    setParams( p, specific );
-
-    QMap<QValueList<QtxValue>,int> aCorteges;
-    QValueList<QtxValue> c;
-
-    if( specific.count()>0 )
-      if( myCurrentSelection )
-      {
-       res = false;
-
-       for( int i=0, n=myCurrentSelection->count(); i<n && !res; i++ )
-       {
-         QStringList::const_iterator anIt1 = specific.begin(), aLast1 = specific.end();
-         c.clear();
-         for( ; anIt1!=aLast1; anIt1++ )
-           c.append( myCurrentSelection->param( i, *anIt1 ) );
-         aCorteges.insert( c, 0 );
-       }
-       
-       //qDebug( QString( "%1 corteges" ).arg( aCorteges.count() ) );
-       QMap<QValueList<QtxValue>,int>::const_iterator anIt = aCorteges.begin(), aLast = aCorteges.end();
-       for( ; anIt!=aLast; anIt++ )
-       {
-         QStringList::const_iterator anIt1 = specific.begin(), aLast1 = specific.end();
-         const QValueList<QtxValue>& aCortege = anIt.key();
-         QValueList<QtxValue>::const_iterator anIt2 = aCortege.begin();
-         for( ; anIt1!=aLast1; anIt1++, anIt2++ )
-           p->set( *anIt1, *anIt2 );
-         res = res || result( p );
-       }
-
-       /*
-       for( int i=0, n=myCurrentSelection->count(); i<n && !res; i++ )
-       {
-         QStringList::const_iterator anIt1 = specific.begin(), aLast1 = specific.end();
-         for( ; anIt1!=aLast1; anIt1++ )
-           p->set( *anIt1, myCurrentSelection->param( i, *anIt1 ) );
-         res = res || result( p );
-       }*/
-      }
-      else
-       res = false;
-    else
-      res = result( p );
-  }
-
-  return res;
-}
-
-/*!
-  \return true if item corresponding to action is visible
-  \param actId - action id
-  \param place - index of place
-*/
-bool QtxPopupMgr::isVisible( const int actId, const int place ) const
-{
-    bool res = QtxActionMenuMgr::isVisible( actId, place );
-    QAction* act = action( actId );
-    if( hasRule( act, true ) )
-        res = res && isSatisfied( act, true );
-    return res;
-}
-
-/*!
-  Updates popup according to selection
-  \param p - popup menu
-  \param sel - selection
-*/
-void QtxPopupMgr::updatePopup( QPopupMenu* p, Selection* sel )
-{
-  QTime t1 = QTime::currentTime();
-
-  if( !p || !sel )
-    return;
-
-  myCurrentSelection = new QtxCacheSelection( sel );
-  RulesMap::iterator anIt = myToggle.begin(),
-                            aLast = myToggle.end();
-  for( ; anIt!=aLast; anIt++ )
-    if( anIt.key()->isToggleAction() && hasRule( anIt.key(), false ) )
-      anIt.key()->setOn( isSatisfied( anIt.key(), false ) );
-
-  setWidget( ( QWidget* )p );
-  updateMenu();
-  QTime t2 = QTime::currentTime();
-  qDebug( QString( "update popup time = %1 msecs" ).arg( t1.msecsTo( t2 ) ) );
-  qDebug( QString( "number of objects = %1" ).arg( myCurrentSelection->count() ) );
-
-  delete myCurrentSelection;
-}
-
-/*!
-  \return reference to map of rules
-  \param visibility - type of map: visibility of toggle
-*/
-QtxPopupMgr::RulesMap& QtxPopupMgr::map( bool visibility ) const
-{
-    return ( RulesMap& )( visibility ? myVisibility : myToggle );
-}
-
-/*!
-  Loads actions description from file
-  \param fname - name of file
-  \param r - reader of file
-  \return true on success
-*/
-bool QtxPopupMgr::load( const QString& fname, QtxActionMgr::Reader& r )
-{
-  PopupCreator cr( &r, this );
-  return r.read( fname, cr );
-}
-
-
-
-
-/*!
-  Constructor
-  \param r - menu reader
-  \param mgr - menu manager
-*/
-QtxPopupMgr::PopupCreator::PopupCreator( QtxActionMgr::Reader* r,
-                                         QtxPopupMgr* mgr )
-: QtxActionMgr::Creator( r ),
-  myMgr( mgr )
-{
-}
-
-/*!
-  Destructor
-*/QtxPopupMgr::PopupCreator::~PopupCreator()
-{
-}
-
-
-/*!
-  Appends new menu items
-  \param tag - tag of item
-  \param subMenu - it has submenu
-  \param attr - list of attributes
-  \param pId - id of action corresponding to parent item
-*/
-int QtxPopupMgr::PopupCreator::append( const QString& tag, const bool subMenu,
-                                       const ItemAttributes& attr, const int pId )
-{
-  if( !myMgr || !reader() )
-    return -1;
-
-  QString label   = reader()->option( "label",     "label"     ),
-          id      = reader()->option( "id",        "id"        ),
-          pos     = reader()->option( "pos",       "pos"       ),
-          group   = reader()->option( "group",     "group"     ),
-          tooltip = reader()->option( "tooltip",   "tooltip"   ),
-          sep     = reader()->option( "separator", "separator" ),
-          accel   = reader()->option( "accel",     "accel"     ),
-          icon    = reader()->option( "icon",      "icon"      ),
-          toggle  = reader()->option( "toggle",    "toggle"    );
-
-  int res = -1, actId = intValue( attr, id, -1 );;
-  if( subMenu )
-    res = myMgr->insert( strValue( attr, label ), pId, intValue( attr, group, 0 ), intValue( attr, pos, -1 ) );
-  else if( tag==sep )
-    res = myMgr->insert( separator(), pId, intValue( attr, group, 0 ), intValue( attr, pos, -1 ) );
-  else //if( !myMgr->contains( actId ) )
-  {
-    QPixmap pix; QIconSet set;
-    QString name = strValue( attr, icon );
-    if( !name.isEmpty() )
-    {
-      if( loadPixmap( name, pix ) )
-        set = QIconSet( pix );
-    }
-
-    QString actLabel = strValue( attr, label );
-    QtxAction* newAct = new QtxAction( strValue( attr, tooltip ), set, actLabel,
-                                       QKeySequence( strValue( attr, accel ) ),
-                                       myMgr );
-    newAct->setToolTip( strValue( attr, tooltip ) );
-    QString toggleact = strValue( attr, toggle );
-    bool isToggle = !toggleact.isEmpty();
-    newAct->setToggleAction( isToggle );
-    newAct->setOn( toggleact.lower()=="true" );
-        
-    connect( newAct );
-    int aid = myMgr->registerAction( newAct, visibleRule( attr ), 
-                                     isToggle ? toggleRule( attr ) : QString::null,
-                                     actId );
-    res = myMgr->insert( aid, pId, intValue( attr, group, 0 ), intValue( attr, pos, -1 ) );
-  }
-
-  return res;
-}
-
-/*!
-  \return visibility rule by attributes
-  Default implementation is empty
-*/
-QString QtxPopupMgr::PopupCreator::visibleRule( const ItemAttributes& ) const
-{
-  return QString::null;
-}
-
-/*!
-  \return toggle rule by attributes
-  Default implementation is empty
-*/
-QString QtxPopupMgr::PopupCreator::toggleRule( const ItemAttributes& ) const
-{
-  return QString::null;
-}
diff --git a/src/Qtx/QtxPopupMgr.h b/src/Qtx/QtxPopupMgr.h
deleted file mode 100644 (file)
index 7bc260b..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-
-#ifndef __QTX_POPUP_MGR_HEADER__
-#define __QTX_POPUP_MGR_HEADER__
-
-#include "Qtx.h"
-#include "QtxActionMenuMgr.h"
-#include "QtxParser.h"
-#include "QtxStdOperations.h"
-
-#include <qmap.h>
-
-class QtxListOfOperations;
-
-class QTX_EXPORT QtxPopupMgr : public QtxActionMenuMgr
-{
-    Q_OBJECT
-
-public:
-    class QTX_EXPORT Selection
-    {
-    public:
-        virtual int      count() const = 0;
-        virtual QtxValue param( const int, const QString& ) const = 0;
-       virtual QtxValue globalParam( const QString& ) const;
-
-       virtual QChar    equality() const;
-       virtual QString  selCountParam() const;
-
-       static QChar    defEquality();
-       static QString  defSelCountParam();
-    };
-
-protected:
-    class Operations : public QtxStrings
-    {
-    public:
-        Operations( QtxPopupMgr* );
-        virtual ~Operations();
-
-        virtual int   prior( const QString&, bool isBin ) const;
-        virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
-
-        void clear();
-
-    private:
-        QtxPopupMgr*               myPopupMgr;
-        QtxParser*                 myParser;
-        QMap< QString, QtxValue >  myValues;
-    };
-
-    friend class Operations;
-
-protected:
-  class PopupCreator;
-
-public:
-    QtxPopupMgr( QPopupMenu*, QObject* = 0 );
-    virtual ~QtxPopupMgr();
-
-    virtual int  registerAction( QAction*,
-                                 const QString& visible,
-                                 const QString& toggle = QString::null,
-                                 const int = -1 );
-    virtual void unRegisterAction( const int );
-
-    virtual bool isVisible( const int actId, const int place ) const;
-
-    bool    hasRule( QAction*, bool visibility ) const;
-    bool    hasRule( const int, bool visibility ) const;
-    void    setRule( QAction*, const QString&, bool visibility );
-    void    setRule( const int, const QString&, bool visibility );
-    void    updatePopup( QPopupMenu*, Selection* );
-
-    //return name of parameter corresponding to selected objects count
-    //it will be set automatically
-
-    virtual bool load( const QString&, QtxActionMgr::Reader& );
-
-protected:
-    typedef QMap< QAction*, QtxParser* > RulesMap;
-
-protected:
-    virtual bool      isSatisfied( QAction*, bool visibility ) const;
-            void      setParams( QtxParser*, QStringList& ) const;
-            RulesMap& map( bool visibility ) const;
-
-    void createOperations();
-
-private:
-    RulesMap                 myVisibility, myToggle;
-    Selection*               myCurrentSelection;
-    QtxListOfOperations*     myOperations;
-};
-
-
-
-class QtxPopupMgr::PopupCreator : public QtxActionMgr::Creator
-{
-public:
-  PopupCreator( QtxActionMgr::Reader*, QtxPopupMgr* );
-  virtual ~PopupCreator();
-
-  virtual int append( const QString&, const bool,
-                      const ItemAttributes&, const int );
-
-  virtual QString visibleRule( const ItemAttributes& ) const;
-  virtual QString toggleRule( const ItemAttributes& ) const;
-
-private:
-  QtxPopupMgr* myMgr;
-};
-
-
-#endif
diff --git a/src/Qtx/QtxResourceEdit.cxx b/src/Qtx/QtxResourceEdit.cxx
deleted file mode 100644 (file)
index e96a57e..0000000
+++ /dev/null
@@ -1,748 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxResourceEdit.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxResourceEdit.h"
-
-#include "QtxResourceMgr.h"
-
-
-/*!
-  Constructor
-*/
-QtxResourceEdit::QtxResourceEdit( QtxResourceMgr* mgr )
-: myResMgr( mgr )
-{
-}
-
-/*!
-  Destructor
-*/
-QtxResourceEdit::~QtxResourceEdit()
-{
-  ItemMap items;
-  for ( ItemMap::ConstIterator it = myItems.begin(); it != myItems.end(); ++it )
-    items.insert( it.key(), it.data() );
-
-  for ( ItemMap::ConstIterator itr = items.begin(); itr != items.end(); ++itr )
-    if ( myItems.contains( itr.key() ) )
-      delete itr.data();
-}
-
-/*!
-  \return assigned resource manager
-*/
-QtxResourceMgr* QtxResourceEdit::resourceMgr() const
-{
-  return myResMgr;
-}
-
-/*!
-  Adds new item
-  \param label - label of widget to edit preference
-  \param pId - parent item id
-  \param type - type of item
-  \param section - section of resource assigned with item
-  \param param - name of resource assigned with item
-*/
-int QtxResourceEdit::addItem( const QString& label, const int pId, const int type,
-                              const QString& section, const QString& param )
-{
-  Item* i = createItem( label, type, pId );
-  if ( !i )
-    return -1;
-
-  if ( !myItems.contains( i->id() ) )
-  {
-    myItems.insert( i->id(), i );
-
-    i->setTitle( label );
-    i->setResource( section, param );
-
-    if ( !i->parentItem() && !myChildren.contains( i ) )
-      myChildren.append( i );
-
-    itemAdded( i );
-  }
-
-  return i->id();
-}
-
-/*!
-  \return value of item property
-  \param id - item id
-  \propName - propertyName
-*/
-QVariant QtxResourceEdit::itemProperty( const int id, const QString& propName ) const
-{
-  QVariant propValue;
-  Item* i = item( id );
-  if ( i )
-    propValue = i->property( propName );
-  return propValue;
-}
-
-/*!
-  Sets value of item property
-  \param id - item id
-  \propName - propertyName
-  \propValue - new value of property
-*/
-void QtxResourceEdit::setItemProperty( const int id, const QString& propName, const QVariant& propValue )
-{
-  Item* i = item( id );
-  if ( i )
-    i->setProperty( propName, propValue );
-}
-
-/*!
-  \return resource assigned with item
-  \param id - item id
-  \param section - to return section of resource
-  \param param - to return name of resource
-*/
-void QtxResourceEdit::resource( const int id, QString& sec, QString& param ) const
-{
-  Item* i = item( id );
-  if ( i )
-    i->resource( sec, param );
-}
-
-/*!
-  Stores all values to resource manager
-*/
-void QtxResourceEdit::store()
-{
-  QMap<Item*, QString> before;
-  resourceValues( before );
-
-  for ( ItemMap::ConstIterator it = myItems.begin(); it != myItems.end(); ++it )
-    it.data()->store();
-
-  QMap<Item*, QString> after;
-  resourceValues( after );
-
-  QMap<Item*, QString> changed;
-  differentValues( before, after, changed );
-
-  changedResources( changed );
-}
-
-/*!
-  Retrieve all values from resource manager
-*/
-void QtxResourceEdit::retrieve()
-{
-  for ( ItemMap::ConstIterator it = myItems.begin(); it != myItems.end(); ++it )
-    it.data()->retrieve();
-}
-
-/*!
-  Stores all values to backup container
-*/
-void QtxResourceEdit::toBackup()
-{
-  myBackup.clear();
-  resourceValues( myBackup );
-}
-
-/*!
-  Retrieve all values from backup container
-*/
-void QtxResourceEdit::fromBackup()
-{
-  QMap<Item*, QString> before;
-  resourceValues( before );
-
-  setResourceValues( myBackup );
-
-  QMap<Item*, QString> after;
-  resourceValues( after );
-
-  QMap<Item*, QString> changed;
-  differentValues( before, after, changed );
-
-  changedResources( changed );
-}
-
-/*!
-  Updates resource edit (default implementation is empty)
-*/
-void QtxResourceEdit::update()
-{
-}
-
-/*!
-  \return item by it's id
-  \param id - item id 
-*/
-QtxResourceEdit::Item* QtxResourceEdit::item( const int id ) const
-{
-  Item* i = 0;
-  if ( myItems.contains( id ) )
-    i = myItems[id];
-  return i;
-}
-
-/*!
-  \return item by it's title (finds first item)
-  \param title - item title 
-*/
-QtxResourceEdit::Item* QtxResourceEdit::item( const QString& title ) const
-{
-  Item* i = 0;
-  for ( ItemMap::ConstIterator it = myItems.begin(); it != myItems.end() && !i; ++it )
-  {
-    if ( it.data()->title() == title )
-      i = it.data();
-  }
-  return i;
-}
-
-/*!
-  \return item by it's title and parent id
-  \param title - item title 
-  \param pId - parent id
-*/
-QtxResourceEdit::Item* QtxResourceEdit::item( const QString& title, const int pId ) const
-{
-  Item* i = 0;
-  Item* pItem = item( pId );
-  for ( ItemMap::ConstIterator it = myItems.begin(); it != myItems.end() && !i; ++it )
-  {
-    if ( it.data()->parentItem() == pItem && it.data()->title() == title )
-      i = it.data();
-  }
-  return i;
-}
-
-/*!
-  Creates item
-  \return new item
-  \param label - text of label for new item
-  \param type - type of new item
-  \param pId - parent id
-*/
-QtxResourceEdit::Item* QtxResourceEdit::createItem( const QString& label, const int type, const int pId )
-{
-  Item* i = 0;
-  if ( pId < 0 )
-    i = createItem( label, type );
-  else
-  {
-    Item* pItem = item( pId );
-    if ( pItem )
-    {
-      i = pItem->createItem( label, type );
-      pItem->insertChild( i );
-    }
-  }
-
-  return i;
-}
-
-/*!
-  Removes item
-  \param item - item to be removed
-*/
-void QtxResourceEdit::removeItem( Item* item )
-{
-  if ( !item )
-    return;
-
-  myChildren.remove( item );
-  myItems.remove( item->id() );
-
-  itemRemoved( item );
-}
-
-/*!
-  \return children items of resource edit
-  \param lst - list of items to be filled with children
-*/
-void QtxResourceEdit::childItems( QPtrList<Item>& lst ) const
-{
-  lst.clear();
-  for ( QPtrListIterator<Item> it( myChildren ); it.current(); ++it )
-    lst.append( it.current() );
-}
-
-/*!
-  \return all resources values from widgets
-  \param map - map to be filled by resources values
-*/
-void QtxResourceEdit::resourceValues( QMap<int, QString>& map ) const
-{
-  QString sect, name;
-  for ( ItemMap::ConstIterator it = myItems.begin(); it != myItems.end(); ++it )
-  {
-    it.data()->resource( sect, name );
-    if( myResMgr->hasValue( sect, name ) )
-      map.insert( it.key(), it.data()->resourceValue() );
-  }
-}
-
-/*!
-  \return all resources values from widgets
-  \param map - map to be filled by resources values
-*/
-void QtxResourceEdit::resourceValues( QMap<Item*, QString>& map ) const
-{
-  QString sect, name;
-  for ( ItemMap::ConstIterator it = myItems.begin(); it != myItems.end(); ++it )
-  {
-    it.data()->resource( sect, name );
-    if( myResMgr->hasValue( sect, name ) )
-      map.insert( it.data(), it.data()->resourceValue() );
-  }
-}
-
-/*!
-  Sets to widgets all resources values from map
-  \param map - map with resources values
-*/
-void QtxResourceEdit::setResourceValues( QMap<int, QString>& map ) const
-{
-  for ( QMap<int, QString>::ConstIterator it = map.begin(); it != map.end(); ++it )
-  {
-    Item* i = item( it.key() );
-    if ( i )
-      i->setResourceValue( it.data() );
-  }
-}
-
-/*!
-  Sets to widgets all resources values from map
-  \param map - map with resources values
-*/
-void QtxResourceEdit::setResourceValues( QMap<Item*, QString>& map ) const
-{
-  for ( QMap<Item*, QString>::ConstIterator it = map.begin(); it != map.end(); ++it )
-    it.key()->setResourceValue( it.data() );
-}
-
-/*!
-   Compares two map of resources values and finds different ones
-   \param map1 - first map
-   \param map2 - second map
-   \param resMap - map to be filled with different values
-   \param fromFirst - if it is true, then resMap will be filled with values from first map, otherwise - from second
-*/
-void QtxResourceEdit::differentValues( const QMap<int, QString>& map1, const QMap<int, QString>& map2,
-                                       QMap<int, QString>& resMap, const bool fromFirst ) const
-{
-  resMap.clear();
-  const QMap<int, QString>& later = fromFirst ? map1 : map2;
-  const QMap<int, QString>& early = fromFirst ? map2 : map1;
-
-  for ( QMap<int, QString>::ConstIterator it = later.begin(); it != later.end(); ++it )
-  {
-    if ( !early.contains( it.key() ) || early[it.key()] != it.data() )
-      resMap.insert( it.key(), it.data() );
-  }
-}
-
-/*!
-   Compares two map of resources values and finds different ones
-   \param map1 - first map
-   \param map2 - second map
-   \param resMap - map to be filled with different values
-   \param fromFirst - if it is true, then resMap will be filled with values from first map, otherwise - from second
-*/
-void QtxResourceEdit::differentValues( const QMap<Item*, QString>& map1, const QMap<Item*, QString>& map2,
-                                       QMap<Item*, QString>& resMap, const bool fromFirst ) const
-{
-  resMap.clear();
-  const QMap<Item*, QString>& later = fromFirst ? map1 : map2;
-  const QMap<Item*, QString>& early = fromFirst ? map2 : map1;
-
-  for ( QMap<Item*, QString>::ConstIterator it = later.begin(); it != later.end(); ++it )
-  {
-    if ( !early.contains( it.key() ) || early[it.key()] != it.data() )
-      resMap.insert( it.key(), it.data() );
-  }
-}
-
-/*!
-  Makes some activity on resource changing (called from store() method)
-  \sa store()
-*/
-void QtxResourceEdit::changedResources( const QMap<Item*, QString>& )
-{
-}
-
-/*!
-  Some activity on item addition (default implementation is empty)
-*/
-void QtxResourceEdit::itemAdded( Item* )
-{
-}
-
-/*!
-  Some activity on item removing (default implementation is empty)
-*/
-void QtxResourceEdit::itemRemoved( Item* )
-{
-}
-
-/*!
-  Constructor
-*/
-QtxResourceEdit::Item::Item( QtxResourceEdit* edit, Item* parent )
-: myEdit( edit ),
-myParent( 0 )
-{
-  myId = generateId();
-
-  if ( parent )
-    parent->insertChild( this );
-}
-
-/*!
-  Destructor
-*/
-QtxResourceEdit::Item::~Item()
-{
-  if ( resourceEdit() )
-    resourceEdit()->removeItem( this );
-}
-
-/*!
-  \return id of item
-*/
-int QtxResourceEdit::Item::id() const
-{
-  return myId;
-}
-
-/*!
-  \return parent item 
-*/
-QtxResourceEdit::Item* QtxResourceEdit::Item::parentItem() const
-{
-  return myParent;
-}
-
-/*!
-  Appends child and (if necessary) removes item from old parent
-  \param item - item to be added
-*/
-void QtxResourceEdit::Item::insertChild( Item* item )
-{
-  if ( !item || myChildren.contains( item ) )
-    return;
-
-  if ( item->parentItem() && item->parentItem() != this )
-    item->parentItem()->removeChild( item );
-
-  item->myParent = this;
-  myChildren.append( item );
-}
-
-/*!
-  Removes child
-  \param item - item to be removed
-*/
-void QtxResourceEdit::Item::removeChild( Item* item )
-{
-  if ( !item || !myChildren.contains( item ) )
-    return;
-
-  myChildren.remove( item );
-  item->myParent = 0;
-}
-
-/*!
-  Fills list with children items
-  \param lst - list to be filled with
-*/
-void QtxResourceEdit::Item::childItems( QPtrList<Item>& lst ) const
-{
-  for ( ItemListIterator it( myChildren ); it.current(); ++it )
-    lst.append( it.current() );
-}
-
-/*!
-  \return true if there is no children of this item
-*/
-bool QtxResourceEdit::Item::isEmpty() const
-{
-  return myChildren.isEmpty();
-}
-
-/*!
-  \return title of item
-*/
-QString QtxResourceEdit::Item::title() const
-{
-  return myTitle;
-}
-
-/*!
-  \return assigned resource placement
-  \param sec - to return section
-  \param param - to return param name
-*/
-void QtxResourceEdit::Item::resource( QString& sec, QString& param ) const
-{
-  sec = myResSection;
-  param = myResParameter;
-}
-
-/*!
-  Sets item title 
-  \param title - new item title
-*/
-void QtxResourceEdit::Item::setTitle( const QString& title )
-{
-  myTitle = title;
-}
-
-/*!
-  Assigns new resource to item
-  \param sec - section
-  \param sec - param name
-*/
-void QtxResourceEdit::Item::setResource( const QString& sec, const QString& param )
-{
-  myResSection = sec;
-  myResParameter = param;
-}
-
-/*!
-  Updates item (default implementation is empty)
-*/
-void QtxResourceEdit::Item::update()
-{
-}
-
-/*!
-  \return property value
-*/
-QVariant QtxResourceEdit::Item::property( const QString& ) const
-{
-  return QVariant();
-}
-
-/*!
-  Sets property value
-*/
-void QtxResourceEdit::Item::setProperty( const QString&, const QVariant& )
-{
-}
-
-/*!
-  \return value of assigned resource
-*/
-QString QtxResourceEdit::Item::resourceValue() const
-{
-  return getString();
-}
-
-/*!
-  Sets value of assigned resource
-  \param val - new value
-*/
-void QtxResourceEdit::Item::setResourceValue( const QString& val )
-{
-  setString( val );
-}
-
-/*!
-  \return corresponding resource manager
-*/
-QtxResourceMgr* QtxResourceEdit::Item::resourceMgr() const
-{
-  QtxResourceMgr* resMgr = 0;
-  if ( resourceEdit() )
-    resMgr = resourceEdit()->resourceMgr();
-  return resMgr;
-}
-
-/*!
-  \return corresponding resource edit
-*/
-QtxResourceEdit* QtxResourceEdit::Item::resourceEdit() const
-{
-  return myEdit;
-}
-
-/*!
-  \return integer value of resource corresponding to item
-  \param val - default value (it is returned if there is no such resource)
-*/
-int QtxResourceEdit::Item::getInteger( const int val ) const
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  return resMgr ? resMgr->integerValue( myResSection, myResParameter, val ) : val;
-}
-
-/*!
-  \return double value of resource corresponding to item
-  \param val - default value (it is returned if there is no such resource)
-*/
-double QtxResourceEdit::Item::getDouble( const double val ) const
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  return resMgr ? resMgr->doubleValue( myResSection, myResParameter, val ) : val;
-}
-
-/*!
-  \return boolean value of resource corresponding to item
-  \param val - default value (it is returned if there is no such resource)
-*/
-bool QtxResourceEdit::Item::getBoolean( const bool val ) const
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  return resMgr ? resMgr->booleanValue( myResSection, myResParameter, val ) : val;
-}
-
-/*!
-  \return string value of resource corresponding to item
-  \param val - default value (it is returned if there is no such resource)
-*/
-QString QtxResourceEdit::Item::getString( const QString& val ) const
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  return resMgr ? resMgr->stringValue( myResSection, myResParameter, val ) : val;
-}
-
-/*!
-  \return color value of resource corresponding to item
-  \param val - default value (it is returned if there is no such resource)
-*/
-QColor QtxResourceEdit::Item::getColor( const QColor& val ) const
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  return resMgr ? resMgr->colorValue( myResSection, myResParameter, val ) : val;
-}
-
-/*!
-  \return font value of resource corresponding to item
-  \param val - default value (it is returned if there is no such resource)
-*/
-QFont QtxResourceEdit::Item::getFont( const QFont& val ) const
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  return resMgr ? resMgr->fontValue( myResSection, myResParameter, val ) : val;
-}
-
-/*!
-  Sets value of resource
-  \param val - value
-*/
-void QtxResourceEdit::Item::setInteger( const int val )
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  if ( resMgr )
-    resMgr->setValue( myResSection, myResParameter, val );
-}
-
-/*!
-  Sets value of resource
-  \param val - value
-*/
-void QtxResourceEdit::Item::setDouble( const double val )
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  if ( resMgr )
-    resMgr->setValue( myResSection, myResParameter, val );
-}
-
-/*!
-  Sets value of resource
-  \param val - value
-*/
-void QtxResourceEdit::Item::setBoolean( const bool val )
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  if ( resMgr )
-    resMgr->setValue( myResSection, myResParameter, val );
-}
-
-/*!
-  Sets value of resource
-  \param val - value
-*/
-void QtxResourceEdit::Item::setString( const QString& val )
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  if ( resMgr )
-    resMgr->setValue( myResSection, myResParameter, val );
-}
-
-/*!
-  Sets value of resource
-  \param val - value
-*/
-void QtxResourceEdit::Item::setColor( const QColor& val )
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  if ( resMgr )
-    resMgr->setValue( myResSection, myResParameter, val );
-}
-
-/*!
-  Sets value of resource
-  \param val - value
-*/
-void QtxResourceEdit::Item::setFont( const QFont& val )
-{
-  QtxResourceMgr* resMgr = resourceMgr();
-  if ( resMgr )
-    resMgr->setValue( myResSection, myResParameter, val );
-}
-
-/*!
-  \return other item
-  \param id - other item id
-*/
-QtxResourceEdit::Item* QtxResourceEdit::Item::item( const int id ) const
-{
-  return resourceEdit() ? resourceEdit()->item( id ) : 0;
-}
-
-/*!
-  \return other item
-  \param title - other item title
-*/
-QtxResourceEdit::Item* QtxResourceEdit::Item::item( const QString& title ) const
-{
-  return resourceEdit() ? resourceEdit()->item( title ) : 0;
-}
-
-/*!
-  \return other item
-  \param title - other item title
-  \param id - parent item id
-*/
-QtxResourceEdit::Item* QtxResourceEdit::Item::item( const QString& title, const int id ) const
-{
-  return resourceEdit() ? resourceEdit()->item( title, id ) : 0;
-}
-
-/*!
-  \return free item id
-*/
-int QtxResourceEdit::Item::generateId()
-{
-  static int _id = 0;
-  return _id++;
-}
diff --git a/src/Qtx/QtxResourceEdit.h b/src/Qtx/QtxResourceEdit.h
deleted file mode 100644 (file)
index fc816fe..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxResourceEdit.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXRESOURCEEDIT_H
-#define QTXRESOURCEEDIT_H
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-#include "Qtx.h"
-
-class QString;
-class QtxResourceMgr;
-
-#include <qcolor.h>
-#include <qvariant.h>
-#include <qfont.h>
-
-/*!
-  \class QtxResourceEdit
-  Class for managing preferences items
-*/
-class QTX_EXPORT QtxResourceEdit
-{
-public:
-  class Item;
-
-public:
-  QtxResourceEdit( QtxResourceMgr* );
-  virtual ~QtxResourceEdit();
-
-  QtxResourceMgr*      resourceMgr() const;
-
-  virtual int          addItem( const QString& label, const int pId = -1, const int = -1,
-                                const QString& section = QString::null,
-                                const QString& param = QString::null );
-
-  QVariant             itemProperty( const int, const QString& ) const;
-  virtual void         setItemProperty( const int, const QString&, const QVariant& );
-
-  void                 resource( const int, QString&, QString& ) const;
-
-  virtual void         store();
-  virtual void         retrieve();
-
-  virtual void         update();
-
-  virtual void         toBackup();
-  virtual void         fromBackup();
-
-protected:
-  Item*                item( const int ) const;
-  Item*                item( const QString& ) const;
-  Item*                item( const QString&, const int ) const;
-
-  virtual Item*        createItem( const QString&, const int ) = 0;
-
-  void                 resourceValues( QMap<int, QString>& ) const;
-  void                 resourceValues( QMap<Item*, QString>& ) const;
-
-  void                 setResourceValues( QMap<int, QString>& ) const;
-  void                 setResourceValues( QMap<Item*, QString>& ) const;
-  
-  void                 differentValues( const QMap<int, QString>&, const QMap<int, QString>&,
-                                        QMap<int, QString>&, const bool fromFirst = false ) const;
-  void                 differentValues( const QMap<Item*, QString>&, const QMap<Item*, QString>&,
-                                        QMap<Item*, QString>&, const bool fromFirst = false ) const;
-
-  virtual void         changedResources( const QMap<Item*, QString>& );
-
-  virtual void         itemAdded( Item* );
-  virtual void         itemRemoved( Item* );
-
-  void                 childItems( QPtrList<Item>& ) const;
-
-private:
-  void                 removeItem( Item* );
-  Item*                createItem( const QString&, const int, const int );
-
-private:
-  typedef QMap<int, Item*> ItemMap;
-
-private:
-  ItemMap              myItems;
-  QtxResourceMgr*      myResMgr;
-  QMap<Item*, QString> myBackup;
-  QPtrList<Item>       myChildren;
-
-  friend class QtxResourceEdit::Item;
-};
-
-/*!
-  \class QtxResourceEditor::Item
-  Class for incapsulation of one preference item
-*/
-
-class QTX_EXPORT QtxResourceEdit::Item
-{
-public:
-  Item( QtxResourceEdit*, Item* = 0 );
-  virtual ~Item();
-
-  int                  id() const;
-  virtual int          type() const = 0;
-
-  Item*                parentItem() const;
-  void                 childItems( QPtrList<Item>& ) const;
-
-  virtual bool         isEmpty() const;
-
-  QString              title() const;
-  void                 resource( QString&, QString& ) const;
-
-  virtual void         setTitle( const QString& );
-  virtual void         setResource( const QString&, const QString& );
-
-  virtual void         update();
-
-  QVariant             property( const QString& ) const;
-  virtual void         setProperty( const QString&, const QVariant& );
-
-  virtual void         store() = 0;
-  virtual void         retrieve() = 0;
-
-  virtual Item*        createItem( const QString&, const int ) = 0;
-
-  QString              resourceValue() const;
-  void                 setResourceValue( const QString& );
-
-  virtual void         insertChild( Item* );
-  virtual void         removeChild( Item* );
-
-protected:
-  QtxResourceMgr*      resourceMgr() const;
-  QtxResourceEdit*     resourceEdit() const;
-
-  int                  getInteger( const int = 0 ) const;
-  double               getDouble( const double = 0.0 ) const;
-  bool                 getBoolean( const bool = false ) const;
-  QColor               getColor( const QColor& = QColor() ) const;
-  QFont                getFont( const QFont& = QFont() ) const;
-  QString              getString( const QString& = QString::null ) const;
-
-  void                 setInteger( const int );
-  void                 setDouble( const double );
-  void                 setBoolean( const bool );
-  void                 setColor( const QColor& );
-  void                 setFont( const QFont& );  
-  void                 setString( const QString& );
-
-  Item*                item( const int ) const;
-  Item*                item( const QString& ) const;
-  Item*                item( const QString&, const int ) const;
-
-protected:
-  typedef QPtrList<Item>         ItemList;
-  typedef QPtrListIterator<Item> ItemListIterator;
-
-private:
-  static int           generateId();
-
-private:
-  int                  myId;
-  Item*                myParent;
-  ItemList             myChildren;
-
-  QString              myTitle;
-  QString              myResSection;
-  QString              myResParameter;
-
-  QtxResourceEdit*     myEdit;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
index 02b3a1c656fb589da663b666a31e1df226875f74..98c534e046d4e75857cc9222f61489b17bac2782 100644 (file)
 //
 #include "QtxResourceMgr.h"
 
-#include <qdir.h>
-#include <qfile.h>
-#include <qregexp.h>
-#include <qpixmap.h>
-#include <qtranslator.h>
-#include <qapplication.h>
+#include <QtCore/qdir.h>
+#include <QtCore/qfile.h>
+#include <QtCore/qregexp.h>
+#include <QtCore/qtextstream.h>
+#include <QtCore/qtranslator.h>
+
+#include <QtGui/qpixmap.h>
+#include <QtGui/qapplication.h>
 
 #ifndef QT_NO_DOM
-#include <qdom.h>
+#include <QtXml/qdom.h>
 #endif
 
+#define EMULATE_GLOBAL_CONTEXT
+
 #include <stdlib.h>
 
 /*!
   Level: Internal
 */
 
+class QtxResourceMgr::Resources
+{
+public:
+  Resources( const QtxResourceMgr*, const QString& );
+  virtual ~Resources();
+
+  QString                file() const;
+  void                   setFile( const QString& );
+
+  QString                value( const QString&, const QString&, const bool ) const;
+  void                   setValue( const QString&, const QString&, const QString& );
+
+  bool                   hasSection( const QString& ) const;
+  bool                   hasValue( const QString&, const QString& ) const;
+
+  void                   removeSection( const QString& );
+  void                   removeValue( const QString&, const QString& );
+
+  QPixmap                loadPixmap( const QString&, const QString&, const QString& ) const;
+  QTranslator*           loadTranslator( const QString&, const QString&, const QString& ) const;
+
+  QString                environmentVariable( const QString&, int&, int& ) const;
+  QString                makeSubstitution( const QString&, const QString&, const QString& ) const;
+
+  void                   clear();
+
+  QStringList            sections() const;
+  QStringList            parameters( const QString& ) const;
+
+  QString                path( const QString&, const QString&, const QString& ) const;
+
+protected:
+  QtxResourceMgr*        resMgr() const;
+
+private:
+  Section                section( const QString& );
+  const Section          section( const QString& ) const;
+
+  QString                fileName( const QString&, const QString&, const QString& ) const;
+
+private:
+  typedef QMap<QString, Section> SectionMap;
+
+private:
+  QtxResourceMgr*        myMgr;
+  SectionMap             mySections;
+  QString                myFileName;
+  QMap<QString,QPixmap>  myPixmapCache;
+
+  friend class QtxResourceMgr::Format;
+};
+
 QtxResourceMgr::Resources::Resources( const QtxResourceMgr* mgr, const QString& fileName )
 : myFileName( fileName ),
   myMgr( const_cast<QtxResourceMgr*>( mgr ) )
@@ -99,8 +155,10 @@ QString QtxResourceMgr::Resources::value( const QString& sect, const QString& na
 */
 void QtxResourceMgr::Resources::setValue( const QString& sect, const QString& name, const QString& val )
 {
-  Section& s = section( sect );
-  s.insert( name, val );
+  if ( !mySections.contains( sect ) )
+    mySections.insert( sect, Section() );
+
+  mySections[sect].insert( name, val );
 }
 
 /*!
@@ -138,13 +196,12 @@ void QtxResourceMgr::Resources::removeSection( const QString& sect )
 */
 void QtxResourceMgr::Resources::removeValue( const QString& sect, const QString& name )
 {
-  if ( !hasSection( sect ) )
+  if ( !mySections.contains( sect ) )
     return;
 
-  Section& s = section( sect );
-  s.remove( name );
+  mySections[sect].remove( name );
 
-  if ( s.isEmpty() )
+  if ( mySections[sect].isEmpty() )
     mySections.remove( sect );
 }
 
@@ -205,7 +262,7 @@ QtxResourceMgr* QtxResourceMgr::Resources::resMgr() const
 /*!
   \return instance of section by it's name. Section will be created if it doesn't exist
 */
-QtxResourceMgr::Section& QtxResourceMgr::Resources::section( const QString& sn )
+QtxResourceMgr::Section QtxResourceMgr::Resources::section( const QString& sn )
 {
   if ( !mySections.contains( sn ) )
     mySections.insert( sn, Section() );
@@ -216,7 +273,7 @@ QtxResourceMgr::Section& QtxResourceMgr::Resources::section( const QString& sn )
 /*!
   \return instance of section by it's name. Section will be created if it doesn't exist
 */
-const QtxResourceMgr::Section& QtxResourceMgr::Resources::section( const QString& sn ) const
+const QtxResourceMgr::Section QtxResourceMgr::Resources::section( const QString& sn ) const
 {
   return mySections[sn];
 }
@@ -236,7 +293,7 @@ QString QtxResourceMgr::Resources::fileName( const QString& sect, const QString&
     if ( !path.isEmpty() )
     {
       if ( QFileInfo( path ).isRelative() )
-        path = Qtx::addSlash( QFileInfo( myFileName ).dirPath( true ) ) + path;
+        path = Qtx::addSlash( Qtx::dir( myFileName, true ) ) + path;
 
       path = Qtx::addSlash( path ) + name;
     }
@@ -245,7 +302,7 @@ QString QtxResourceMgr::Resources::fileName( const QString& sect, const QString&
   {
     QString fname = QDir::convertSeparators( path );
     QFileInfo inf( fname );
-    fname = inf.absFilePath();
+    fname = inf.absoluteFilePath();
     return fname;
   }
   return QString();
@@ -282,7 +339,46 @@ QPixmap QtxResourceMgr::Resources::loadPixmap( const QString& sect, const QStrin
 QTranslator* QtxResourceMgr::Resources::loadTranslator( const QString& sect, const QString& prefix, const QString& name ) const
 {
   QTranslator* trans = new QTranslator( 0 );
-  if ( !trans->load( fileName( sect, prefix, name ) ) )
+  QString fname = fileName( sect, prefix, name );
+#ifdef EMULATE_GLOBAL_CONTEXT
+  char* buf = 0;
+  QFile file( fname );
+  int len = file.size();
+  if ( len )
+  {
+    buf = new char[len];
+    if ( !file.open( QIODevice::ReadOnly ) || len != (uint)file.read( buf, len ) )
+    {
+      delete buf;
+      buf = 0;
+    }
+    file.close();
+  }
+  if ( buf )
+  {
+    char* pattern = "@default";
+    size_t pl = strlen( pattern );
+    for ( size_t i = 0; i < len - pl; i++ )
+    {
+      char* cur = buf + i;
+      if ( !strncmp( cur, pattern, pl ) )
+      {
+        *cur = '\0';
+        i += pl - 1;
+      }
+    }
+
+    if ( !trans->load( (uchar*)buf, len ) )
+    {
+      delete buf;
+      buf = 0;
+    }
+  }
+
+  if ( !buf )
+#else
+  if ( !trans->load( Qtx::file( fname, false ), Qtx::dir( fname ) ) )
+#endif
   {
     delete trans;
     trans = 0;
@@ -304,14 +400,14 @@ QString QtxResourceMgr::Resources::environmentVariable( const QString& str, int&
 
   QRegExp rx( "\\$\\{([a-zA-Z]+[a-zA-Z0-9_]*)\\}|\\$\\(([a-zA-Z]+[a-zA-Z0-9_]*)\\)|\\$([a-zA-Z]+[a-zA-Z0-9_]*)|\\%([a-zA-Z]+[a-zA-Z0-9_]*)\\%" );
 
-  int pos = rx.search( str, start );
+  int pos = rx.indexIn( str, start );
   if ( pos != -1 )
   {
     start = pos;
     len = rx.matchedLength();
     QStringList caps = rx.capturedTexts();
     for ( uint i = 1; i <= caps.count() && varName.isEmpty(); i++ )
-      varName = *caps.at( i );
+      varName = caps[i];
   }
   return varName;
 }
@@ -339,9 +435,9 @@ QString QtxResourceMgr::Resources::makeSubstitution( const QString& str, const Q
     if ( envName.isNull() )
       break;
 
-    QString newStr = QString::null;
-    if ( ::getenv( envName ) )
-      newStr = QString( ::getenv( envName ) );
+    QString newStr;
+    if ( ::getenv( envName.toLatin1() ) )
+      newStr = QString( ::getenv( envName.toLatin1() ) );
 
     if ( newStr.isNull() )
     {
@@ -399,7 +495,7 @@ QtxResourceMgr::IniFormat::~IniFormat()
 bool QtxResourceMgr::IniFormat::load( const QString& fname, QMap<QString, Section>& secMap )
 {
   QFile file( fname );
-  if ( !file.open( IO_ReadOnly ) )
+  if ( !file.open( QFile::ReadOnly ) )
     return false;
 
   QTextStream ts( &file );
@@ -425,7 +521,7 @@ bool QtxResourceMgr::IniFormat::load( const QString& fname, QMap<QString, Sectio
     if ( data.isNull() )
       break;
 
-    data = data.stripWhiteSpace();
+    data = data.trimmed();
     if ( data.isEmpty() )
       continue;
 
@@ -433,27 +529,26 @@ bool QtxResourceMgr::IniFormat::load( const QString& fname, QMap<QString, Sectio
       continue;
 
     QRegExp rx( "^\\[([\\w\\s\\._]*)\\]$" );
-    if ( rx.search( data ) != -1 )
+    if ( rx.indexIn( data ) != -1 )
     {
       section = rx.cap( 1 );
       if ( section.isEmpty() )
       {
         res = false;
-        qWarning( QString( "Empty section in line %1" ).arg( line ) );
+        qWarning( "Empty section in line %d", line );
       }
     }
     else if ( data.contains( "=" ) && !section.isEmpty() )
     {
-      int pos = data.find( separator );
-      QString key = data.left( pos ).stripWhiteSpace();
-      QString val = data.mid( pos + 1 ).stripWhiteSpace();
+      int pos = data.indexOf( separator );
+      QString key = data.left( pos ).trimmed();
+      QString val = data.mid( pos + 1 ).trimmed();
       secMap[section].insert( key, val );
     }
     else
     {
       res = false;
-      section.isEmpty() ? qWarning( "Current section is empty" ) :
-                          qWarning( QString( "Error in line: %1" ).arg( line ) );
+      section.isEmpty() ? qWarning( "Current section is empty" ) : qWarning( "Error in line: %d", line );
     }
   }
 
@@ -470,18 +565,21 @@ bool QtxResourceMgr::IniFormat::load( const QString& fname, QMap<QString, Sectio
 bool QtxResourceMgr::IniFormat::save( const QString& fname, const QMap<QString, Section>& secMap )
 {
   QFile file( fname );
-  if ( !file.open( IO_WriteOnly ) )
+  if ( !file.open( QFile::WriteOnly ) )
     return false;
 
+  QTextStream ts( &file );
+
   bool res = true;
   for ( QMap<QString, Section>::ConstIterator it = secMap.begin(); it != secMap.end() && res; ++it )
   {
-    QString data = QString( "[%1]\n" ).arg( it.key() );
-    for ( Section::ConstIterator iter = it.data().begin(); iter != it.data().end(); ++iter )
-      data += iter.key() + " = " + iter.data() + "\n";
-    data += "\n";
+    QStringList data( QString( "[%1]" ).arg( it.key() ) );
+    for ( Section::ConstIterator iter = it.value().begin(); iter != it.value().end(); ++iter )
+      data.append( iter.key() + " = " + iter.value() );
+    data.append( "" );
 
-    res = file.writeBlock( data.latin1(), data.length() ) == (int)data.length();
+    for ( QStringList::const_iterator itr = data.begin(); itr != data.end(); ++itr )
+      ts << *itr << endl;
   }
 
   file.close();
@@ -539,7 +637,7 @@ bool QtxResourceMgr::XmlFormat::load( const QString& fname, QMap<QString, Sectio
 #ifndef QT_NO_DOM
 
   QFile file( fname );
-  if ( !file.open( IO_ReadOnly ) )
+  if ( !file.open( QFile::ReadOnly ) )
   {
     qDebug( "File cannot be opened" );
     return false;
@@ -622,8 +720,8 @@ bool QtxResourceMgr::XmlFormat::load( const QString& fname, QMap<QString, Sectio
 
 #endif
 
-  if( res )
-    qDebug( QString( "File '%1' is loaded successfully" ).arg( fname ) );
+  if ( res )
+    qDebug( "File '%s' is loaded successfully", (const char*)fname.toLatin1() );
   return res;
 }
 
@@ -639,7 +737,7 @@ bool QtxResourceMgr::XmlFormat::save( const QString& fname, const QMap<QString,
 #ifndef QT_NO_DOM
 
   QFile file( fname );
-  if ( !file.open( IO_WriteOnly ) )
+  if ( !file.open( QFile::WriteOnly ) )
     return false;
 
   QDomDocument doc( docTag() );
@@ -651,17 +749,20 @@ bool QtxResourceMgr::XmlFormat::save( const QString& fname, const QMap<QString,
     QDomElement sect = doc.createElement( sectionTag() );
     sect.setAttribute( nameAttribute(), it.key() );
     root.appendChild( sect );
-    for ( Section::ConstIterator iter = it.data().begin(); iter != it.data().end(); ++iter )
+    for ( Section::ConstIterator iter = it.value().begin(); iter != it.value().end(); ++iter )
     {
       QDomElement val = doc.createElement( parameterTag() );
       val.setAttribute( nameAttribute(), iter.key() );
-      val.setAttribute( valueAttribute(), iter.data() );
+      val.setAttribute( valueAttribute(), iter.value() );
       sect.appendChild( val );
     }
   }
 
-  QString docStr = doc.toString();
-  res = file.writeBlock( docStr.latin1(), docStr.length() ) == (int)docStr.length();
+  QTextStream ts( &file );
+  QStringList docStr = doc.toString().split( "\n" );
+  for ( QStringList::const_iterator itr = docStr.begin(); itr != docStr.end(); ++itr )
+    ts << *itr << endl;
+
   file.close();
 
 #endif
@@ -798,7 +899,7 @@ bool QtxResourceMgr::Format::load( Resources* res )
   if ( status )
     res->mySections = sections;
   else
-    qDebug( "QtxResourceMgr: Could not load resource file \"%s\"", res->myFileName.latin1() );
+    qDebug( "QtxResourceMgr: Could not load resource file \"%s\"", (const char*)res->myFileName.toLatin1() );
 
   return status;
 }
@@ -856,14 +957,14 @@ QtxResourceMgr::QtxResourceMgr( const QString& appName, const QString& resVarTem
     envVar = envVar.arg( appName );
 
   QString dirs;
-  if ( ::getenv( envVar ) )
-    dirs = ::getenv( envVar );
+  if ( ::getenv( envVar.toLatin1() ) )
+    dirs = ::getenv( envVar.toLatin1() );
 #ifdef WIN32
   QString dirsep = ";";      // for Windows: ";" is used as directories separator
 #else
   QString dirsep = "[:|;]";  // for Linux: both ":" and ";" can be used
 #endif
-  setDirList( QStringList::split( QRegExp(dirsep), dirs ) );
+  setDirList( dirs.split( QRegExp( dirsep ), QString::SkipEmptyParts ) );
 
   installFormat( new XmlFormat() );
   installFormat( new IniFormat() );
@@ -879,11 +980,11 @@ QtxResourceMgr::~QtxResourceMgr()
   QStringList prefList = myTranslator.keys();
   for ( QStringList::const_iterator it = prefList.begin(); it != prefList.end(); ++it )
     removeTranslators( *it );
-  for ( ResListIterator resIt( myResources ); resIt.current(); ++resIt )
-    delete resIt.current();
+  for ( ResList::iterator resIt = myResources.begin(); resIt != myResources.end(); ++resIt )
+    delete *resIt;
   myResources.clear();
-  for ( FormatListIterator formIt( myFormats ); formIt.current(); ++formIt )
-    delete formIt.current();
+  for ( FormatList::iterator formIt = myFormats.begin(); formIt != myFormats.end(); ++formIt )
+    delete *formIt;
 }
 
 /*!
@@ -967,8 +1068,8 @@ void QtxResourceMgr::setIsPixmapCached( const bool on )
 */
 void QtxResourceMgr::clear()
 {
-  for ( ResListIterator it( myResources ); it.current(); ++it )
-    it.current()->clear();
+  for ( ResList::iterator it = myResources.begin(); it != myResources.end(); ++it )
+    (*it)->clear();
 }
 
 /*!
@@ -1046,7 +1147,7 @@ bool QtxResourceMgr::value( const QString& sect, const QString& name, bool& bVal
     boolMap["false"] = boolMap["no"]  = boolMap["off"] = false;
   }
 
-  val = val.lower();
+  val = val.toLower();
   bool res = boolMap.contains( val );
   if ( res )
     bVal = boolMap[val];
@@ -1074,7 +1175,7 @@ bool QtxResourceMgr::value( const QString& sect, const QString& name, QColor& cV
     return false;
 
   bool res = true;
-  QStringList vals = QStringList::split( ",", val, true );
+  QStringList vals = val.split( "," );
 
   QIntList nums;
   for ( QStringList::const_iterator it = vals.begin(); it != vals.end() && res; ++it )
@@ -1086,7 +1187,7 @@ bool QtxResourceMgr::value( const QString& sect, const QString& name, QColor& cV
   {
     int pack = val.toInt( &res );
     if ( res )
-      Qtx::rgbSet( pack, cVal );
+      cVal = Qtx::rgbSet( pack );
   }
 
   return res;
@@ -1105,7 +1206,7 @@ bool QtxResourceMgr::value( const QString& sect, const QString& name, QFont& fVa
   if ( !value( sect, name, val, true ) )
     return false;
 
-  QStringList fontDescr = QStringList::split( ",", val );
+  QStringList fontDescr = val.split( ",", QString::SkipEmptyParts );
 
   if ( fontDescr.count() < 2 )
     return false;
@@ -1118,7 +1219,7 @@ bool QtxResourceMgr::value( const QString& sect, const QString& name, QFont& fVa
 
   for ( int i = 1; i < (int)fontDescr.count(); i++ )
   {
-    QString curval = fontDescr[i].stripWhiteSpace().lower();
+    QString curval = fontDescr[i].trimmed().toLower();
     if ( curval == QString( "bold" ) )
       fVal.setBold( true );
     else if ( curval == QString( "italic" ) )
@@ -1153,15 +1254,15 @@ bool QtxResourceMgr::value( const QString& sect, const QString& name, QString& v
 
   bool ok = false;
  
-  ResListIterator it( myResources );
+  ResList::const_iterator it = myResources.begin();
   if ( ignoreUserValues() )
     ++it;
 
-  for ( ; it.current() && !ok; ++it )
+  for ( ; it != myResources.end() && !ok; ++it )
   {
-    ok = it.current()->hasValue( sect, name );
+    ok = (*it)->hasValue( sect, name );
     if ( ok )
-      val = it.current()->value( sect, name, subst );
+      val = (*it)->value( sect, name, subst );
   }
 
   return ok;
@@ -1267,8 +1368,8 @@ bool QtxResourceMgr::hasValue( const QString& sect, const QString& name ) const
   initialize();
 
   bool ok = false;
-  for ( ResListIterator it( myResources ); it.current() && !ok; ++it )
-    ok = it.current()->hasValue( sect, name );
+  for ( ResList::const_iterator it = myResources.begin(); it != myResources.end() && !ok; ++it )
+    ok = (*it)->hasValue( sect, name );
 
   return ok;
 }
@@ -1282,8 +1383,8 @@ bool QtxResourceMgr::hasSection( const QString& sect ) const
   initialize();
 
   bool ok = false;
-  for ( ResListIterator it( myResources ); it.current() && !ok; ++it )
-    ok = it.current()->hasSection( sect );
+  for ( ResList::const_iterator it = myResources.begin(); it != myResources.end() && !ok; ++it )
+    ok = (*it)->hasSection( sect );
 
   return ok;
 }
@@ -1396,8 +1497,8 @@ void QtxResourceMgr::remove( const QString& sect )
 {
   initialize();
 
-  for ( ResListIterator it( myResources ); it.current(); ++it )
-    it.current()->removeSection( sect );
+  for ( ResList::iterator it = myResources.begin(); it != myResources.end(); ++it )
+    (*it)->removeSection( sect );
 }
 
 /*!
@@ -1409,8 +1510,8 @@ void QtxResourceMgr::remove( const QString& sect, const QString& name )
 {
   initialize();
 
-  for ( ResListIterator it( myResources ); it.current(); ++it )
-    it.current()->removeValue( sect, name );
+  for ( ResList::iterator it = myResources.begin(); it != myResources.end(); ++it )
+    (*it)->removeValue( sect, name );
 }
 
 /*!
@@ -1420,7 +1521,7 @@ QString QtxResourceMgr::currentFormat() const
 {
   QString fmt;
   if ( !myFormats.isEmpty() )
-    fmt = myFormats.getFirst()->format();
+    fmt = myFormats[0]->format();
   return fmt;
 }
 
@@ -1434,20 +1535,21 @@ void QtxResourceMgr::setCurrentFormat( const QString& fmt )
   if ( !form )
     return;
 
-  myFormats.remove( form );
+  myFormats.removeAll( form );
   myFormats.prepend( form );
 
   if ( myResources.isEmpty() )
     return;
 
-  ResListIterator resIt( myResources );
-  if ( myResources.count() > myDirList.count() && resIt.current() ) {
-    resIt.current()->setFile( userFileName( appName() ) );
+  ResList::iterator resIt = myResources.begin();
+  if ( myResources.count() > myDirList.count() && resIt != myResources.end() )
+  {
+    (*resIt)->setFile( userFileName( appName() ) );
     ++resIt;
   }
 
-  for ( QStringList::const_iterator it = myDirList.begin(); it != myDirList.end() && resIt.current(); ++it, ++resIt )
-    resIt.current()->setFile( Qtx::addSlash( *it ) + globalFileName( appName() ) );
+  for ( QStringList::const_iterator it = myDirList.begin(); it != myDirList.end() && resIt != myResources.end(); ++it, ++resIt )
+    (*resIt)->setFile( Qtx::addSlash( *it ) + globalFileName( appName() ) );
 }
 
 /*!
@@ -1457,10 +1559,10 @@ void QtxResourceMgr::setCurrentFormat( const QString& fmt )
 QtxResourceMgr::Format* QtxResourceMgr::format( const QString& fmt ) const
 {
   Format* form = 0;
-  for ( FormatListIterator it( myFormats ); it.current() && !form; ++it )
+  for ( FormatList::const_iterator it = myFormats.begin(); it != myFormats.end() && !form; ++it )
   {
-    if ( it.current()->format() == fmt )
-      form = it.current();
+    if ( (*it)->format() == fmt )
+      form = *it;
   }
 
   return form;
@@ -1482,7 +1584,7 @@ void QtxResourceMgr::installFormat( QtxResourceMgr::Format* form )
 */
 void QtxResourceMgr::removeFormat( QtxResourceMgr::Format* form )
 {
-  myFormats.remove( form );
+  myFormats.removeAll( form );
 }
 
 /*!
@@ -1528,8 +1630,8 @@ bool QtxResourceMgr::load()
     return false;
 
   bool res = true;
-  for ( ResListIterator it( myResources ); it.current(); ++it )
-    res = fmt->load( it.current() ) && res;
+  for ( ResList::iterator it = myResources.begin(); it != myResources.end(); ++it )
+    res = fmt->load( *it ) && res;
 
   return res;
 }
@@ -1543,8 +1645,8 @@ bool QtxResourceMgr::import( const QString& fname )
   if ( !fmt )
     return false;
 
-  Resources* r = myResources.getFirst();
-  if( !r )
+  Resources* r = myResources[0];
+  if ( !r )
     return false;
 
   QString old = r->file();
@@ -1568,7 +1670,7 @@ bool QtxResourceMgr::save()
   if ( myResources.isEmpty() )
     return true;
 
-  return fmt->save( myResources.getFirst() );
+  return fmt->save( myResources[0] );
 }
 
 /*!
@@ -1579,9 +1681,9 @@ QStringList QtxResourceMgr::sections() const
   initialize();
 
   QMap<QString, int> map;
-  for ( ResListIterator it( myResources ); it.current(); ++it )
+  for ( ResList::const_iterator it = myResources.begin(); it != myResources.end(); ++it )
   {
-    QStringList lst = it.current()->sections();
+    QStringList lst = (*it)->sections();
     for ( QStringList::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
       map.insert( *itr, 0 );
   }
@@ -1607,10 +1709,13 @@ QStringList QtxResourceMgr::parameters( const QString& sec ) const
   typedef IMap<QString, int> PMap;
 #endif
   PMap pmap;
-  ResListIterator it( myResources );
-  it.toLast();
-  for ( ; it.current(); --it ) {
-    QStringList lst = it.current()->parameters( sec );
+  ResList lst;
+  for ( ResList::const_iterator itr = myResources.begin(); itr != myResources.end(); ++itr )
+    lst.prepend( *itr );
+  
+  for ( ResList::const_iterator it = lst.begin(); it != lst.end(); ++it )
+  {
+    QStringList lst = (*it)->parameters( sec );
     for ( QStringList::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
       pmap.insert( *itr, 0, false );
   }
@@ -1632,8 +1737,8 @@ QStringList QtxResourceMgr::parameters( const QString& sec ) const
 QString QtxResourceMgr::path( const QString& sect, const QString& prefix, const QString& name ) const
 {
   QString res;
-  for ( ResListIterator it( myResources ); it.current() && res.isEmpty(); ++it )
-    res = it.current()->path( sect, prefix, name );
+  for ( ResList::const_iterator it = myResources.begin(); it != myResources.end() && res.isEmpty(); ++it )
+    res = (*it)->path( sect, prefix, name );
   return res;
 }
 
@@ -1713,8 +1818,8 @@ QPixmap QtxResourceMgr::loadPixmap( const QString& prefix, const QString& name,
   initialize();
 
   QPixmap pix;
-  for ( ResListIterator it( myResources ); it.current() && pix.isNull(); ++it )
-    pix = it.current()->loadPixmap( resSection(), prefix, name );
+  for ( ResList::const_iterator it = myResources.begin(); it != myResources.end() && pix.isNull(); ++it )
+    pix = (*it)->loadPixmap( resSection(), prefix, name );
   if ( pix.isNull() )
     pix = defPix;
   return pix;
@@ -1750,7 +1855,7 @@ void QtxResourceMgr::loadLanguage( const QString& pref, const QString& l )
   if ( lang.isEmpty() )
   {
     lang = QString( "en" );
-    qWarning( QString( "Language not specified. Assumed: %1" ).arg( lang ) );
+    qWarning( "Language not specified. Assumed: %s", (const char*)lang.toLatin1() );
   }
 
   substMap.insert( 'L', lang );
@@ -1758,19 +1863,21 @@ void QtxResourceMgr::loadLanguage( const QString& pref, const QString& l )
   QString trs;
   if ( value( langSection(), "translators", trs, false ) && !trs.isEmpty() )
   {
-    QStringList translators    = QStringList::split( "|", option( "translators" ) );
-    QStringList newTranslators = QStringList::split( "|", trs );
+    QStringList translators    = option( "translators" ).split( "|", QString::SkipEmptyParts );
+    QStringList newTranslators = trs.split( "|", QString::SkipEmptyParts );
     for ( uint i = 0; i < newTranslators.count(); i++ )
-      if ( translators.find( newTranslators[i] ) == translators.end() )
+    {
+      if ( translators.indexOf( newTranslators[i] ) < 0 )
         translators += newTranslators[i];
+    }
     setOption( "translators", translators.join( "|" ) );
   }
 
-  QStringList trList = QStringList::split( "|", option( "translators" ) );
+  QStringList trList = option( "translators" ).split( "|", QString::SkipEmptyParts );
   if ( trList.isEmpty() )
   {
     trList.append( "%P_msg_%L.qm" );
-    qWarning( QString( "Translators not defined. Assumed: %1" ).arg( trList.first() ) );
+    qWarning( "Translators not defined. Assumed: %s", (const char*)trList[0].toLatin1() );
   }
 
   QStringList prefixList;
@@ -1786,7 +1893,7 @@ void QtxResourceMgr::loadLanguage( const QString& pref, const QString& l )
 
     QStringList trs;
     for ( QStringList::const_iterator it = trList.begin(); it != trList.end(); ++it )
-      trs.append( substMacro( *it, substMap ).stripWhiteSpace() );
+      trs.append( substMacro( *it, substMap ).trimmed() );
 
     loadTranslators( prefix, trs );
   }
@@ -1802,19 +1909,22 @@ void QtxResourceMgr::loadTranslators( const QString& prefix, const QStringList&
 {
   initialize();
 
+  ResList lst;
+  for ( ResList::iterator iter = myResources.begin(); iter != myResources.end(); ++iter )
+    lst.prepend( *iter );
+
   QTranslator* trans = 0;
-  ResListIterator it( myResources );
-  it.toLast();
-  for ( ; it.current(); --it )
+  
+  for ( ResList::iterator it = lst.begin(); it != lst.end(); ++it )
   {
     for ( QStringList::const_iterator itr = translators.begin(); itr != translators.end(); ++itr )
     {
-      trans = it.current()->loadTranslator( resSection(), prefix, *itr );
+      trans = (*it)->loadTranslator( resSection(), prefix, *itr );
       if ( trans )
       {
         if ( !myTranslator[prefix].contains( trans ) )
           myTranslator[prefix].append( trans );
-        qApp->installTranslator( trans );
+        QApplication::instance()->installTranslator( trans );
       }
     }
   }
@@ -1831,16 +1941,15 @@ void QtxResourceMgr::loadTranslator( const QString& prefix, const QString& name
   initialize();
 
   QTranslator* trans = 0;
-  ResListIterator it( myResources );
-  it.toLast();
-  for ( ; it.current(); --it )
+  ResList::iterator it = myResources.end();
+  for ( ; it != myResources.begin(); --it )
   {
-    trans = it.current()->loadTranslator( resSection(), prefix, name );
+    trans = (*it)->loadTranslator( resSection(), prefix, name );
     if ( trans )
     {
       if ( !myTranslator[prefix].contains( trans ) )
         myTranslator[prefix].append( trans );
-      qApp->installTranslator( trans );
+      QApplication::instance()->installTranslator( trans );
     }
   }
 }
@@ -1855,10 +1964,10 @@ void QtxResourceMgr::removeTranslators( const QString& prefix )
   if ( !myTranslator.contains( prefix ) )
     return;
 
-  for ( TransListIterator it( myTranslator[prefix] ); it.current(); ++it )
+  for ( TransList::iterator it = myTranslator[prefix].begin(); it != myTranslator[prefix].end(); ++it )
   {
-    qApp->removeTranslator( it.current() );
-    delete it.current();
+    QApplication::instance()->removeTranslator( *it );
+    delete *it;
   }
 
   myTranslator.remove( prefix );
@@ -1874,10 +1983,10 @@ void QtxResourceMgr::raiseTranslators( const QString& prefix )
   if ( !myTranslator.contains( prefix ) )
     return;
 
-  for ( TransListIterator it( myTranslator[prefix] ); it.current(); ++it )
+  for ( TransList::iterator it = myTranslator[prefix].begin(); it != myTranslator[prefix].end(); ++it )
   {
-    qApp->removeTranslator( it.current() );
-    qApp->installTranslator( it.current() );
+    QApplication::instance()->removeTranslator( *it );
+    QApplication::instance()->installTranslator( *it );
   }
 }
 
@@ -1901,8 +2010,8 @@ void QtxResourceMgr::refresh()
 void QtxResourceMgr::setDirList( const QStringList& dl )
 {
   myDirList = dl;
-  for ( ResListIterator it( myResources ); it.current(); ++it )
-    delete it.current();
+  for ( ResList::iterator it = myResources.begin(); it != myResources.end(); ++it )
+    delete *it;
 
   myResources.clear();
 }
@@ -1930,7 +2039,7 @@ void QtxResourceMgr::setResource( const QString& sect, const QString& name, cons
 QString QtxResourceMgr::userFileName( const QString& appName, const bool /*for_load*/ ) const
 {
   QString fileName;
-  QString pathName = QDir::homeDirPath();
+  QString pathName = QDir::homePath();
 
 #ifdef WIN32
   fileName = QString( "%1.%2" ).arg( appName ).arg( currentFormat() );
@@ -1965,7 +2074,7 @@ QString QtxResourceMgr::substMacro( const QString& src, const QMap<QChar, QStrin
   QRegExp rx( "%[A-Za-z%]" );
 
   int idx = 0;
-  while ( ( idx = rx.search( trg, idx ) ) >= 0 )
+  while ( ( idx = rx.indexIn( trg, idx ) ) >= 0 )
   {
     QChar spec = trg.at( idx + 1 );
     QString subst;
index ff72dd3c2ba1a3a4dd0763f748566a3bd1e24342..1c9780f32fdbed97ae02672e593290074d574d6d 100644 (file)
 
 #include "Qtx.h"
 
-#include <qmap.h>
-#include <qcolor.h>
-#include <qfont.h>
-#include <qpixmap.h>
-#include <qstringlist.h>
-#include <qtranslator.h>
-#include <qvaluelist.h>
+#include <QtCore/qmap.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qstringlist.h>
+#include <QtCore/qtranslator.h>
+
+#include <QtGui/qcolor.h>
+#include <QtGui/qfont.h>
+#include <QtGui/qpixmap.h>
 
 class QPixmap;
 
@@ -153,15 +154,11 @@ private:
   QString         substMacro( const QString&, const QMap<QChar, QString>& ) const;
 
 private:
-  typedef QPtrList<Resources>           ResList;
-  typedef QPtrList<Format>              FormatList;
-  typedef QMap<QString, QString>        OptionsMap;
-  typedef QPtrListIterator<Resources>   ResListIterator;
-  typedef QPtrListIterator<Format>      FormatListIterator;
-
-  typedef QPtrList<QTranslator>         TransList;
-  typedef QMap<QString, TransList>      TransListMap;
-  typedef QPtrListIterator<QTranslator> TransListIterator;
+  typedef QList<Resources*>        ResList;
+  typedef QList<QTranslator*>      TransList;
+  typedef QList<Format*>           FormatList;
+  typedef QMap<QString, QString>   OptionsMap;
+  typedef QMap<QString, TransList> TransListMap;
 
 private:
   QString         myAppName;
@@ -207,62 +204,6 @@ private:
   QMap<QString, QString> myOpt;
 };
 
-/*!
-  Class: QtxResourceMgr::Resources
-*/
-
-class QtxResourceMgr::Resources
-{
-public:
-  Resources( const QtxResourceMgr*, const QString& );
-  virtual ~Resources();
-
-  QString                file() const;
-  void                   setFile( const QString& );
-
-  QString                value( const QString&, const QString&, const bool ) const;
-  void                   setValue( const QString&, const QString&, const QString& );
-
-  bool                   hasSection( const QString& ) const;
-  bool                   hasValue( const QString&, const QString& ) const;
-
-  void                   removeSection( const QString& );
-  void                   removeValue( const QString&, const QString& );
-
-  QPixmap                loadPixmap( const QString&, const QString&, const QString& ) const;
-  QTranslator*           loadTranslator( const QString&, const QString&, const QString& ) const;
-
-  QString                environmentVariable( const QString&, int&, int& ) const;
-  QString                makeSubstitution( const QString&, const QString&, const QString& ) const;
-
-  void                   clear();
-
-  QStringList            sections() const;
-  QStringList            parameters( const QString& ) const;
-
-  QString                path( const QString&, const QString&, const QString& ) const;
-
-protected:
-  QtxResourceMgr*        resMgr() const;
-
-private:
-  Section&               section( const QString& );
-  const Section&         section( const QString& ) const;
-
-  QString                fileName( const QString&, const QString&, const QString& ) const;
-
-private:
-  typedef QMap<QString, Section> SectionMap;
-
-private:
-  SectionMap             mySections;
-  QString                myFileName;
-  QMap<QString,QPixmap>  myPixmapCache;
-  QtxResourceMgr*        myMgr;
-
-  friend class QtxResourceMgr::Format;
-};
-
 /*!
   Class: QtxResourceMgr::IMapIterator
 */
@@ -280,10 +221,10 @@ public:
   operator bool() const { return myIndex >= 0; }
 
   const Key&   key() const  { return myMap->key( myIndex );   }
-  Value&       data()       { return myMap->value( myIndex ); }
-  const Value& data() const { return myMap->value( myIndex ); }
+  Value&       value()       { return myMap->value( myIndex ); }
+  const Value& value() const { return myMap->value( myIndex ); }
 
-  Value& operator*() { return data(); }
+  Value& operator*() { return value(); }
 
   IMapIterator& operator++()      { myIndex++; init(); return *this;                     }
   IMapIterator  operator++( int ) { IMapIterator i = *this; myIndex++; init(); return i; }
@@ -320,10 +261,10 @@ public:
   operator bool() const { return myIndex >= 0; }
   
   const Key&   key() const  { return myMap->key( myIndex );   }
-  const Value& data() const { return myMap->value( myIndex ); }
-  
-  const Value& operator*() const { return data(); }
+  const Value value() const { return myMap->value( myIndex ); }
   
+  const Value operator*() const { return value(); }
+
   IMapConstIterator& operator++()      { myIndex++; init(); return *this;                          }
   IMapConstIterator  operator++( int ) { IMapConstIterator i = *this; myIndex++; init(); return i; }
   IMapConstIterator& operator--()      { myIndex--; init(); return *this;                          }
@@ -362,9 +303,9 @@ public:
   
   void clear() { myKeys.clear(); myData.clear(); }
   
-  QValueList<Key>   keys()   const { return myKeys; }
-  QValueList<Value> values() const { QValueList<Value> l; for ( int i = 0; i < count(); i++ ) l.append( value( i ) ); return l; }
-  bool              contains ( const Key& key ) const { return myData.contains( key ); }
+  QList<Key>   keys()   const { return myKeys; }
+  QList<Value> values() const { QList<Value> l; for ( int i = 0; i < count(); i++ ) l.append( value( i ) ); return l; }
+  bool         contains ( const Key& key ) const { return myData.contains( key ); }
   
   Iterator      begin()       { return Iterator( this );               }
   Iterator      end()         { return Iterator( this, count() );      }
@@ -376,7 +317,7 @@ public:
     if ( myData.find( key ) == myData.end() || overwrite )
     {
       if ( myData.find( key ) != myData.end() && overwrite )
-        myKeys.remove( myKeys.find( key ) );
+        myKeys.removeAt( myKeys.indexOf( key ) );
       myKeys.append( key );
       myData[key] = value;
     }
@@ -391,7 +332,7 @@ public:
     return Iterator( this, index( key ) );
   }
 
-  int           index( const Key& key ) const { return myKeys.findIndex( key );      }
+  int           index( const Key& key ) const { return myKeys.indexOf( key );      }
   Iterator      at( const int index )         { return Iterator( this, index );      }
   ConstIterator at( const int index ) const   { return ConstIterator( this, index ); }
 
@@ -402,25 +343,25 @@ public:
     return myKeys[index];
   }
 
-  Value& value( const int index )
+  Value value( const int index )
   {
     if ( index < 0 || index >= (int)myKeys.count() ) 
       return dummyValue;
     return myData[ myKeys[index] ];
   }
 
-  Value& operator[]( const Key& key )
+  Value operator[]( const Key& key )
   {
     if ( myData.find( key ) == myData.end() )
       insert( key, Value() );
     return myData[ key ];
   }
 
-  const Value& operator[]( const Key& key ) const
+  const Value operator[]( const Key& key ) const
   {
     if ( myData.find( key ) == myData.end() )
       return dummyValue;
-    return myData[ key ];
+    return myData[key];
   }
 
   void erase( Iterator it )     { remove( it );    }
@@ -432,13 +373,13 @@ public:
   {
     if ( index >= 0 && index < (int)myKeys.count() )
     {
-      myData.remove( myKeys[ index ] );
-      myKeys.remove( myKeys.at( index ) );
+      myData.remove( myKeys[index] );
+      myKeys.removeAt( index );
     }
   }
 
 private:
-  QValueList<Key> myKeys;
+  QList<Key>      myKeys;
   QMap<Key,Value> myData;
   Key             dummyKey;
   Value           dummyValue;
diff --git a/src/Qtx/QtxSplash.cxx b/src/Qtx/QtxSplash.cxx
deleted file mode 100644 (file)
index d3244ef..0000000
+++ /dev/null
@@ -1,507 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-//
-// 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:      QtxSplash.cxx
-// Author:    Vadim SANDLER
-
-#include "QtxSplash.h"
-
-#include <qapplication.h>
-#include <qpainter.h>
-#include <qpixmap.h>
-#include <qmessagebox.h>
-
-const int _PROGRESS_EVENT = QEvent::User + 10;
-const int _PROGRESS_WIDTH = 10;
-
-/*!
-  Class ProgressEvent [ internal ].
-*/
-class ProgressEvent: public QCustomEvent
-{
-public:
-  ProgressEvent( const QString& msg, const int progress = 0 )
-    : QCustomEvent( id() ),
-      myMessage( msg ),
-      myProgress( progress )
-  {}
-  QString    message()  const { return myMessage;       } 
-  int        progress() const { return myProgress;      }
-  static int id()             { return _PROGRESS_EVENT; }
-
-private:
-  QString myMessage;
-  int     myProgress;
-};
-
-// Only one instance of splash screen is allowed
-QtxSplash* QtxSplash::mySplash = 0;
-
-/*!
-  Construct a splash screen that will display the \a pixmap.
-*/
-QtxSplash::QtxSplash( const QPixmap& pixmap )
-  : QWidget( 0, 0, WStyle_Customize | WStyle_StaysOnTop | WX11BypassWM | WStyle_NoBorder )
-{
-  myAlignment    = AlignBottom | AlignRight;
-  myColor        = white;
-  myHideOnClick  = false;
-  myProgress     = 0;
-  myTotal        = 0;
-  myGradientType = Vertical;
-  myError        = 0;
-  myStartColor   = red;
-
-  setPixmap( pixmap );
-}
-
-/*!
-  Destructor.
-*/
-QtxSplash::~QtxSplash()
-{
-  mySplash = 0;
-}
-
-/*!
-  Returns an only instance of splash screen.
-  If \a px is valid sets this pixmap to the splash screen.
-*/
-QtxSplash* QtxSplash::splash( const QPixmap& px )
-{
-  if ( !mySplash )
-    mySplash = new QtxSplash( px );
-  else if ( !px.isNull() )
-    mySplash->setPixmap( px );
-  return mySplash;
-}
-
-/*!
-  Sends the status message and (optionally) progress to the splash screen.
-  Can be used, for example, from the progress thread.
-*/
-void QtxSplash::setStatus( const QString& msg, 
-                          const int      progress )
-{
-  if ( mySplash ) {
-    QApplication::postEvent( mySplash, new ProgressEvent( msg, progress ) );
-    qApp->processEvents();
-  }
-}
-
-/*!
-  Sets error status and shows error message box to the user.
-*/
-void QtxSplash::error( const QString& error, const QString& title, const int code )
-{
-  printf("QtxSplash::error: %s\n",error.latin1());
-  if ( mySplash ) {
-    mySplash->setError( code );
-    QMessageBox::critical( mySplash, 
-                          title.isEmpty() ? tr( "Error" ) : title,
-                          error,
-                          tr( "&OK" ) );
-  }
-}
-
-/*!
-  Sets the pixmap that will be used as the splash screen's image to
-  \a pixmap.
-*/
-void QtxSplash::setPixmap( const QPixmap& pixmap )
-{
-  myPixmap = pixmap;
-  QRect r( 0, 0, myPixmap.size().width(), myPixmap.size().height() );
-  resize( myPixmap.size() );
-  move( QApplication::desktop()->screenGeometry().center() - r.center() );
-  repaint();
-}
-
-/*!
-  Returns the pixmap that is used in the splash screen.
-*/
-QPixmap QtxSplash::pixmap() const
-{
-  return myPixmap;
-}
-
-/*!
-  Sets/clear the 'hide on mouse click' flag.
-  Default is FALSE.
-  When this flag is set, user can hide the splash screen window
-  by clicking on it with mouse.
-  But for this to work it is necessary to call periodically
-  QApplication::processEvents() in order to allow event loop to process
-  events because usually main application loop is not yet started
-  at that moment.
-*/
-void QtxSplash::setHideOnClick( const bool on )
-{
-  myHideOnClick = on;
-}
-
-/*!
-  Returns the 'hide on mouse click' flag.
-*/
-bool QtxSplash::hideOnClick() const
-{
-  return myHideOnClick;
-}
-
-/*!
-  Sets total progress steps to \a total.
-*/
-void QtxSplash::setTotalSteps( const int total )
-{
-  myTotal = total;
-  repaint();
-}
-
-/*!
-  Return total progress steps number.
-  \sa setTotalSteps(), setProgress()
-*/
-int QtxSplash::totalSteps() const
-{
-  return myTotal;
-}
-    
-/*!
-  Sets progress to \a progress.
-*/
-void QtxSplash::setProgress( const int progress )
-{
-  myProgress = progress;
-  repaint();
-}
-
-/*!
-  Return current progress.
-  \sa setProgress(), setTotalSteps()
-*/
-int QtxSplash::progress() const
-{
-  return myProgress;
-}
-
-/*!
-  Sets progress to \a progress and total progress steps to \a total.
-*/
-void QtxSplash::setProgress( const int progress, const int total )
-{
-  myTotal    = total;
-  myProgress = progress;
-  repaint();
-}
-
-/*!
-  Sets progress bar colors to \a startColor and \a endColor.
-  If the colors differ the gradient color bar is drawed.
-  If the \a endColor is not valid, \a startColor is used instead.
-  \a gradientType sets the type of gradient to be used for progress
-  bar - horizontal or vertical. Default is vertical.
-*/
-void QtxSplash::setProgressColors( const QColor& startColor, 
-                                  const QColor& endColor,
-                                  const int     gradientType )
-{
-  myStartColor   = startColor;
-  myEndColor     = endColor;
-  myGradientType = gradientType;
-  repaint();
-}
-
-/*!
-  Return progress colors and gradient type (horizontal or vertical).
-  \sa setProgressColors()
-*/
-int QtxSplash::progressColors( QColor& startColor, QColor& endColor )
-{
-  startColor = myStartColor;
-  endColor   = myEndColor;
-  return myGradientType;
-}
-
-/*!
-  Sets message text alignment flags to \a alignment.
-  Default is AlignBottom | AlignRight.
-*/
-void QtxSplash::setTextAlignment( const int alignment )
-{
-  myAlignment = alignment;
-  repaint();
-}
-
-/*!
-  Return message text alignment flags.
-  \sa setTextAlignment()
-*/
-int QtxSplash::textAlignment() const
-{
-  return myAlignment;
-}
-
-/*!
-  Sets message text color to \a color.
-  Default is white.
-  \sa setTextColors()
-*/
-void QtxSplash::setTextColor( const QColor& color )
-{
-  myColor = color;
-  myShadowColor = QColor();
-  repaint();
-}
-
-/*!
-  Return message text color.
-  \sa setTextColor()
-*/
-QColor QtxSplash::textColor() const
-{
-  return myColor;
-}
-
-/*!
-  Sets message text color to \a color and text shadow color to \a shadow.
-  \sa setTextColor()
-*/
-void QtxSplash::setTextColors( const QColor& color, const QColor& shadow )
-{
-  myColor       = color;
-  myShadowColor = shadow;
-  repaint();
-}
-
-/*!
-  Return message text color and text shadow color.
-  \sa setTextColors()
-*/
-void QtxSplash::textColors( QColor& color, QColor& shadow ) const
-{
-  color  = myColor;
-  shadow = myShadowColor;
-}
-
-/*!
-  Returns current status message.
-*/
-QString QtxSplash::message() const
-{
-  return myMessage;
-}
-
-/*!
-  Return error code. If no errors were occured returns 0.
-  Error code can be set by error( QString&, QString, int ).
-*/
-int QtxSplash::error() const
-{
-  return myError;
-}
-
-/*!
-    Makes the splash screen wait until the widget \a mainWin is displayed
-    before calling close() on itself.
-*/
-void QtxSplash::finish( QWidget* mainWin )
-{
-  if ( mainWin ) {
-#if defined(Q_WS_X11)
-    extern void qt_wait_for_window_manager( QWidget* w );
-    qt_wait_for_window_manager( mainWin );
-#endif
-  }
-  close();
-}
-
-/*!
-  Repaint the splash screen.
-*/
-void QtxSplash::repaint()
-{
-  drawContents();
-  QWidget::repaint();
-  QApplication::flush();
-}
-
-/*!
-  Draws the \a message text onto the splash screen with color \a
-  color and aligns the text according to the flags in \a alignment.
-*/
-void QtxSplash::message( const QString& msg, 
-                        int            alignment,
-                        const QColor&  color )
-{
-  myMessage   = msg;
-  myAlignment = alignment;
-  myColor     = color;
-  repaint();
-}
-
-/*!
-  This is an overloaded member function, provided for convenience. 
-  It behaves essentially like the above function.
-  Draws the \a message text onto the splash screen with default color
-  and aligns the text according to the default alignment flags.
-*/
-void QtxSplash::message( const QString& msg )
-{
-  myMessage = msg;
-  repaint();
-}
-
-/*!
-  Removes the message being displayed on the splash screen.
-  \sa message()
-*/
-void QtxSplash::clear()
-{
-  myMessage = QString::null;
-  repaint();
-}
-
-/*!
-  Draw the contents of the splash screen using painter \a painter.
-*/
-void QtxSplash::drawContents( QPainter* painter )
-{
-  QRect r = rect();
-  if ( myTotal > 0 ) {
-    // draw progress bar outline rectangle
-    painter->setPen( palette().active().dark() );
-    painter->drawLine( r.x()+5, 
-                      r.height()-5-_PROGRESS_WIDTH,
-                      r.width()-5,
-                      r.height()-5-_PROGRESS_WIDTH );
-    painter->drawLine( r.x()+5,
-                      r.height()-5-_PROGRESS_WIDTH,
-                      r.x()+5,
-                      r.height()-5 );
-    painter->setPen( palette().active().light() );
-    painter->drawLine( r.x()+5,
-                      r.height()-5,
-                      r.width()-5,
-                      r.height()-5 );
-    painter->drawLine( r.width()-5,
-                      r.height()-5-_PROGRESS_WIDTH,
-                      r.width()-5,
-                      r.height()-5 );
-    // draw progress bar
-    if ( myGradientType == Horizontal ) {
-      int tng = r.width() - r.x() - 11;
-      int ng = (int) ( 1.0 * tng * ( myProgress > 0 ? myProgress : 0 ) / myTotal ); 
-      int h1, h2, s1, s2, v1, v2;
-      myStartColor.hsv( &h1, &s1, &v1 );
-      myEndColor.isValid() ? myEndColor.hsv( &h2, &s2, &v2 ) :
-                            myStartColor.hsv( &h2, &s2, &v2 );
-      for ( int i = 0; i < ng; i++ ) {
-       painter->setPen( QColor( h1 + ((h2-h1)*i)/(tng-1),
-                                s1 + ((s2-s1)*i)/(tng-1),
-                                v1 + ((v2-v1)*i)/(tng-1), 
-                                QColor::Hsv ) );
-       painter->drawLine( r.x()+6+i,
-                          r.height()-5-_PROGRESS_WIDTH+1,
-                          r.x()+6+i,
-                          r.height()-6 );
-      }
-    }
-    else {
-      int ng = (int) ( 1.0 * (r.width() - r.x() - 11) * ( myProgress > 0 ? myProgress : 0 ) / myTotal ); 
-      int h1, h2, s1, s2, v1, v2;
-      myStartColor.hsv( &h1, &s1, &v1 );
-      myEndColor.isValid() ? myEndColor.hsv( &h2, &s2, &v2 ) :
-                            myStartColor.hsv( &h2, &s2, &v2 );
-      for ( int i = 0; i < _PROGRESS_WIDTH-1; i++ ) {
-       painter->setPen( QColor( h1 + ((h2-h1)*i)/(_PROGRESS_WIDTH-2),
-                                s1 + ((s2-s1)*i)/(_PROGRESS_WIDTH-2),
-                                v1 + ((v2-v1)*i)/(_PROGRESS_WIDTH-2), 
-                                QColor::Hsv ) );
-       painter->drawLine( r.x()+6,
-                          r.height()-5-_PROGRESS_WIDTH+1+i,
-                          r.x()+6+ng-1,
-                          r.height()-5-_PROGRESS_WIDTH+1+i );
-      }
-    }
-  }
-  // draw status
-  if ( !myMessage.isEmpty() ) {
-    QFontMetrics f( font() );
-    int spacing = f.lineSpacing();
-    int shift = myTotal > 0 ? _PROGRESS_WIDTH : _PROGRESS_WIDTH; // : 0
-    int i = myMessage.length() - 1;
-    while( i >= 0 && myMessage[ i-- ] == '\n' )
-      shift += spacing;
-    QRect r1( r.x() + 5, r.y() + 5, r.width() - 10, r.height() - 10 - shift );
-    QRect r2 = r1;
-    if ( myAlignment & Qt::AlignLeft   ) r2.setLeft  ( r2.left()   + 1 );
-    if ( myAlignment & Qt::AlignTop    ) r2.setTop   ( r2.top()    + 1 );
-    if ( myAlignment & Qt::AlignRight  ) r2.setRight ( r2.right()  + 1 );
-    if ( myAlignment & Qt::AlignBottom ) r2.setBottom( r2.bottom() + 1 );
-    if ( myShadowColor.isValid() ) {
-      painter->setPen( myShadowColor );
-      painter->drawText( r2, myAlignment, myMessage );
-    }
-    painter->setPen( myColor );
-    painter->drawText( r1, myAlignment, myMessage );
-  }
-}
-
-/*!
-  Mouse press event.
-  Hides splash screen if the 'hide on mouse click' flag is set.
-  \sa setHideOnClick()
-*/
-void QtxSplash::mousePressEvent( QMouseEvent* )
-{
-  if ( myHideOnClick )
-    hide();
-}
-
-/*!
-  Processes custom event sent by setStatus() method.
-  \sa setStatus().
-*/
-void QtxSplash::customEvent( QCustomEvent* ce )
-{
-  if ( ce->type() == ProgressEvent::id() ) {
-    ProgressEvent* pe = (ProgressEvent*)ce;
-    pe->message().isEmpty() ? clear() : message( pe->message() );
-    setProgress( pe->progress() );
-    qApp->processEvents();
-  }
-}
-
-/*!
-  Draws the splash screen window [ internal ].
-*/
-void QtxSplash::drawContents()
-{
-  QPixmap textPix = myPixmap;
-  QPainter painter( &textPix, this );
-  drawContents( &painter );
-  setErasePixmap( textPix );
-}
-
-/*!
-  Sets error code [ internal ].
-*/
-void QtxSplash::setError( const int code )
-{
-  myError = code;
-}
diff --git a/src/Qtx/QtxSplash.h b/src/Qtx/QtxSplash.h
deleted file mode 100644 (file)
index b6ade16..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-//
-// 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:      QtxSplash.h
-// Author:    Vadim SANDLER
-
-#ifndef QTXSPLASH_H
-#define QTXSPLASH_H
-
-#include "Qtx.h"
-
-#include <qpixmap.h>
-#include <qwidget.h>
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QTX_EXPORT QtxSplash : public QWidget
-{
-    Q_OBJECT
-
-private:
-    QtxSplash( const QPixmap& = QPixmap() );
-
-public:
-    enum { Horizontal, Vertical };
-
-    virtual ~QtxSplash();
-
-    static QtxSplash* splash( const QPixmap& = QPixmap() );
-    static void       setStatus( const QString&, const int = 0 );
-    static void       error( const QString&, const QString& = QString::null, const int = -1 );
-
-    void              setPixmap( const QPixmap& );
-    QPixmap           pixmap() const;
-
-    void              setHideOnClick( const bool );
-    bool              hideOnClick() const;
-
-    void              setTotalSteps( const int );
-    int               totalSteps() const;
-    void              setProgress( const int );
-    int               progress() const;
-    void              setProgress( const int, const int );
-    void              setProgressColors( const QColor&, 
-                                        const QColor& = QColor(),
-                                        const int     = Vertical );
-    int               progressColors( QColor&, QColor& );
-
-    void              setTextAlignment( const int );
-    int               textAlignment() const;
-
-    void              setTextColor( const QColor& );
-    QColor            textColor() const;
-    void              setTextColors( const QColor&, const QColor& = QColor() );
-    void              textColors( QColor&, QColor& ) const;
-    
-    QString           message() const;
-
-    int               error() const;
-
-    void              finish( QWidget* );
-    void              repaint();
-
-public slots:
-    void              message( const QString&, 
-                              const int,
-                              const QColor& = white );
-    void              message( const QString& );
-    void              clear();
-
-protected:
-    virtual void      mousePressEvent( QMouseEvent* );
-    virtual void      customEvent( QCustomEvent* );
-    virtual void      drawContents( QPainter* );
-
-private:
-    void              drawContents();
-    void              setError( const int );
-
-private:
-    static QtxSplash* mySplash;
-
-    QPixmap           myPixmap;
-    QString           myMessage;
-    int               myAlignment;
-    QColor            myColor;
-    QColor            myShadowColor;
-    bool              myHideOnClick;
-    int               myProgress;
-    int               myTotal;
-    QColor            myStartColor;
-    QColor            myEndColor;
-    int               myGradientType;
-    int               myError;
-};
-
-#endif
diff --git a/src/Qtx/QtxStdOperations.cxx b/src/Qtx/QtxStdOperations.cxx
deleted file mode 100644 (file)
index 8e0a33e..0000000
+++ /dev/null
@@ -1,833 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-#include "QtxStdOperations.h"
-
-#include <math.h>
-#include <stdlib.h>
-
-/*!
-   Default constructor
-*/
-QtxStdOperations::QtxStdOperations()
-{
-}
-
-/*!
-   Destructor
-*/
-QtxStdOperations::~QtxStdOperations()
-{
-}
-
-/*!
-   Fills list of brackets treated as open (when 'open' is 'true') or close ('open' is 'false')
-*/
-void QtxStdOperations::bracketsList( QStringList& list, bool open ) const
-{
-    if( open )
-        list.append( "(" );
-    else
-        list.append( ")" );
-}
-
-/*!
-   Fills list with operation names by copying of internal list of operations
-*/
-void QtxStdOperations::opersList( QStringList& list ) const
-{
-  list += myOpers;
-}
-
-/*!
-   Add operation names from list to internal list of operations
-*/
-void QtxStdOperations::addOperations( const QStringList& list )
-{
-    QStringList::const_iterator anIt = list.begin(),
-                                aLast = list.end();
-    for( ; anIt!=aLast; anIt++ )
-        if( myOpers.contains( *anIt )==0 )
-            myOpers.append( *anIt );
-}
-
-/*!
-   Append operation names from 'list' to internal list of operations
-*/
-void QtxStdOperations::addTypes( const ListOfTypes& list )
-{
-    ListOfTypes::const_iterator anIt = list.begin(),
-                                aLast = list.end();
-    for( ; anIt!=aLast; anIt++ )
-        if( myTypes.contains( *anIt )==0 )
-            myTypes.append( *anIt );
-}
-
-/*!
-   \return whether values with passed types are valid for arguments of operation
-   \param op - name of operation
-   \param t1 - type of first argument
-   \param t2 - type of second argument
-*/
-QtxParser::Error QtxStdOperations::isValid( const QString& op,
-                                            const QVariant::Type t1,
-                                            const QVariant::Type t2 ) const
-{
-    if( ( t1==QVariant::Invalid || myTypes.contains( t1 ) ) &&
-        ( t2==QVariant::Invalid || myTypes.contains( t2 ) ) &&
-        ( t1!=QVariant::Invalid || t2!=QVariant::Invalid ) )
-        if( prior( op, t1!=QVariant::Invalid && t2!=QVariant::Invalid ) > 0 )
-            return QtxParser::OK;
-        else
-            return QtxParser::InvalidOperation;
-    else
-        return QtxParser::OperandsNotMatch;
-}
-
-
-
-
-
-
-
-
-/*!
-   Default constructor
-*/
-QtxArithmetics::QtxArithmetics()
-: QtxStdOperations()
-{
-    QStringList aList;
-    aList.append( "+" );
-    aList.append( "-" );
-    aList.append( "*" );
-    aList.append( "/" );
-    aList.append( "=" );
-    aList.append( "<" );
-    aList.append( ">" );
-    aList.append( "<=" );
-    aList.append( ">=" );
-    aList.append( "<>" );
-    aList.append( "!=" ); // same as "<>" - for C++ addicts
-    addOperations( aList );
-
-    ListOfTypes aTypes;
-    aTypes.append( QVariant::Int );
-    aTypes.append( QVariant::UInt );
-    aTypes.append( QVariant::Double );
-    addTypes( aTypes );
-}
-
-/*!
-   Destructor
-*/
-QtxArithmetics::~QtxArithmetics()
-{
-}
-
-/*!
-    Creates numbers by it's string representation [redefined virtual]
-*/
-bool QtxArithmetics::createValue( const QString& str, QtxValue& v ) const
-{
-    bool ok = false;
-    v = str.toInt( &ok );
-
-    if( !ok )
-    {
-        v = str.toDouble( &ok );
-        if( !ok )
-            ok = QtxStdOperations::createValue( str, v );
-    }
-    return ok;
-}
-
-/*!
-    \return priority of arithmetic operation 'op'.
-    \param isBin indicate whether the operation is binary
-*/
-int QtxArithmetics::prior( const QString& op, bool isBin ) const
-{
-    if( isBin )
-        if( op=="<" || op==">" || op=="=" || 
-            op=="<=" || op==">=" || op=="<>" || op=="!=" )
-            return 1;
-        else if( op=="+" || op=="-" )
-            return 2;
-        else if( op=="*" || op=="/" )
-            return 3;
-        else
-            return 0;
-    else if( op=="+" || op=="-" )
-        return 5;
-    else
-        return 0;
-}
-
-void set( QVariant& v1, bool v2 )
-{
-    v1 = QVariant( v2, 0 );
-}
-
-/*!
-    Calculates result of operation
-    \return one of error states
-    \param op - name of operation
-    \param v1 - first operation argument (must be used also to store result)
-    \param v2 - second operation argument
-*/
-QtxParser::Error QtxArithmetics::calculate( const QString& op, 
-                                                QtxValue& v1, QtxValue& v2 ) const
-{
-    QtxParser::Error err = QtxParser::OK;
-
-    if( v1.isValid() && v2.isValid() )
-        // binary operations
-        if( ( v1.type()==QVariant::Int || v1.type()==QVariant::UInt ) &&
-            ( v2.type()==QVariant::Int || v2.type()==QVariant::UInt ) )
-        {
-            int _v1 = v1.toInt(),
-                _v2 = v2.toInt();
-
-            if( op=="+" )
-                v1 = _v1 + _v2;
-            else if( op=="-" )
-                v1 = _v1 - _v2;
-            else if( op=="*" )
-                v1 = _v1 * _v2;
-            else if( op=="/" )
-                if( _v2!=0 )
-                    if( _v1%_v2==0 )
-                        v1 = _v1 / _v2;
-                    else
-                        v1 = double( _v1 ) / double( _v2 );
-                else
-                    err = QtxParser::InvalidResult;
-            else if( op=="<" )
-                set( v1, _v1<_v2 );
-            else if( op==">" )
-                set( v1, _v1>_v2 );
-            else if( op=="=" )
-                set( v1, _v1==_v2 );
-            else if( op=="<=" )
-                set( v1, _v1<=_v2 );
-            else if( op==">=" )
-                set( v1, _v1>=_v2 );
-            else if( op=="<>" || op=="!=" )
-                set( v1, _v1!=_v2 );
-        }
-        else if( ( v1.type()==QVariant::Int || v1.type()==QVariant::Double ) &&
-                 ( v2.type()==QVariant::Int || v2.type()==QVariant::Double ) )
-        {
-            double _v1 = v1.toDouble(),
-                   _v2 = v2.toDouble();
-
-            if( op=="+" )
-                v1 = _v1 + _v2;
-            else if( op=="-" )
-                v1 = _v1 - _v2;
-            else if( op=="*" )
-                v1 = _v1 * _v2;
-            else if( op=="/" )
-                if( _v2!=0 )
-                    v1 = _v1 / _v2;
-                else
-                    err = QtxParser::InvalidResult;
-            else if( op=="<" )
-                set( v1, _v1<_v2 );
-            else if( op==">" )
-                set( v1, _v1>_v2 );
-            else if( op=="=" )
-                set( v1, _v1==_v2 );
-            else if( op=="<=" )
-                set( v1, _v1<=_v2 );
-            else if( op==">=" )
-                set( v1, _v1>=_v2 );
-            else if( op=="<>" || op=="!=" )
-                set( v1, _v1!=_v2 );
-        }
-    else
-        // prefix operations
-        if( op=="-" )
-            if( v2.type()==QVariant::Int )
-                v2 = -v2.toInt();
-            else if( v2.type()==QVariant::Double )
-                v2 = -v2.toDouble();
-
-    return err;
-}
-
-
-
-
-
-
-
-
-
-
-
-/*!
-   Default constructor
-*/
-QtxLogic::QtxLogic()
-: QtxStdOperations()
-{
-    QStringList aList;
-    aList.append( "and" );
-    aList.append( "&&" );
-    aList.append( "or" );
-    aList.append( "||" );
-    aList.append( "xor" );
-    aList.append( "not" );
-    aList.append( "!" );
-    aList.append( "imp" );
-    aList.append( "=" );
-    addOperations( aList );
-
-    ListOfTypes aTypes;
-    aTypes.append( QVariant::Bool );
-    aTypes.append( QVariant::Int );
-    aTypes.append( QVariant::UInt );
-    addTypes( aTypes );
-}
-
-/*!
-   Destructor
-*/
-QtxLogic::~QtxLogic()
-{
-}
-
-/*!
-    Creates value 'true' or 'false' it's string representation [redefined virtual]
-*/
-bool QtxLogic::createValue( const QString& str, QtxValue& v ) const
-{
-    bool ok = true;
-    if( str.lower()=="true" )
-        v = QtxValue( true, 0 );
-    else if( str.lower()=="false" )
-        v = QtxValue( false, 0 );
-    else
-        ok = QtxStdOperations::createValue( str, v );
-
-    return ok;
-}
-
-/*!
-    \return priority of arithmetic operation 'op'.
-    \param isBin indicate whether the operation is binary
-*/
-int QtxLogic::prior( const QString& op, bool isBin ) const
-{
-    if( isBin )
-        if( op=="and" || op=="or" || op=="xor" ||
-            op=="&&"  || op=="||" ||
-            op=="imp" )
-            return 1;
-        else if( op=="=" )
-            return 2;
-        else 
-            return 0;
-    else if( op=="not" || op=="!" )
-            return 5;
-         else
-            return 0;
-}
-
-bool boolean_value( const QtxValue& v )
-{
-  if( v.type()==QVariant::Bool )
-    return v.toBool();
-  else if( v.type()==QVariant::Int )
-    return v.toInt()!=0;
-  else if( v.type()==QVariant::UInt )
-    return v.toUInt()!=0;
-  else
-    return false;
-}
-
-/*!
-    Calculates result of operation
-    \return one of error states
-    \param op - name of operation
-    \param v1 - first operation argument (must be used also to store result)
-    \param v2 - second operation argument
-*/
-QtxParser::Error QtxLogic::calculate( const QString& op,
-                                          QtxValue& v1, QtxValue& v2 ) const
-{
-    QtxParser::Error err = QtxParser::OK;
-    bool val1 = boolean_value( v1 ),
-         val2 = boolean_value( v2 );
-    if( v1.isValid() && v2.isValid() )
-    {
-        if( op=="and" || op=="&&" )
-            set( v1, val1 && val2 );
-        else if( op=="or" || op=="||" )
-            set( v1, val1 || val2 );
-        else if( op=="xor" )
-            set( v1, ( !val1 && val2 ) || ( val1 && !val2 ) );
-        else if( op=="imp" )
-            set( v1, !val1 || val2 );
-        else if( op=="=" )
-            set( v1, val1==val2 );
-    }
-    else
-        if( op=="not" || op=="!" )
-            set( v2, !val2 );
-
-    return err;
-}
-
-
-
-
-
-
-/*!
-   Default constructor
-*/
-QtxFunctions::QtxFunctions()
-: QtxStdOperations()
-{
-    QStringList aList;
-    aList.append( "sqrt" );
-    aList.append( "abs" );
-    aList.append( "sin" );
-    aList.append( "cos" );
-    aList.append( "rad2grad" );
-    aList.append( "grad2rad" );
-    addOperations( aList );
-
-    ListOfTypes aTypes;
-    aTypes.append( QVariant::Int );
-    aTypes.append( QVariant::Double );
-    addTypes( aTypes );
-}
-
-/*!
-   Destructor
-*/
-QtxFunctions::~QtxFunctions()
-{
-}
-
-/*!
-    Creates numbers by it's string representation [redefined virtual]
-*/
-bool QtxFunctions::createValue( const QString& str, QtxValue& v ) const
-{
-    bool ok = false;
-    v = str.toInt( &ok );
-
-    if( !ok )
-    {
-        v = str.toDouble( &ok );
-        if( !ok )
-            ok = QtxStdOperations::createValue( str, v );
-    }
-    return ok;
-}
-
-/*!
-    \return priority of arithmetic operation 'op'.
-    \param isBin indicate whether the operation is binary
-*/
-int QtxFunctions::prior( const QString& op, bool isBin ) const
-{
-    if( isBin )
-        return 0;
-    else if( op=="sqrt" || op=="abs" || op=="sin" || op=="cos" ||
-             op=="rad2grad" || op=="grad2rad" )
-        return 1;
-    else
-        return 0;
-}
-
-/*!
-    Calculates result of operation
-    \return one of error states
-    \param op - name of operation
-    \param v1 - first operation argument (must be used also to store result)
-    \param v2 - second operation argument
-*/
-QtxParser::Error QtxFunctions::calculate( const QString& op,
-                                          QtxValue& v1, QtxValue& v2 ) const
-{
-    QtxParser::Error err = QtxParser::OK;
-    double val = v2.toDouble();
-    if( op=="sqrt" )
-        if( val>=0 )
-            v2 = sqrt( val );
-        else
-            err = QtxParser::InvalidResult;
-    else if( op=="abs" )
-        if( v2.type()==QVariant::Int )
-            v2 = abs( v2.toInt() );
-        else 
-            v2 = fabs( v2.toDouble() );
-    else if( op=="sin" )
-        v2 = sin( val );
-    else if( op=="cos" )
-        v2 = cos( val );
-    else if( op=="grad2rad" )
-        v2 = val * 3.14159256 / 180.0;
-    else if( op=="rad2grad" )
-        v2 = val * 180.0 / 3.14159256;
-
-    return err;
-}
-
-
-
-
-
-
-
-
-/*!
-   Default constructor
-*/
-QtxStrings::QtxStrings()
-: QtxStdOperations()
-{
-    QStringList aList;
-    aList.append( "+" );
-    aList.append( "=" );
-    aList.append( "<" );
-    aList.append( ">" );
-    aList.append( "<=" );
-    aList.append( ">=" );
-    aList.append( "<>" );
-    aList.append( "!=" ); // same as "<>" - for C++ addicts
-    aList.append( "length" );
-    aList.append( "lower" );
-    aList.append( "upper" );
-    addOperations( aList );
-
-    ListOfTypes aTypes;
-    aTypes.append( QVariant::Int );
-    aTypes.append( QVariant::Double );
-    aTypes.append( QVariant::String );
-    aTypes.append( QVariant::CString );
-    addTypes( aTypes );
-}
-
-
-/*!
-   Destructor
-*/
-QtxStrings::~QtxStrings()
-{
-}
-
-/*!
-    Creates string QtxValue by it's Qt string representation [redefined virtual]
-*/
-bool QtxStrings::createValue( const QString& str, QtxValue& v ) const
-{
-    QChar st = str[0],
-          fin = str[ ( int )( str.length()-1 ) ];
-    if( st=="'" && fin=="'" )
-    {
-        v = str.mid( 1, str.length()-2 );
-        return true;
-    }
-    else
-        return QtxStdOperations::createValue( str, v );
-}
-
-/*!
-    \return priority of arithmetic operation 'op'.
-    \param isBin indicate whether the operation is binary
-*/
-int QtxStrings::prior( const QString& op, bool isBin ) const
-{
-    if( isBin )
-        if( op=="+" ) 
-            return 2;
-        else if( op=="="  || op=="<"  || op==">"  ||
-                 op=="<=" || op==">=" || op=="<>" || op=="!=" )
-            return 1;
-        else
-            return 0;
-    else
-        if( op=="length" || op=="lower" || op=="upper" )
-            return 5;
-        else
-            return 0;
-}
-
-/*!
-    Calculates result of operation
-    \return one of error states
-    \param op - name of operation
-    \param v1 - first operation argument (must be used also to store result)
-    \param v2 - second operation argument
-*/
-QtxParser::Error QtxStrings::calculate( const QString& op,
-                                            QtxValue& v1, QtxValue& v2 ) const
-{
-    QtxParser::Error err = QtxParser::OK;
-    if( v1.isValid() && v2.isValid() )
-    {
-        QString _v1 = v1.toString(),
-                _v2 = v2.toString();
-        if( op=="+" )
-            v1 = _v1 + _v2;
-        else if( op=="=" )
-            set( v1, _v1==_v2 );
-        else if( op=="<" )
-            set( v1, _v1<_v2 );
-        else if( op==">" )
-            set( v1, _v1>_v2 );
-        else if( op=="<>" || op=="!=" )
-            set( v1, _v1!=_v2 );
-        else if( op=="<=" )
-            set( v1, _v1<_v2 || _v1==_v2 );
-        else if( op==">=" )
-            set( v1, _v1>_v2 || _v1==_v2 );
-    }
-    else if( !v1.isValid() && v2.isValid() )
-    {
-        QString val = v2.toString();
-        if( op=="length" )
-            v2 = ( int )val.length();
-        else if( op=="lower" )
-            v2 = val.lower();
-        else if( op=="upper" )
-            v2 = val.upper();
-    }
-
-    return err;
-}
-
-
-
-
-
-
-/*!
-   Default constructor
-*/
-QtxSets::QtxSets()
-{
-    QStringList aList;
-    aList.append( "{" );
-    aList.append( "}" );
-    aList.append( "=" );
-    aList.append( "<>" );
-    aList.append( "!=" ); // same as "<>" - for C++ addicts
-    aList.append( "+" );
-    aList.append( "-" );
-    aList.append( "*" );
-    aList.append( "in" );
-    aList.append( "count" );
-    addOperations( aList );
-
-    ListOfTypes aTypes;
-    aTypes.append( QVariant::List );
-    addTypes( aTypes );
-}
-
-/*!
-   Destructor
-*/
-QtxSets::~QtxSets()
-{
-}
-
-/*!
-   Fills list of brackets treated as open (when 'open' is 'true') or close ('open' is 'false')
-*/
-void QtxSets::bracketsList( QStringList& list, bool open ) const
-{
-    if( open )
-        list.append( "{" );
-    else 
-        list.append( "}" );
-    QtxStdOperations::bracketsList( list, open );
-}
-
-/*!
-    Creates set of QtxValues by their string representation [redefined virtual]
-*/
-bool QtxSets::createValue( const QString& str, QtxValue& val ) const
-{
-    return QtxStdOperations::createValue( str, val );
-}
-
-/*!
-    \return priority of arithmetic operation 'op'.
-    \param isBin indicate whether the operation is binary
-*/
-int QtxSets::prior( const QString& op, bool isBin ) const
-{
-    if( isBin )
-        if( op=="=" || op=="<>" || op=="!=" )
-            return 1;
-        else if( op=="+" || op=="-" || op=="*" )
-            return 2;
-        else if( op=="in" )
-            return 3;
-        else
-            return 0;
-
-    else 
-        if( op=="{" || op=="}" )
-            return 5;
-        else if( op=="count" )
-            return 4;
-        else
-            return 0;
-}
-
-/*!
-   \return whether values with passed types are valid for arguments of operation
-   \param op - name of operation
-   \param t1 - type of first argument
-   \param t2 - type of second argument
-*/
-QtxParser::Error QtxSets::isValid( const QString& op,
-                                   const QVariant::Type t1,
-                                   const QVariant::Type t2 ) const
-{
-    if( op=="{" )
-        return QtxParser::OK;
-    else if( op=="in" )
-        if( t1!=QVariant::Invalid && t2==QVariant::List )
-            return QtxParser::OK;
-        else
-            return QtxParser::OperandsNotMatch;
-    else
-        return QtxStdOperations::isValid( op, t1, t2 );
-}
-
-/*!
-   Adds new value 'v' to set 'set' [static]
-*/
-void QtxSets::add( ValueSet& set, const QtxValue& v )
-{
-    if( v.isValid() && set.contains( v )==0 )
-        set.append( v );
-}
-
-/*!
-   Adds values from set 's2' to set 's1'
-*/
-void QtxSets::add( ValueSet& s1, const ValueSet& s2 )
-{
-    ValueSet::const_iterator anIt = s2.begin(),
-                             aLast = s2.end();
-    for( ; anIt!=aLast; anIt++ )
-        add( s1, *anIt );
-}
-
-/*!
-   Removes value 'v' from set 'set'
-*/
-void QtxSets::remove( ValueSet& set, const QtxValue& v )
-{
-    set.remove( v );
-}
-
-/*!
-   Removes values of set 's2' from set 's1'
-*/
-void QtxSets::remove( ValueSet& s1, const ValueSet& s2 )
-{
-    ValueSet::const_iterator anIt = s2.begin(),
-                             aLast = s2.end();
-    for( ; anIt!=aLast; anIt++ )
-        s1.remove( *anIt );
-}
-
-/*!
-    Calculates result of operation
-    \return one of error states
-    \param op - name of operation
-    \param v1 - first operation argument (must be used also to store result)
-    \param v2 - second operation argument
-*/
-QtxParser::Error QtxSets::calculate( const QString& op, QtxValue& v1, QtxValue& v2 ) const
-{
-    QtxParser::Error err = QtxParser::OK;
-
-    if( op!="{" )
-        if( op=="}" )
-        {
-            ValueSet aNewList;
-            add( aNewList, v1.toList() );
-            v1 = aNewList;
-        }
-
-        else if( op=="=" || op=="<>" || op=="!=" || op=="+" || op=="-" || op=="*" )
-        {
-            ValueSet aNewList;
-            add( aNewList, v1.toList() );
-
-            if( op=="=" || op=="<>" || op=="!=" || op=="-" )
-            {
-                remove( aNewList, v2.toList() );
-
-                if( op=="=" )
-                    set( v1, aNewList.isEmpty() && v1.toList().count()==v2.toList().count() );
-                else if( op=="<>" || op=="!=" )
-                    set( v1, !aNewList.isEmpty() || v1.toList().count()!=v2.toList().count() );
-                else
-                    v1 = aNewList;
-            }
-            else if( op=="+" )
-            {
-                add( aNewList, v2.toList() );
-                v1 = aNewList;
-            }
-            else if( op=="*" )
-            {
-                ValueSet toDelete;
-                add( toDelete, aNewList );
-                remove( toDelete, v2.toList() );
-                remove( aNewList, toDelete );
-                v1 = aNewList;
-            }
-        }
-        else if( op=="count" )
-            v2 = ( int )v2.toList().count();
-        else if( op=="in" )
-        {
-            if( v1.type()==QVariant::List )
-            {
-                bool res = true;
-                ValueSet::const_iterator anIt = v1.toList().begin(),
-                                         aLast = v1.toList().end();
-                for( ; anIt!=aLast && res; anIt++ )
-                    res = v2.toList().contains( *anIt )>0;
-
-                set( v1, res );
-            }
-            else
-           {
-             const QValueList< QVariant >& list = v2.toList();
-             v1 = ( bool )( list.find( v1 )!=list.end() );
-           }
-        }
-
-    return err;
-}
diff --git a/src/Qtx/QtxStdOperations.h b/src/Qtx/QtxStdOperations.h
deleted file mode 100644 (file)
index 3631d7b..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxStdOperations.h
-// Author:    Alexander SOLOVYOV
-
-#ifndef __QTX_STD_OPERATIONS_HEADER__
-#define __QTX_STD_OPERATIONS_HEADER__
-
-#include "Qtx.h"
-#include "QtxOperations.h"
-
-/*!
-  \class QtxStdOperations
-  Provides simplified interface for standard operations.
-  Conatins list of operation names, priority and possible types
-*/
-class QTX_EXPORT QtxStdOperations : public QtxOperations
-{
-public:
-    QtxStdOperations();
-    virtual ~QtxStdOperations();
-
-    virtual void opersList( QStringList& ) const;
-    virtual void bracketsList( QStringList&, bool open ) const;
-
-    virtual QtxParser::Error isValid( const QString&,
-                                      const QVariant::Type,
-                                      const QVariant::Type ) const;
-protected: 
-    typedef QValueList< QVariant::Type > ListOfTypes;
-
-    void addOperations( const QStringList& );
-    void addTypes( const ListOfTypes& );
-
-private:
-    QStringList myOpers;
-    ListOfTypes myTypes;
-};
-
-/*!
-  \class QtxArithmetics
-  Provides set of arithmetic operations for parser
-*/
-class QTX_EXPORT QtxArithmetics : public QtxStdOperations
-{
-public:
-    QtxArithmetics();
-    virtual ~QtxArithmetics();
-
-    virtual bool  createValue( const QString&, QtxValue& ) const;
-    virtual int   prior( const QString&, bool isBin ) const;
-    virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
-};
-
-/*!
-  \class QtxLogic
-  Provides set of logic operations for parser
-*/
-class QTX_EXPORT QtxLogic : public QtxStdOperations
-{
-public:
-    QtxLogic();
-    virtual ~QtxLogic();
-
-    virtual bool  createValue( const QString&, QtxValue& ) const;
-    virtual int   prior( const QString&, bool isBin ) const;
-    virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
-};
-
-/*!
-  \class QtxFunctions
-  Provides set of more complex operations for parser (sqrt, sin, cos, etc)
-*/
-class QTX_EXPORT QtxFunctions : public QtxStdOperations
-{
-public:
-    QtxFunctions();
-    virtual ~QtxFunctions();
-
-    virtual bool  createValue( const QString&, QtxValue& ) const;
-    virtual int   prior( const QString&, bool isBin ) const;
-    virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
-};
-
-/*!
-  \class QtxStrings
-  Provides set of string operations for parser
-*/
-class QTX_EXPORT QtxStrings : public QtxStdOperations
-{
-public:
-    QtxStrings();
-    virtual ~QtxStrings();
-
-    virtual bool  createValue( const QString&, QtxValue& ) const;
-    virtual int   prior( const QString&, bool isBin ) const;
-    virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
-};
-
-/*!
-  \class QtxSets
-  Provides set of operations with sets for parser
-*/
-class QTX_EXPORT QtxSets : public QtxStdOperations
-{
-public:
-    typedef QValueList< QtxValue > ValueSet;
-
-public:
-    QtxSets();
-    virtual ~QtxSets();
-
-    virtual void bracketsList( QStringList&, bool open ) const;
-    virtual bool createValue( const QString&, QtxValue& ) const;
-    virtual int  prior( const QString&, bool isBin ) const;
-    virtual QtxParser::Error isValid( const QString&,
-                                      const QVariant::Type,
-                                      const QVariant::Type ) const;
-    virtual QtxParser::Error calculate( const QString&, QtxValue&, QtxValue& ) const;
-
-    static void add( ValueSet&, const QtxValue& );
-    static void add( ValueSet&, const ValueSet& );
-    static void remove( ValueSet&, const QtxValue& );
-    static void remove( ValueSet&, const ValueSet& );
-};
-
-
-#endif
diff --git a/src/Qtx/QtxTable.cxx b/src/Qtx/QtxTable.cxx
deleted file mode 100644 (file)
index 1f7c0be..0000000
+++ /dev/null
@@ -1,398 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxTable.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxTable.h"
-
-#ifndef QT_NO_TABLE
-
-#include <qlineedit.h>
-
-/*!
-  Constructor
-*/
-QtxTable::QtxTable( QWidget* parent, const char* name )
-: QTable( parent, name ),
-myHeaderEditor( 0 ),
-myEditedHeader( 0 ),
-myEditedSection( -1 )
-{
-  connect( verticalHeader(), SIGNAL( sizeChange( int, int, int ) ),
-           this, SLOT( onHeaderSizeChange( int, int, int ) ) );
-  connect( horizontalHeader(), SIGNAL( sizeChange( int, int, int ) ),
-           this, SLOT( onHeaderSizeChange( int, int, int ) ) );
-  connect( verticalScrollBar(), SIGNAL( valueChanged( int ) ), this, SLOT( onScrollBarMoved( int ) ) );
-  connect( horizontalScrollBar(), SIGNAL( valueChanged( int ) ), this, SLOT( onScrollBarMoved( int ) ) );
-}
-
-/*!
-  Constructor
-*/
-QtxTable::QtxTable( int numRows, int numCols, QWidget* parent, const char* name )
-: QTable( numRows, numCols, parent, name ),
-myHeaderEditor( 0 ),
-myEditedHeader( 0 ),
-myEditedSection( -1 )
-{
-  connect( verticalHeader(), SIGNAL( sizeChange( int, int, int ) ),
-           this, SLOT( onHeaderSizeChange( int, int, int ) ) );
-  connect( horizontalHeader(), SIGNAL( sizeChange( int, int, int ) ),
-           this, SLOT( onHeaderSizeChange( int, int, int ) ) );
-  connect( verticalScrollBar(), SIGNAL( valueChanged( int ) ), this, SLOT( onScrollBarMoved( int ) ) );
-  connect( horizontalScrollBar(), SIGNAL( valueChanged( int ) ), this, SLOT( onScrollBarMoved( int ) ) );
-}
-
-/*!
-  Destructor
-*/
-QtxTable::~QtxTable()
-{
-}
-
-/*!
-  \return true if header is editable
-  \param o - header orientation
-*/
-bool QtxTable::headerEditable( Orientation o ) const
-{
-  return myHeaderEditable.contains( o ) ? myHeaderEditable[o] : false;
-}
-
-/*!
-  Changes editable state of header
-  \param o - header orientation
-  \param on - new state
-*/
-void QtxTable::setHeaderEditable( Orientation o, const bool on )
-{
-  if ( headerEditable( o ) == on )
-    return;
-
-  myHeaderEditable.insert( o, on );
-
-  QHeader* hdr = header( o );
-
-  if ( !on && myEditedHeader == hdr )
-    endHeaderEdit( false );
-
-  if ( on )
-    hdr->installEventFilter( this );
-  else
-    hdr->removeEventFilter( this );
-}
-
-/*!
-  Starts edition of header
-  \param o - header orientation
-  \param sec - column/row
-*/
-bool QtxTable::editHeader( Orientation o, const int sec )
-{
-  return beginHeaderEdit( o, sec );
-}
-
-/*!
-  Finishes edition of header
-  \param accept - whether new value must be accepted
-*/
-void QtxTable::endEditHeader( const bool accept )
-{
-  endHeaderEdit( accept );
-}
-
-/*!
-  Finishes edition and hides table
-*/
-void QtxTable::hide()
-{
-  endHeaderEdit();
-
-  QTable::hide();
-}
-
-/*!
-  Custom event filter
-  Starts edition of header by double click
-  Finishes edition by escape/return/enter pressing
-*/
-bool QtxTable::eventFilter( QObject* o, QEvent* e )
-{
-  if ( e->type() == QEvent::MouseButtonDblClick )
-  {
-    QMouseEvent* me = (QMouseEvent*)e;
-    if ( o == horizontalHeader() )
-    {
-      beginHeaderEdit( Horizontal, me->pos() );
-      return true;
-    }
-    else if ( o == verticalHeader() )
-    {
-      beginHeaderEdit( Vertical, me->pos() );
-      return true;
-    }
-  }
-
-  if ( o == myHeaderEditor && e->type() == QEvent::KeyPress && isHeaderEditing() )
-  {
-         QKeyEvent* ke = (QKeyEvent*)e;
-    if ( ke->key() == Key_Escape )
-    {
-      endHeaderEdit( false );
-      return true;
-    }
-
-    if ( ke->key() == Key_Return || ke->key() == Key_Enter )
-    {
-      endHeaderEdit( true );
-      return true;
-    }
-
-    return false;
-  }
-
-  if ( o == myHeaderEditor && e->type() == QEvent::FocusOut &&
-       isHeaderEditing() && ((QFocusEvent*)e)->reason() != QFocusEvent::Popup )
-  {
-               endHeaderEdit();
-               return true;
-  }
-
-  if ( e->type() == QEvent::Wheel && isHeaderEditing() )
-    return true;
-
-  return QTable::eventFilter( o, e );
-}
-
-/*!
-  SLOT: called on scroll
-*/
-void QtxTable::onScrollBarMoved( int )
-{
-  updateHeaderEditor();
-}
-
-/*!
-  SLOT: called on header size changing
-*/
-void QtxTable::onHeaderSizeChange( int, int, int )
-{
-  if ( sender() == myEditedHeader )
-    updateHeaderEditor();
-}
-
-/*!
-  Custom resize event handler
-*/
-void QtxTable::resizeEvent( QResizeEvent* e )
-{
-  QTable::resizeEvent( e );
-
-  updateHeaderEditor();
-}
-
-/*!
-  Starts edition of header
-  \param o - header orientation
-  \param sec - column/row
-*/
-bool QtxTable::beginHeaderEdit( Orientation o, const int section )
-{
-  if ( !headerEditable( o ) || !header( o ) || !header( o )->isVisibleTo( this ) )
-    return false;
-
-  endHeaderEdit();
-
-  QHeader* hdr = header( o );
-
-  QRect r = headerSectionRect( hdr, section );
-  if ( !r.isValid() )
-    return false;
-
-  if ( o == Horizontal )
-    r.setLeft( QMAX( r.left(), leftMargin() ) );
-  else
-    r.setTop( QMAX( r.top(), topMargin() ) );
-
-  myHeaderEditor = createHeaderEditor( hdr, section );
-  if ( !myHeaderEditor )
-    return false;
-
-  myEditedHeader = hdr;
-  myEditedSection = section;
-
-  myHeaderEditor->reparent( this, QPoint( 0, 0 ), false );
-
-  updateHeaderEditor();
-
-  myHeaderEditor->show();
-
-  myHeaderEditor->setActiveWindow();
-  myHeaderEditor->setFocus();
-
-  myHeaderEditor->installEventFilter( this );
-
-  return true;
-}
-
-/*!
-  Finishes edition of header
-  \param accept - whether new value must be accepted
-*/
-void QtxTable::endHeaderEdit( const bool accept )
-{
-  if ( !isHeaderEditing() )
-    return;
-
-  QString oldTxt = myEditedHeader ? myEditedHeader->label( myEditedSection ) : QString::null;
-
-  if ( accept && myEditedHeader )
-    setHeaderContentFromEditor( myEditedHeader, myEditedSection, myHeaderEditor );
-
-  QString newTxt = myEditedHeader ? myEditedHeader->label( myEditedSection ) : QString::null;
-
-  int sec = myEditedSection;
-  QHeader* hdr = myEditedHeader;
-
-  myEditedHeader = 0;
-  myEditedSection = -1;
-
-  myHeaderEditor->hide();
-  myHeaderEditor->deleteLater();
-  myHeaderEditor = 0;
-
-  if ( oldTxt != newTxt )
-  {
-    emit headerEdited( hdr, sec );
-    emit headerEdited( hdr == horizontalHeader() ? Horizontal : Vertical, sec );
-  }
-}
-
-/*!
-  \return true if header is being edited
-*/
-bool QtxTable::isHeaderEditing() const
-{
-  return myHeaderEditor && myEditedHeader && myEditedSection != -1;
-}
-
-/*!
-  Creates and \return header editor
-  \param hdr - header
-  \param sec - column/row
-  \param init - init editor with value
-*/
-QWidget* QtxTable::createHeaderEditor( QHeader* hdr, const int sec, const bool init )
-{
-  QLineEdit* ed = new QLineEdit( 0 );
-
-  if ( init && hdr )
-    ed->setText( hdr->label( sec ) );
-
-  return ed;
-}
-
-/*!
-  Initialize editor with value
-  \param hdr - header
-  \param sec - column/row
-  \param editor - editor
-*/
-void QtxTable::setHeaderContentFromEditor( QHeader* hdr, const int sec, QWidget* editor )
-{
-  if ( !hdr || !editor )
-    return;
-
-  if ( editor->inherits( "QLineEdit" ) )
-    hdr->setLabel( sec, ((QLineEdit*)editor)->text() );
-}
-
-/*!
-  \return header
-  \param o - orientation
-*/
-QHeader* QtxTable::header( Orientation o ) const
-{
-  return o == Horizontal ? horizontalHeader() : verticalHeader();
-}
-
-/*!
-  Starts edition of header
-  \param o - header orientation
-  \param p - point
-*/
-void QtxTable::beginHeaderEdit( Orientation o, const QPoint& p )
-{
-  QHeader* hdr = header( o );
-  if ( !hdr )
-    return;
-
-  int pos = o == Horizontal ? p.x() : p.y();
-  int sec = hdr->sectionAt( hdr->offset() + pos );
-
-  beginHeaderEdit( o, sec );
-}
-
-/*!
-  \return rectangle of header section
-  \param hdr - header
-  \param sec - column/row
-*/
-QRect QtxTable::headerSectionRect( QHeader* hdr, const int sec ) const
-{
-  QRect r( -1, -1, -1, -1 );
-
-  if ( !hdr )
-    return r;
-
-  r = hdr->sectionRect( sec );
-  if ( r.isValid() )
-    r = QRect( mapFromGlobal( hdr->mapToGlobal( r.topLeft() ) ), r.size() );
-
-  return r;
-}
-
-/*!
-  Updates header editor
-*/
-void QtxTable::updateHeaderEditor()
-{
-  if ( !myHeaderEditor || !myEditedHeader || myEditedSection < 0 )
-    return;
-
-  QRect r = headerSectionRect( myEditedHeader, myEditedSection );
-  if ( !r.isValid() )
-    return;
-
-  if ( myEditedHeader == horizontalHeader() )
-  {
-    r.setLeft( QMAX( r.left(), leftMargin() ) );
-    r.setRight( QMIN( r.right(), width() - rightMargin() - 2 ) );
-  }
-  else
-  {
-    r.setTop( QMAX( r.top(), topMargin() ) );
-    r.setBottom( QMIN( r.bottom(), height() - bottomMargin() - 2 ) );
-  }
-
-  myHeaderEditor->resize( r.size() );
-  myHeaderEditor->move( r.topLeft() );
-}
-
-#endif
diff --git a/src/Qtx/QtxTable.h b/src/Qtx/QtxTable.h
deleted file mode 100644 (file)
index b7175d0..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxTable.h
-// Author:    Sergey TELKOV
-
-#ifndef QTX_TABLE_H
-#define QTX_TABLE_H
-
-#include "Qtx.h"
-
-#include <qtable.h>
-
-#ifndef QT_NO_TABLE
-
-class QHeader;
-
-class QTX_EXPORT QtxTable : public QTable
-{
-  Q_OBJECT
-
-  class HeaderEditor;
-
-public:
-  QtxTable( QWidget* = 0, const char* = 0 );
-  QtxTable( int, int, QWidget* = 0, const char* = 0 );
-  virtual ~QtxTable();
-
-  bool             headerEditable( Orientation ) const;
-
-  bool             editHeader( Orientation, const int );
-  void             endEditHeader( const bool = true );
-
-  virtual bool     eventFilter( QObject*, QEvent* );
-
-signals:
-  void             headerEdited( QHeader*, int );
-  void             headerEdited( Orientation, int );
-
-public slots:
-  virtual void     hide();
-  virtual void     setHeaderEditable( Orientation, bool );
-
-private slots:
-  void             onScrollBarMoved( int );
-  void             onHeaderSizeChange( int, int, int );
-
-protected:
-  virtual void     resizeEvent( QResizeEvent* );
-
-  virtual bool     beginHeaderEdit( Orientation, const int );
-  virtual void     endHeaderEdit( const bool = true );
-  bool             isHeaderEditing() const;
-  virtual QWidget* createHeaderEditor( QHeader*, const int, const bool = true );
-  virtual void     setHeaderContentFromEditor( QHeader*, const int, QWidget* );
-
-  QHeader*         header( Orientation o ) const;
-
-private:
-  void             updateHeaderEditor();
-  void             beginHeaderEdit( Orientation, const QPoint& );
-  QRect            headerSectionRect( QHeader*, const int ) const;
-
-private:
-  QWidget*         myHeaderEditor;
-  QHeader*         myEditedHeader;
-  int              myEditedSection;
-  QMap<int, bool>  myHeaderEditable;
-};
-
-#endif
-
-#endif
index cf585db645c582341defcffccc4ea06b04c54952..f436f68a7191444f6a6288318df36085016b4ab1 100644 (file)
 
 #include "QtxToolBar.h"
 
-#include <qlayout.h>
-#include <qpixmap.h>
-#include <qdockarea.h>
-#include <qobjectlist.h>
-#include <qmainwindow.h>
-#include <qapplication.h>
+#include <QtGui/qaction.h>
+#include <QtGui/qlayout.h>
+#include <QtGui/qpixmap.h>
+#include <QtGui/qmainwindow.h>
+#include <QtGui/qapplication.h>
 
 /*!
     Class: QtxToolBar::Watcher [Internal]
@@ -44,7 +43,7 @@ public:
   virtual bool eventFilter( QObject*, QEvent* );
 
 protected:
-  virtual void customEvent( QCustomEvent* );
+  virtual void customEvent( QEvent* );
 
 private:
   enum { Install = QEvent::User, Update };
@@ -55,8 +54,6 @@ private:
   void         showContainer();
   void         hideContainer();
 
-  void         updateIcon();
-  void         updateCaption();
   void         updateVisibility();
 
 private:
@@ -73,11 +70,12 @@ QtxToolBar::Watcher::Watcher( QtxToolBar* cont )
 : QObject( cont ),
 myCont( cont ),
 myState( true ),
-myEmpty( true )
+myEmpty( false )
 {
+/*
   if ( myCont->mainWindow() )
     myState = myCont->mainWindow()->appropriate( myCont );
-
+*/
   myCont->installEventFilter( this );
   myVisible = myCont->isVisibleTo( myCont->parentWidget() );
 
@@ -89,14 +87,8 @@ myEmpty( true )
 */
 bool QtxToolBar::Watcher::eventFilter( QObject* o, QEvent* e )
 {
-  if ( o == myCont && e->type() == QEvent::ChildInserted )
-    QApplication::postEvent( this, new QCustomEvent( Install ) );
-
-  if ( o != myCont && e->type() == QEvent::IconChange )
-    updateIcon();
-
-  if ( o != myCont && e->type() == QEvent::CaptionChange )
-    updateCaption();
+  if ( o == myCont && e->type() == QEvent::ChildAdded )
+    QApplication::postEvent( this, new QEvent( (QEvent::Type)Install ) );
 
   bool updVis = ( o != myCont && ( e->type() == QEvent::Show || e->type() == QEvent::ShowToParent ||
                                    e->type() == QEvent::Hide || e->type() == QEvent::HideToParent ) ) ||
@@ -108,7 +100,7 @@ bool QtxToolBar::Watcher::eventFilter( QObject* o, QEvent* e )
     myCont = 0;
     QApplication::sendPostedEvents( this, Update );
     myCont = cont;
-    QApplication::postEvent( this, new QCustomEvent( Update ) );
+    QApplication::postEvent( this, new QEvent( (QEvent::Type)Update ) );
   }
 
   return false;
@@ -167,14 +159,12 @@ void QtxToolBar::Watcher::hideContainer()
 /*!
   Event handler of custom events
 */
-void QtxToolBar::Watcher::customEvent( QCustomEvent* e )
+void QtxToolBar::Watcher::customEvent( QEvent* e )
 {
   switch ( e->type() )
   {
   case Install:
     installFilters();
-    updateIcon();
-    updateCaption();
   case Update:
     updateVisibility();
   }
@@ -188,15 +178,11 @@ void QtxToolBar::Watcher::installFilters()
   if ( !myCont )
     return;
 
-  const QObjectList* objList = myCont->children();
-  if ( !objList )
-    return;
-
-  for ( QObjectListIt it( *objList ); it.current(); ++it )
+  const QObjectList& objList = myCont->children();
+  for ( QObjectList::const_iterator it = objList.begin(); it != objList.end(); ++it )
   {
-    if ( it.current()->isWidgetType() &&
-         qstrcmp( "qt_dockwidget_internal", it.current()->name() ) )
-      it.current()->installEventFilter( this );
+    if ( (*it)->isWidgetType() && qstrcmp( "qt_dockwidget_internal", (*it)->objectName().toLatin1() ) )
+      (*it)->installEventFilter( this );
   }
 }
 
@@ -210,18 +196,18 @@ void QtxToolBar::Watcher::updateVisibility()
 
   bool vis = false;
 
-  const QObjectList* objList = myCont->children();
-  if ( objList )
+  const QObjectList& objList = myCont->children();
+  for ( QObjectList::const_iterator it = objList.begin(); it != objList.end() && !vis; ++it )
   {
-    for ( QObjectListIt it( *objList ); it.current() && !vis; ++it )
-    {
-      if ( !it.current()->isWidgetType() ||
-           !qstrcmp( "qt_dockwidget_internal", it.current()->name() ) )
-        continue;
+    QObject* obj = *it;
+    if ( !obj->isWidgetType() || !qstrcmp( "qt_dockwidget_internal", obj->objectName().toLatin1() ) )
+      continue;
 
-      QWidget* wid = (QWidget*)it.current();
-      vis = wid->isVisibleTo( wid->parentWidget() );
-    }
+    if ( obj->inherits( "QToolBarHandle" ) || obj->inherits( "QToolBarExtension" ) )
+      continue;
+
+    QWidget* wid = (QWidget*)*it;
+    vis = wid->isVisibleTo( wid->parentWidget() );
   }
 
   QMainWindow* mw = myCont->mainWindow();
@@ -229,11 +215,11 @@ void QtxToolBar::Watcher::updateVisibility()
   {
     myEmpty = !vis;
     if ( !myEmpty )
-      mw->setAppropriate( myCont, myState );
+      myCont->toggleViewAction()->setVisible( myState );
     else
     {
-      myState = mw->appropriate( myCont );
-      mw->setAppropriate( myCont, false );
+      myState = myCont->toggleViewAction()->isVisible();
+      myCont->toggleViewAction()->setVisible( false );
     }
   }
 
@@ -242,33 +228,11 @@ void QtxToolBar::Watcher::updateVisibility()
     vis ? showContainer() : hideContainer();
 }
 
-/*!
-  Updates icon
-*/
-void QtxToolBar::Watcher::updateIcon()
-{
-  if ( !myCont || !myCont->widget() )
-    return;
-  
-  const QPixmap* ico = myCont->widget()->icon();
-  myCont->setIcon( ico ? *ico : QPixmap() );
-}
-
-/*!
-  Updates caption
-*/
-void QtxToolBar::Watcher::updateCaption()
-{
-  if ( myCont && myCont->widget() && !myCont->widget()->caption().isNull() )
-    myCont->setCaption( myCont->widget()->caption() );
-}
-
 /*!
   Constructor
 */
-QtxToolBar::QtxToolBar( const bool watch, const QString& label, QMainWindow* main,
-                        QWidget* parent, bool newLine, const char* name, WFlags f )
-: QToolBar( label, main, parent, newLine, name, f ),
+QtxToolBar::QtxToolBar( const bool watch, const QString& label, QWidget* parent )
+: QToolBar( label, parent ),
 myWatcher( 0 ),
 myStretch( false )
 {
@@ -279,9 +243,8 @@ myStretch( false )
 /*!
   Constructor
 */
-QtxToolBar::QtxToolBar( const QString& label, QMainWindow* main,
-                        QWidget* parent, bool newLine, const char* name, WFlags f )
-: QToolBar( label, main, parent, newLine, name, f ),
+QtxToolBar::QtxToolBar( const QString& label, QWidget* parent )
+: QToolBar( label, parent ),
 myWatcher( 0 ),
 myStretch( false )
 {
@@ -290,8 +253,8 @@ myStretch( false )
 /*!
   Constructor
 */
-QtxToolBar::QtxToolBar( const bool watch, QMainWindow* main, const char* name )
-: QToolBar( main, name ),
+QtxToolBar::QtxToolBar( const bool watch, QWidget* parent )
+: QToolBar( parent ),
 myWatcher( 0 ),
 myStretch( false )
 {
@@ -302,8 +265,8 @@ myStretch( false )
 /*!
   Constructor
 */
-QtxToolBar::QtxToolBar( QMainWindow* main, const char* name )
-: QToolBar( main, name ),
+QtxToolBar::QtxToolBar( QWidget* parent )
+: QToolBar( parent ),
 myWatcher( 0 ),
 myStretch( false )
 {
@@ -316,68 +279,13 @@ QtxToolBar::~QtxToolBar()
 {
 }
 
-/*!
-  Change the toolbar's main widget
-  \param wid - new main widget
-*/
-void QtxToolBar::setWidget( QWidget* wid )
-{
-  if ( wid )
-    wid->reparent( this, QPoint( 0, 0 ), wid->isVisibleTo( wid->parentWidget() ) );
-
-  QToolBar::setWidget( wid );
-
-  if ( !boxLayout() )
-    return;
-
-  for ( QLayoutIterator it = boxLayout()->iterator(); it.current(); ++it )
-  {
-    if ( it.current()->widget() == wid )
-    {
-      it.deleteCurrent();
-      break;
-    }
-  }
-}
-
-/*!
-  \return true if toolbar is stretchable
-*/
-bool QtxToolBar::isStretchable() const
-{
-  return myStretch;
-}
-
-/*!
-  Sets stretchable state of toolbar
-  \param on - new state
-*/
-void QtxToolBar::setStretchable( const bool on )
-{
-  if ( myStretch == on )
-    return;
-
-  myStretch = on;
-
-  boxLayout()->setStretchFactor( widget(), myStretch ? 1 : 0 );
-
-  if ( myStretch != isHorizontalStretchable() ||
-       myStretch != isVerticalStretchable() )
-  {
-         if ( orientation() == Horizontal )
-           setHorizontalStretchable( myStretch );
-         else
-           setVerticalStretchable( myStretch );
-  }
-}
-
 /*!
   \return the recommended size for the widget
 */
 QSize QtxToolBar::sizeHint() const
 {
   QSize sz = QToolBar::sizeHint();
-
+/*
   if ( place() == InDock && isStretchable() && area() )
   {
     if ( orientation() == Horizontal )
@@ -385,7 +293,7 @@ QSize QtxToolBar::sizeHint() const
     else
       sz.setHeight( area()->height() );
   }
-
+*/
   return sz;
 }
 
@@ -395,7 +303,7 @@ QSize QtxToolBar::sizeHint() const
 QSize QtxToolBar::minimumSizeHint() const
 {
   QSize sz = QToolBar::minimumSizeHint();
-
+/*
   if ( place() == InDock && isStretchable() && area() )
   {
     if ( orientation() == Horizontal )
@@ -403,28 +311,37 @@ QSize QtxToolBar::minimumSizeHint() const
     else
       sz.setHeight( area()->height() );
   }
-
+*/
   return sz;
 }
 
 /*!
   Shows toolbar
 */
-void QtxToolBar::show()
+void QtxToolBar::setVisible( bool visible )
 {
   if ( myWatcher )
-    myWatcher->shown( this );
+  {
+    if ( visible )
+      myWatcher->shown( this );
+    else
+      myWatcher->hided( this );
+  }
 
-  QToolBar::show();
+  QToolBar::setVisible( visible );
 }
 
 /*!
-  Hides toolbar
+  Returns the main window
 */
-void QtxToolBar::hide()
+QMainWindow* QtxToolBar::mainWindow() const
 {
-  if ( myWatcher )
-    myWatcher->hided( this );
-
-  QToolBar::hide();
+  QMainWindow* mw = 0;
+  QWidget* wid = parentWidget();
+  while ( !mw && wid )
+  {
+    mw = ::qobject_cast<QMainWindow*>( wid );
+    wid = wid->parentWidget();
+  }
+  return mw;
 }
index 57512f40dbfc62be4924c332bff1695fb281fa18..e1757edf3ce6b6b03ba651040bc75bf49505c73a 100644 (file)
@@ -21,7 +21,7 @@
 
 #include "Qtx.h"
 
-#include <qtoolbar.h>
+#include <QtGui/qtoolbar.h>
 
 class QTX_EXPORT QtxToolBar : public QToolBar
 {
@@ -30,23 +30,19 @@ class QTX_EXPORT QtxToolBar : public QToolBar
   class Watcher;
 
 public:
-  QtxToolBar( const bool, const QString&, QMainWindow*, QWidget*, bool = false, const char* = 0, WFlags = 0 );
-  QtxToolBar( const QString&, QMainWindow*, QWidget*, bool = false, const char* = 0, WFlags = 0 );
-  QtxToolBar( const bool, QMainWindow* = 0, const char* = 0 );
-  QtxToolBar( QMainWindow* = 0, const char* = 0 );
+  QtxToolBar( const bool, const QString&, QWidget* );
+  QtxToolBar( const QString&, QWidget* );
+  QtxToolBar( const bool, QWidget* = 0 );
+  QtxToolBar( QWidget* = 0 );
   virtual ~QtxToolBar();
 
-  virtual void  setWidget( QWidget* );
-
-  bool          isStretchable() const;
-  virtual void  setStretchable( const bool );
-
   virtual QSize sizeHint() const;
   virtual QSize minimumSizeHint() const;
 
+  QMainWindow*  mainWindow() const;
+
 public slots:
-  virtual void  show();
-  virtual void  hide();
+  virtual void  setVisible( bool );
 
 private:
   Watcher*      myWatcher;
diff --git a/src/Qtx/QtxToolTip.cxx b/src/Qtx/QtxToolTip.cxx
deleted file mode 100755 (executable)
index 530afca..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxToolTip.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxToolTip.h"
-
-#include <qfont.h>
-#include <qtimer.h>
-#include <qcursor.h>
-#include <qfontmetrics.h>
-#include <qapplication.h>
-
-#define TOOLTIP_SHOW_DELAY 0500
-#define TOOLTIP_HIDE_DELAY 7000
-
-/*!
-  Constructor
-*/
-QtxToolTip::QtxToolTip( QWidget* parent )
-: QLabel( parent, "", WStyle_Customize | WStyle_NoBorder | WX11BypassWM | WStyle_Tool | WStyle_StaysOnTop | WType_TopLevel )
-{
-  setIndent( 3 );
-       setAlignment( Qt::AlignLeft | Qt::AlignVCenter );
-       setBackgroundColor( QColor( 255, 255, 231 ) );
-
-       myWidgetRegion = QRect( -1, -1, -1, -1 );
-
-       setFrameShape( QFrame::Panel );
-       setFrameShadow( QFrame::Plain );
-
-  parent->setMouseTracking( true );
-       parent->installEventFilter( this );
-       installEventFilter( this );
-
-       mySleepTimer = new QTimer( this );
-       myWakeUpTimer = new QTimer( this );
-       connect( mySleepTimer,  SIGNAL( timeout() ), this, SLOT( onSleepTimeOut()  ) );
-       connect( myWakeUpTimer, SIGNAL( timeout() ), this, SLOT( onWakeUpTimeOut() ) );
-
-  myWakeUpDelayTime = 700;
-  myShowDelayTime = 5000;
-}
-
-/*!
-  Destructor
-*/
-QtxToolTip::~QtxToolTip()
-{
-}
-
-/*!
-  Custom event filter
-*/
-bool QtxToolTip::eventFilter( QObject* o, QEvent* e )
-{
-       if ( ( e->type() == QEvent::Destroy ) || ( e->type() == QEvent::Close ) || ( e->type() == QEvent::Hide ) )
-       {
-               hideTip();
-       }
-       if ( e->type() == QEvent::Leave )
-       {
-               if ( isVisible() && ( o == this ) )
-                       hideTip();
-               myWakeUpTimer->stop();
-       }
-       if ( e->type() == QEvent::MouseMove )
-       {
-               QMouseEvent* me = (QMouseEvent*)e;
-               QPoint thePos = parentWidget()->mapFromGlobal( me->globalPos() );
-               if ( myWakeUpTimer->isActive() )
-               {
-                       myWakeUpTimer->stop();
-                       myWakeUpTimer->start( myWakeUpDelayTime, true );
-               }
-               if ( isVisible() )
-               {
-                       if ( !myWidgetRegion.contains( thePos ) )
-      {
-                               hideTip();
-        myWidgetRegion = QRect( -1, -1, -1, -1 );
-      }
-               }
-               else
-               {
-                       if ( !myWidgetRegion.isValid() || myWidgetRegion.contains( thePos ) )
-                               myWakeUpTimer->start( myWakeUpDelayTime, true );
-               }
-       }
-       if ( e->type() == QEvent::KeyPress )
-       {
-               hideTip();
-       }
-       if ( o == parent() && ( e->type() == QEvent::MouseButtonPress ||
-                          e->type() == QEvent::MouseButtonRelease ) )
-       {
-               hideTip();
-       }
-       return false;
-}
-
-/*!
-  Shows tool tip
-  \param aPos - position
-  \param text - tooltip text
-  \param aWidgetRegion - rectangle
-*/
-void QtxToolTip::showTip( const QPoint& aPos, const QString& text, const QRect& aWidgetRegion )
-{
-       QFontMetrics theFM = fontMetrics();
-       int theHeight = theFM.height();
-       int theWidth = theFM.width( text ) + 2;
-       showTip( QRect( QPoint( aPos.x(), aPos.y() + 10 ), QSize( theWidth, theHeight ) ), text, aWidgetRegion );
-}
-
-/*!
-  Shows tool tip
-  \param aRegion - tooltip region
-  \param text - tooltip text
-  \param aWidgetRegion - widget rectangle
-*/
-void QtxToolTip::showTip( const QRect& aRegion, const QString& text, const QRect& aWidgetRegion )
-{
-       setText( text );
-       myWidgetRegion = aWidgetRegion;
-       setGeometry( aRegion );
-       if ( myShowDelayTime != 0 )
-               mySleepTimer->start( myShowDelayTime, true );
-       show();
-}
-
-/*!
-  Hides tooltip
-*/
-void QtxToolTip::hideTip()
-{
-       hide();
-  myWidgetRegion = QRect( -1, -1, -1, -1 );
-       mySleepTimer->stop();
-}
-
-/*!
-  It is called when there is a possibility that a tool tip should be shown and
-  must decide whether there is a tool tip for the point p in the widget that this QToolTip object relates to
-  \param pos - position
-*/
-void QtxToolTip::maybeTip( const QPoint& pos )
-{
-       QString text;
-       QRect textRegion, theRegion( -1, -1, -1, -1 );
-       QFont theFnt = font();
-
-    emit maybeTip( pos, text, theFnt, textRegion, theRegion );
-
-    if ( theRegion.isValid() )
-       {
-               setFont( theFnt );
-               int margin = lineWidth() + indent();
-               QRect dspRegion( QPoint( textRegion.x() - margin, textRegion.y() ),
-                                        QSize( textRegion.width() + 2 * margin, textRegion.height() ) );
-               QRect tipRegion( parentWidget()->mapToGlobal( dspRegion.topLeft() ), dspRegion.size() );
-               if ( tipRegion.left() < 0 )
-                       tipRegion.moveBy( -1 * tipRegion.left(), 0 );
-               showTip( tipRegion, text, theRegion );
-       }
-}
-
-/*!
-  SLOT: called when sleep time is out
-*/
-void QtxToolTip::onSleepTimeOut()
-{
-       mySleepTimer->stop();
-       hideTip();
-}
-
-/*!
-  SLOT: called when wake time is out
-*/
-void QtxToolTip::onWakeUpTimeOut()
-{
-       myWakeUpTimer->stop();
-  QPoint pos = QCursor::pos();
-  if ( parentWidget() )
-    pos = parentWidget()->mapFromGlobal( pos );
-  maybeTip( pos );
-}
-
-/*!
-  Custom mouse press event handler
-*/
-void QtxToolTip::mousePressEvent( QMouseEvent* e )
-{
-       hideTip();
-       QWidget* reciever = parentWidget();
-       QMouseEvent* me = new QMouseEvent( QEvent::MouseButtonPress,
-                                                                          reciever->mapFromGlobal( e->globalPos() ),
-                                                                          e->button(), e->state() );
-       QApplication::sendEvent( reciever, me );
-}
-
-/*!
-  Custom mouse double click event handler
-*/
-void QtxToolTip::mouseDoubleClickEvent( QMouseEvent* e )
-{
-       hideTip();
-       QWidget* reciever = parentWidget();
-       QMouseEvent* me = new QMouseEvent( QEvent::MouseButtonDblClick,
-                                                                          reciever->mapFromGlobal( e->globalPos() ),
-                                                                          e->button(), e->state() );
-       QApplication::sendEvent( reciever, me );
-}
-
-/*!
-  Sets wake delay time
-  \param theTime
-*/
-void QtxToolTip::setWakeUpDelayTime( int theTime )
-{
-  if( !(theTime < 0) )
-    myWakeUpDelayTime = theTime;
-}
-
-/*!
-  Sets show delay time
-  \param theTime
-*/
-void QtxToolTip::setShowDelayTime( int theTime )
-{
-  if( !(theTime < 0) )
-    myShowDelayTime = theTime;
-}
-
-/*!
-  \return timer measuring time of sleeping
-*/
-QTimer* QtxToolTip::sleepTimer() const
-{
-  return mySleepTimer;
-}
-
-/*!
-  \return timer measuring time of waking up
-*/
-QTimer* QtxToolTip::wakeUpTimer() const
-{
-  return myWakeUpTimer;
-}
diff --git a/src/Qtx/QtxToolTip.h b/src/Qtx/QtxToolTip.h
deleted file mode 100755 (executable)
index c8b9d70..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxToolTip.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXTOOLTIP_H
-#define QTXTOOLTIP_H
-
-#include "Qtx.h"
-
-#include <qlabel.h>
-
-class QTimer;
-
-class QTX_EXPORT QtxToolTip : public QLabel
-{
-       Q_OBJECT
-
-public:
-       QtxToolTip( QWidget* = 0 );
-       virtual ~QtxToolTip();
-
-       void          hideTip();
-  
-       virtual void  showTip( const QPoint& aPos,
-                         const QString& text, const QRect& aWidgetRegion );
-       virtual void  showTip( const QRect& aRegion,
-                         const QString& text, const QRect& aWidgetRegion );
-
-       virtual bool  eventFilter( QObject* o, QEvent* e );
-
-  void          setWakeUpDelayTime( int );
-  void          setShowDelayTime( int );
-
-  int           wakeUpDelayTime() const { return myWakeUpDelayTime; }
-  int           showDelayTime() const { return myShowDelayTime; }
-
-signals:
-  void          maybeTip( QPoint, QString&, QFont&, QRect&, QRect& );
-
-protected slots:
-       void          onSleepTimeOut();
-       void          onWakeUpTimeOut();
-
-protected:
-       virtual void  maybeTip( const QPoint& );
-       virtual void  mousePressEvent( QMouseEvent* );
-       virtual void  mouseDoubleClickEvent( QMouseEvent* );
-
-  QTimer*       sleepTimer() const;
-  QTimer*       wakeUpTimer() const;
-
-private:
-       QTimer*       myWakeUpTimer;
-       QTimer*       mySleepTimer;
-       QRect         myWidgetRegion;
-
-  int           myShowDelayTime;
-  int           myWakeUpDelayTime;
-};
-
-#endif
diff --git a/src/Qtx/QtxWorkspaceAction.cxx b/src/Qtx/QtxWorkspaceAction.cxx
deleted file mode 100644 (file)
index f06c5c2..0000000
+++ /dev/null
@@ -1,530 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxWorkspaceAction.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxWorkspaceAction.h"
-
-#include <qpopupmenu.h>
-#include <qworkspace.h>
-#include <qwidgetlist.h>
-
-/*!
-  Constructor
-*/
-QtxWorkspaceAction::QtxWorkspaceAction( QWorkspace* ws, QObject* parent, const char* name )
-: QtxAction( tr( "Controls windows into workspace" ), tr( "Workspace management" ), 0, parent, name ),
-myFlags( Standard ),
-myWorkspace( ws )
-{
-  myItem.insert( Cascade, new QtxAction( tr( "Arranges the windows as overlapping tiles" ),
-                                         tr( "Cascade" ), 0, this, 0, false ) );
-  myItem.insert( Tile,    new QtxAction( tr( "Arranges the windows as nonoverlapping tiles" ),
-                                         tr( "Tile" ), 0, this, 0, false ) );
-  myItem.insert( HTile,   new QtxAction( tr( "Arranges the windows as nonoverlapping horizontal tiles" ),
-                                         tr( "Tile horizontally" ), 0, this, 0, false ) );
-  myItem.insert( VTile,   new QtxAction( tr( "Arranges the windows as nonoverlapping vertical tiles" ),
-                                         tr( "Tile vertically" ), 0, this, 0, false ) );
-
-  connect( myItem[Tile], SIGNAL( activated() ), this, SLOT( tile() ) );
-  connect( myItem[Cascade], SIGNAL( activated() ), this, SLOT( cascade() ) );
-  connect( myItem[HTile], SIGNAL( activated() ), this, SLOT( tileVertical() ) );
-  connect( myItem[VTile], SIGNAL( activated() ), this, SLOT( tileHorizontal() ) );
-}
-
-/*!
-  Destructor
-*/
-QtxWorkspaceAction::~QtxWorkspaceAction()
-{
-}
-
-/*!
-  \return corresponding workspace
-*/
-QWorkspace* QtxWorkspaceAction::workspace() const
-{
-  return myWorkspace;
-}
-
-/*!
-  \return set of action flags
-*/
-int QtxWorkspaceAction::items() const
-{
-  return myFlags;
-}
-
-/*!
-  Sets action flags
-  \param flags - new set of flags
-*/
-void QtxWorkspaceAction::setItems( const int flags )
-{
-  if ( !flags || flags == myFlags || !( flags & Operations ) )
-    return;
-
-  myFlags = flags;
-}
-
-/*!
-  \return true if action contains all flags
-  \param flags - new set of flags
-*/
-bool QtxWorkspaceAction::hasItems( const int flags ) const
-{
-  return ( myFlags & flags ) == flags;
-}
-
-/*!
-  \return accelerator of item
-  \param id - item id
-*/
-int QtxWorkspaceAction::accel( const int id ) const
-{
-  int a = 0;
-  if ( myItem.contains( id ) )
-    a = myItem[id]->accel();
-  return a;
-}
-
-/*!
-  \return icons of item
-  \param id - item id
-*/
-QIconSet QtxWorkspaceAction::iconSet( const int id ) const
-{
-  QIconSet ico;
-  if ( myItem.contains( id ) )
-    ico = myItem[id]->iconSet();
-  return ico;
-}
-
-/*!
-  \return menu text of item
-  \param id - item id
-*/
-QString QtxWorkspaceAction::menuText( const int id ) const
-{
-  QString txt;
-  if ( myItem.contains( id ) )
-    txt = myItem[id]->menuText();
-  return txt;
-}
-
-/*!
-  \return status tip of item
-  \param id - item id
-*/
-QString QtxWorkspaceAction::statusTip( const int id ) const
-{
-  QString txt;
-  if ( myItem.contains( id ) )
-    txt = myItem[id]->statusTip();
-  return txt;
-}
-
-/*!
-  Changes accelerator of item
-  \param id - item id
-  \param a - new accelerator
-*/
-void QtxWorkspaceAction::setAccel( const int id, const int a )
-{
-  if ( myItem.contains( id ) )
-    myItem[id]->setAccel( a );
-}
-
-/*!
-  Changes icons of item
-  \param id - item id
-  \param ico - new icons
-*/
-void QtxWorkspaceAction::setIconSet( const int id, const QIconSet& ico )
-{
-  if ( myItem.contains( id ) )
-    myItem[id]->setIconSet( ico );
-}
-
-/*!
-  Changes menu text of item
-  \param id - item id
-  \param txt - new menu text
-*/
-void QtxWorkspaceAction::setMenuText( const int id, const QString& txt )
-{
-  if ( myItem.contains( id ) )
-    myItem[id]->setMenuText( txt );
-}
-
-/*!
-  Changes status tip of item
-  \param id - item id
-  \param txt - new status tip
-*/
-void QtxWorkspaceAction::setStatusTip( const int id, const QString& txt )
-{
-  if ( myItem.contains( id ) )
-    myItem[id]->setStatusTip( txt );
-}
-
-/*!
-  Adds action to widget
-  \param wid - widget
-*/
-bool QtxWorkspaceAction::addTo( QWidget* wid )
-{
-  return addTo( wid, -1 );
-}
-
-/*!
-  Adds action to widget
-  \param wid - widget
-  \param idx - position
-*/
-bool QtxWorkspaceAction::addTo( QWidget* wid, const int idx )
-{
-  if ( !wid || !wid->inherits( "QPopupMenu" ) )
-    return false;
-
-  QPopupMenu* pm = (QPopupMenu*)wid;
-  checkPopup( pm );
-
-  if ( myMenu.contains( pm ) )
-    return false;
-
-  myMenu.insert( pm, QIntList() );
-  fillPopup( pm, idx );
-
-  connect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-  connect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onPopupDestroyed( QObject* ) ) );
-
-  return true;
-}
-
-/*!
-  Removes action from widget
-  \param wid - widget
-*/
-bool QtxWorkspaceAction::removeFrom( QWidget* wid )
-{
-  if ( !wid || !wid->inherits( "QPopupMenu" ) )
-    return false;
-
-  QPopupMenu* pm = (QPopupMenu*)wid;
-  if ( !myMenu.contains( pm ) )
-    return false;
-
-  clearPopup( pm );
-
-  disconnect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-  disconnect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onPopupDestroyed( QObject* ) ) );
-
-  myMenu.remove( pm );
-
-  return true;
-}
-
-/*!
-  Performs action
-  \param type - action type
-*/
-void QtxWorkspaceAction::perform( const int type )
-{
-  switch ( type )
-  {
-  case Cascade:
-    cascade();
-    break;
-  case Tile:
-    tile();
-    break;
-  case VTile:
-    tileVertical();
-    break;
-  case HTile:
-    tileHorizontal();
-    break;
-  }
-}
-
-/*!
-  Performs tile action
-*/
-void QtxWorkspaceAction::tile()
-{
-  QWorkspace* ws = workspace();
-  if ( !ws )
-    return;
-
-  ws->tile();
-}
-
-/*!
-  Performs cascade action
-*/
-void QtxWorkspaceAction::cascade()
-{
-  QWorkspace* ws = workspace();
-  if ( !ws )
-    return;
-
-  ws->cascade();
-
-       int w = ws->width();
-       int h = ws->height();
-
-       QWidgetList winList = ws->windowList();
-       for ( QWidgetListIt it( winList ); it.current(); ++it )
-               it.current()->resize( int( w * 0.8 ), int( h * 0.8 ) );
-}
-
-/*!
-  Performs tile vertical action
-*/
-void QtxWorkspaceAction::tileVertical()
-{
-  QWorkspace* wrkSpace = workspace();
-       if ( !wrkSpace )
-               return;
-       
-       QWidgetList winList = wrkSpace->windowList();
-       if ( winList.isEmpty() )
-    return;
-
-  int count = 0;
-       for ( QWidgetListIt itr( winList ); itr.current(); ++itr )
-    if ( !itr.current()->testWState( WState_Minimized ) )
-      count++;
-
-  if ( !count )
-    return;
-
-       int y = 0;
-
-       int heightForEach = wrkSpace->height() / count;
-       for ( QWidgetListIt it( winList ); it.current(); ++it )
-       {
-    QWidget* win = it.current();
-    if ( win->testWState( WState_Minimized ) )
-      continue;
-
-    if ( win->testWState( WState_Maximized ) )
-               {
-                       win->hide();
-                       win->showNormal();
-    }
-    int prefH = win->minimumHeight() + win->parentWidget()->baseSize().height();
-    int actualH = QMAX( heightForEach, prefH );
-
-    win->parentWidget()->setGeometry( 0, y, wrkSpace->width(), actualH );
-    y += actualH;
-       }
-}
-
-/*!
-  Performs tile horizontal action
-*/
-void QtxWorkspaceAction::tileHorizontal()
-{
-  QWorkspace* wrkSpace = workspace();
-       if ( !wrkSpace )
-               return;
-
-       QWidgetList winList = wrkSpace->windowList();
-       if ( winList.isEmpty() )
-    return;
-
-  int count = 0;
-       for ( QWidgetListIt itr( winList ); itr.current(); ++itr )
-    if ( !itr.current()->testWState( WState_Minimized ) )
-      count++;
-
-  if ( !count )
-    return;
-
-       int x = 0;
-       int widthForEach = wrkSpace->width() / count;
-       for ( QWidgetListIt it( winList ); it.current(); ++it )
-       {
-    QWidget* win = it.current();
-    if ( win->testWState( WState_Minimized ) )
-      continue;
-
-    if ( win->testWState( WState_Maximized ) )
-               {
-                       win->hide();
-                       win->showNormal();
-    }
-    int prefW = win->minimumWidth();
-    int actualW = QMAX( widthForEach, prefW );
-        
-               win->parentWidget()->setGeometry( x, 0, actualW, wrkSpace->height() );
-    x += actualW;
-       }
-}
-
-/*!
-  SLOT: called just before the popup menu is displayed, updates popup
-*/
-void QtxWorkspaceAction::onAboutToShow()
-{
-  const QObject* obj = sender();
-  if ( !obj || !obj->inherits( "QPopupMenu" ) )
-    return;
-
-  updatePopup( (QPopupMenu*)obj );
-}
-
-/*!
-  SLOT: called when popup menu is destroyed, removes it from menu
-*/
-void QtxWorkspaceAction::onPopupDestroyed( QObject* obj )
-{
-  myMenu.remove( (QPopupMenu*)obj );
-}
-
-/*!
-  Updates popup
-  \param pm - popup menu
-*/
-void QtxWorkspaceAction::checkPopup( QPopupMenu* pm )
-{
-  if ( !myMenu.contains( pm ) )
-    return;
-
-  QIntList updList;
-  for ( QIntList::const_iterator it = myMenu[pm].begin(); it != myMenu[pm].end(); ++it )
-  {
-    if ( pm->indexOf( *it ) != -1 )
-      updList.append( *it );
-  }
-
-  myMenu.remove( pm );
-
-  if ( !updList.isEmpty() )
-    myMenu.insert( pm, updList );
-  else
-  {
-    disconnect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-    disconnect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onPopupDestroyed( QObject* ) ) );
-  }
-}
-
-/*!
-  Clears and refills popup and updates state of actions
-  \param pm - popup menu
-*/
-void QtxWorkspaceAction::updatePopup( QPopupMenu* pm )
-{
-  if ( !myMenu.contains( pm ) )
-    return;
-
-  fillPopup( pm, clearPopup( pm ) );
-
-  bool count = workspace() ? workspace()->windowList().count() : 0;
-  myItem[Cascade]->setEnabled( count );
-  myItem[Tile]->setEnabled( count );
-  myItem[HTile]->setEnabled( count );
-  myItem[VTile]->setEnabled( count );
-}
-
-/*!
-  Clears popup
-  \param pm - popup menu
-*/
-int QtxWorkspaceAction::clearPopup( QPopupMenu* pm )
-{
-  if ( !myMenu.contains( pm ) )
-    return -1;
-
-  int idx = -1;
-  const QIntList& lst = myMenu[pm];
-  for ( QIntList::const_iterator it = lst.begin(); it != lst.end() && idx == -1; ++it )
-    idx = pm->indexOf( *it );
-
-  for ( ItemMap::ConstIterator mit = myItem.begin(); mit != myItem.end(); ++mit )
-    mit.data()->removeFrom( pm );
-
-  for ( QIntList::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
-    pm->removeItem( *itr );
-
-  return idx;
-}
-
-/*!
-  Fills popup with items
-  \param pm - popup menu
-  \param idx - position
-*/
-void QtxWorkspaceAction::fillPopup( QPopupMenu* pm, const int idx )
-{
-  if ( !pm )
-    return;
-
-  int index = idx < 0 ? pm->count() : QMIN( (int)pm->count(), idx );
-
-  myMenu.insert( pm, QIntList() );
-  QIntList& lst = myMenu[pm];
-
-  for ( ItemMap::ConstIterator mit = myItem.begin(); mit != myItem.end(); ++mit )
-  {
-    if ( !hasItems( mit.key() ) )
-      continue;
-
-    mit.data()->addTo( pm, index );
-    lst.append( pm->idAt( index++ ) );
-  }
-
-  QWorkspace* ws = workspace();
-  if ( !ws || !hasItems( Windows ) )
-    return;
-
-  QWidgetList wList = ws->windowList();
-  if ( wList.isEmpty() )
-    return;
-
-  lst.append( pm->insertSeparator( index++ ) );
-
-  int param = 0;
-  pm->setCheckable( true );
-  for ( QWidgetListIt it( wList ); it.current(); ++it )
-  {
-    int id = pm->insertItem( it.current()->caption(), this, SLOT( onItemActivated( int ) ), 0, -1, index++ );
-    pm->setItemParameter( id, param++ );
-    pm->setItemChecked( id, it.current() == ws->activeWindow() );
-    lst.append( id );
-  }
-}
-
-/*!
-  SLOT: called when popup item corresponding to window is activated, activates window
-*/
-void QtxWorkspaceAction::onItemActivated( int idx )
-{
-  QWorkspace* ws = workspace();
-  if ( !ws )
-    return;
-
-  QWidgetList wList = ws->windowList();
-  if ( idx < 0 || idx >= (int)wList.count() )
-    return;
-
-  wList.at( idx )->setFocus();
-}
diff --git a/src/Qtx/QtxWorkspaceAction.h b/src/Qtx/QtxWorkspaceAction.h
deleted file mode 100644 (file)
index 2dfee9c..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxWorkspaceAction.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXWORKSPACEACTION_H
-#define QTXWORKSPACEACTION_H
-
-#include "QtxAction.h"
-
-class QWorkspace;
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QTX_EXPORT QtxWorkspaceAction : public QtxAction
-{
-  Q_OBJECT
-
-public:
-  enum { Cascade    = 0x0001,
-         Tile       = 0x0002,
-         VTile      = 0x0004,
-         HTile      = 0x0008,
-         Windows    = 0x0010,
-         Standard   = Cascade | Tile | Windows,
-         Operations = Cascade | Tile | VTile | HTile,
-         All        = Standard | HTile | VTile };
-
-public:
-  QtxWorkspaceAction( QWorkspace*, QObject* = 0, const char* = 0 );
-  virtual ~QtxWorkspaceAction();
-
-  QWorkspace*  workspace() const;
-
-  int          items() const;
-  void         setItems( const int );
-  bool         hasItems( const int ) const;
-
-  int          accel( const int ) const;
-  QIconSet     iconSet( const int ) const;
-  QString      menuText( const int ) const;
-  QString      statusTip( const int ) const;
-
-  void         setAccel( const int, const int );
-  void         setIconSet( const int, const QIconSet& );
-  void         setMenuText( const int, const QString& );
-  void         setStatusTip( const int, const QString& );
-
-  virtual bool addTo( QWidget* );
-  virtual bool addTo( QWidget*, const int );
-  virtual bool removeFrom( QWidget* );
-
-  void         perform( const int );
-
-public slots:
-  void         tile();
-  void         cascade();
-  void         tileVertical();
-  void         tileHorizontal();
-
-private slots:
-  void         onAboutToShow();
-  void         onItemActivated( int );
-  void         onPopupDestroyed( QObject* );
-
-private:
-  void         checkPopup( QPopupMenu* );
-  void         updatePopup( QPopupMenu* );
-
-  int          clearPopup( QPopupMenu* );
-  void         fillPopup( QPopupMenu*, const int );
-
-private:
-  typedef QMap<QPopupMenu*, QIntList> MenuMap;
-  typedef QMap<int, QtxAction*>       ItemMap;
-
-private:
-  MenuMap      myMenu;
-  ItemMap      myItem;
-  int          myFlags;
-  QWorkspace*  myWorkspace;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
index 3cf22f41384375b6e1237c40fd8c6f83745555cd..263f2e699c2972c57e1843f041eb4cce974896a9 100644 (file)
 
 #include "QtxWorkstack.h"
 
-#include <qstyle.h>
-#include <qimage.h>
-#include <qaction.h>
-#include <qlayout.h>
-#include <qpixmap.h>
-#include <qiconset.h>
-#include <qpainter.h>
-#include <qsplitter.h>
-#include <qpopupmenu.h>
-#include <qobjectlist.h>
-#include <qpushbutton.h>
-#include <qwidgetstack.h>
-#include <qapplication.h>
-#include <qinputdialog.h>
-#include <qevent.h>
-#include <qregexp.h>
-
-#define DARK_COLOR_LIGHT      250
+#include "QtxAction.h"
+
+#include <QtCore/qregexp.h>
+
+#include <QtGui/qmenu.h>
+#include <QtGui/qicon.h>
+#include <QtGui/qevent.h>
+#include <QtGui/qstyle.h>
+#include <QtGui/qimage.h>
+#include <QtGui/qlayout.h>
+#include <QtGui/qpixmap.h>
+#include <QtGui/qpainter.h>
+#include <QtGui/qsplitter.h>
+#include <QtGui/qrubberband.h>
+#include <QtGui/qpushbutton.h>
+#include <QtGui/qapplication.h>
+#include <QtGui/qinputdialog.h>
+#include <QtGui/qstackedwidget.h>
+
+#define DARK_COLOR_LIGHT 250
 
 /*!
   Constructor
@@ -50,17 +52,19 @@ myArea( 0 ),
 myWorkWin( 0 ),
 myWorkArea( 0 )
 {
-  myActionsMap.insert( SplitVertical,   new QAction( tr( "Split vertically" ),   0, this ) );
-  myActionsMap.insert( SplitHorizontal, new QAction( tr( "Split horizontally" ), 0, this ) );
-  myActionsMap.insert( Close,           new QAction( tr( "Close" ),       0, this ) );
-  myActionsMap.insert( Rename,          new QAction( tr( "Rename" ),      0, this ) );
+  myActionsMap.insert( SplitVertical,   new QtxAction( QString(), tr( "Split vertically" ), 0, this ) );
+  myActionsMap.insert( SplitHorizontal, new QtxAction( QString(), tr( "Split horizontally" ), 0, this ) );
+  myActionsMap.insert( Close,           new QtxAction( QString(), tr( "Close" ), 0, this ) );
+  myActionsMap.insert( Rename,          new QtxAction( QString(), tr( "Rename" ), 0, this ) );
 
-  connect( myActionsMap[SplitVertical], SIGNAL( activated() ), this, SLOT( splitVertical() ) );
-  connect( myActionsMap[SplitHorizontal], SIGNAL( activated() ), this, SLOT( splitHorizontal() ) );
-  connect( myActionsMap[Close], SIGNAL( activated() ), this, SLOT( onCloseWindow() ) );
-  connect( myActionsMap[Rename], SIGNAL( activated() ), this, SLOT( onRename() ) );
+  connect( myActionsMap[SplitVertical], SIGNAL( triggered( bool ) ), this, SLOT( splitVertical() ) );
+  connect( myActionsMap[SplitHorizontal], SIGNAL( triggered( bool ) ), this, SLOT( splitHorizontal() ) );
+  connect( myActionsMap[Close], SIGNAL( triggered( bool ) ), this, SLOT( onCloseWindow() ) );
+  connect( myActionsMap[Rename], SIGNAL( triggered( bool ) ), this, SLOT( onRename() ) );
 
   QVBoxLayout* base = new QVBoxLayout( this );
+  base->setMargin( 0 );
+
   mySplit = new QSplitter( this );
   mySplit->setChildrenCollapsible( false );
   base->addWidget( mySplit );
@@ -78,15 +82,15 @@ QtxWorkstack::~QtxWorkstack()
 */
 QWidgetList QtxWorkstack::windowList() const
 {
-  QPtrList<QtxWorkstackArea> lst;
+  QList<QtxWorkstackArea*> lst;
   areas( mySplit, lst, true );
 
   QWidgetList widList;
-  for ( QPtrListIterator<QtxWorkstackArea> it( lst ); it.current(); ++it )
+  for ( QList<QtxWorkstackArea*>::iterator it = lst.begin(); it != lst.end(); ++it )
   {
-    QWidgetList wids = it.current()->widgetList();
-    for ( QWidgetListIt itr( wids ); itr.current(); ++itr )
-      widList.append( itr.current() );
+    QWidgetList wids = (*it)->widgetList();
+    for ( QWidgetList::iterator itr = wids.begin(); itr != wids.end(); ++itr )
+      widList.append( *itr );
   }
 
   return widList;
@@ -128,10 +132,10 @@ void QtxWorkstack::split( const int o )
     return;
 
   QSplitter* s = splitter( area );
-  QPtrList<QtxWorkstackArea> areaList;
+  QList<QtxWorkstackArea*> areaList;
   areas( s, areaList );
 
-  QPtrList<QSplitter> splitList;
+  QList<QSplitter*> splitList;
   splitters( s, splitList );
 
   QSplitter* trg = 0;
@@ -144,10 +148,10 @@ void QtxWorkstack::split( const int o )
   if ( !trg )
     return;
 
-  trg->setOrientation( (Orientation)o );
+  trg->setOrientation( (Qt::Orientation)o );
 
   QtxWorkstackArea* newArea = createArea( 0 );
-  insertWidget( newArea, trg, area );
+  trg->insertWidget( trg->indexOf( area ) + 1, newArea );
 
   area->removeWidget( curWid );
   newArea->insertWidget( curWid );
@@ -164,31 +168,34 @@ void QtxWorkstack::split( const int o )
  \param o    - orientation of splitting (Qt::Horizontal or Qt::Vertical)
  \param type - type of splitting, see <VAR>SplitType</VAR> enumeration
 */
-void QtxWorkstack::Split (QWidget* wid, const Qt::Orientation o, const SplitType type)
+void QtxWorkstack::Split( QWidget* wid, const Qt::Orientation o, const SplitType type )
 {
   if (!wid) return;
 
   // find area of the given widget
   QtxWorkstackArea* area = NULL;
-  QPtrList<QtxWorkstackArea> allAreas;
+  QList<QtxWorkstackArea*> allAreas;
   areas(mySplit, allAreas, true);
 
-  QPtrListIterator<QtxWorkstackArea> it (allAreas);
-  for (; it.current() && !area; ++it) {
-    if (it.current()->contains(wid))
-      area = it.current();
+  
+  for ( QList<QtxWorkstackArea*>::iterator it = allAreas.begin(); it != allAreas.end() && !area; ++it )
+  {
+    if ( (*it)->contains( wid ) )
+      area = *it;
   }
-  if (!area) return;
+
+  if ( !area )
+    return;
 
   QWidgetList wids = area->widgetList();
-  if (wids.count() < 2)
+  if ( wids.count() < 2 )
     return;
 
-  QSplitter* s = splitter(area);
-  QPtrList<QtxWorkstackArea> areaList;
-  areas(s, areaList);
+  QSplitter* s = splitter( area );
+  QList<QtxWorkstackArea*> areaList;
+  areas( s, areaList );
 
-  QPtrList<QSplitter> splitList;
+  QList<QSplitter*> splitList;
   splitters(s, splitList);
 
   QSplitter* trg = 0;
@@ -203,64 +210,40 @@ void QtxWorkstack::Split (QWidget* wid, const Qt::Orientation o, const SplitType
   QtxWorkstackArea* newArea = createArea(0);
   insertWidget(newArea, trg, area);
 
-  switch (type) {
+  switch ( type )
+  {
   case SPLIT_STAY:
+    for ( QWidgetList::iterator itr = wids.begin(); itr != wids.end(); ++itr )
     {
-      QWidgetListIt itr (wids);
-      for (; itr.current(); ++itr)
+      QWidget* wid_i = *itr;
+      if ( wid_i != wid )
       {
-        QWidget* wid_i = itr.current();
-        if (wid_i != wid) {
-          area->removeWidget(wid_i);
-          newArea->insertWidget(wid_i);
-        }
+        area->removeWidget( wid_i );
+        newArea->insertWidget( wid_i );
       }
     }
     break;
   case SPLIT_AT:
     {
-      QWidgetListIt itr (wids);
-      for (; itr.current() && itr.current() != wid; ++itr) {
+      QWidgetList::iterator itr = wids.begin();
+      for ( ; itr != wids.end() && *itr != wid; ++itr )
+      {
       }
-      for (; itr.current(); ++itr) {
-        area->removeWidget(itr.current());
-        newArea->insertWidget(itr.current());
+      for ( ; itr != wids.end(); ++itr )
+      {
+        area->removeWidget( *itr );
+        newArea->insertWidget( *itr );
       }
     }
     break;
   case SPLIT_MOVE:
-    area->removeWidget(wid);
-    newArea->insertWidget(wid);
+    area->removeWidget( wid );
+    newArea->insertWidget( wid );
     break;
   }
 
-  distributeSpace(trg);
-}
-
-/*!
- \brief Put given widget on top of its workarea
- \param wid - widget, belonging to this workstack
-*/
-/*
-void QtxWorkstack::OnTop (QWidget* wid)
-{
-  if ( !wid )
-    return;
-
-  // find area of the given widget
-  QtxWorkstackArea* area = 0;
-  QPtrList<QtxWorkstackArea> allAreas;
-  areas( mySplit, allAreas, true );
-  for ( QPtrListIterator<QtxWorkstackArea> it( allAreas ); it.current() && !area; ++it )
-  {
-    if ( it.current()->contains( wid ) )
-      area = it.current();
-  }
-
-  if ( area )
-    area->setActiveWidget( wid );
+  distributeSpace( trg );
 }
-*/
 
 /*!
  \brief Move widget(s) from source workarea into target workarea
@@ -275,64 +258,73 @@ void QtxWorkstack::OnTop (QWidget* wid)
  will be moved together with \a wid2, source workarea will be deleted.
  If \a wid1 and \a wid2 belongs to one workarea, simple reordering will take place.
 */
-void QtxWorkstack::Attract ( QWidget* wid1, QWidget* wid2, const bool all )
+void QtxWorkstack::Attract( QWidget* wid1, QWidget* wid2, const bool all )
 {
   if ( !wid1 || !wid2 )
     return;
 
   // find area of the widgets
-  QtxWorkstackArea *area1 = NULL, *area2 = NULL;
-  QPtrList<QtxWorkstackArea> allAreas;
-  areas(mySplit, allAreas, true);
-  QPtrListIterator<QtxWorkstackArea> it (allAreas);
-  for (; it.current() && !(area1 && area2); ++it) {
-    if (it.current()->contains(wid1))
-      area1 = it.current();
-    if (it.current()->contains(wid2))
-      area2 = it.current();
+  QtxWorkstackArea *area1 = 0, *area2 = 0;
+  QList<QtxWorkstackArea*> allAreas;
+  areas( mySplit, allAreas, true );
+  for ( QList<QtxWorkstackArea*>::iterator it = allAreas.begin(); it != allAreas.end() && !( area1 && area2 ); ++it )
+  {
+    if ( (*it)->contains( wid1 ) )
+      area1 = *it;
+
+    if ( (*it)->contains( wid2 ) )
+      area2 = *it;
   }
-  if (!area1 || !area2) return;
+
+  if ( !area1 || !area2 )
+    return;
 
   QWidget* curWid = area1->activeWidget();
-  if (!curWid) return;
+  if ( !curWid )
+    return;
 
-  if (area1 == area2) {
-    if (all) {
+  if ( area1 == area2 )
+  {
+    if ( all )
+    {
       // Set wid1 at first position, wid2 at second
-      area1->insertWidget(wid1);
-      area1->insertWidget(wid2, 1);
-    } else {
+      area1->insertWidget( wid1 );
+      area1->insertWidget( wid2, 1 );
+    }
+    else
+    {
       // Set wid2 right after wid1
-      area1->removeWidget(wid2);
+      area1->removeWidget( wid2 );
       int wid1_ind = 0;
       QWidgetList wids1 = area1->widgetList();
-      QWidgetListIt itr1 (wids1);
-      for (; itr1.current() && itr1.current() != wid1; ++itr1, ++wid1_ind);
-      area1->insertWidget(wid2, wid1_ind + 1);
+      for ( QWidgetList::iterator itr1 = wids1.begin(); itr1 != wids1.end() && *itr1 != wid1; ++itr1, ++wid1_ind );
+      area1->insertWidget( wid2, wid1_ind + 1 );
     }
-  } else {
+  }
+  else
+  {
     int wid1_ind = 0;
     QWidgetList wids1 = area1->widgetList();
-    QWidgetListIt itr1 (wids1);
-    for (; itr1.current() && itr1.current() != wid1; ++itr1, ++wid1_ind);
-
-    if (all) {
+    for ( QWidgetList::iterator itr1 = wids1.begin(); itr1 != wids1.end() && *itr1 != wid1; ++itr1, ++wid1_ind );
+    if ( all )
+    {
       // Set wid2 right after wid1, other widgets from area2 right after wid2
       QWidgetList wids2 = area2->widgetList();
-      QWidgetListIt itr2 (wids2);
-      for (int ind = wid1_ind + 1; itr2.current(); ++itr2, ++ind)
+      QWidgetList::iterator itr2 = wids2.begin();
+      for ( int ind = wid1_ind + 1; itr2 != wids2.end(); ++itr2, ++ind )
       {
-        area2->removeWidget(itr2.current());
-        if (itr2.current() == wid2) {
-          area1->insertWidget(itr2.current(), wid1_ind + 1);
-        } else {
-          area1->insertWidget(itr2.current(), ind);
-        }
+        area2->removeWidget( *itr2 );
+        if ( *itr2 == wid2 )
+          area1->insertWidget( *itr2, wid1_ind + 1 );
+        else
+          area1->insertWidget( *itr2, ind );
       }
-    } else {
+    }
+    else
+    {
       // Set wid2 right after wid1
-      area2->removeWidget(wid2);
-      area1->insertWidget(wid2, wid1_ind + 1);
+      area2->removeWidget( wid2 );
+      area1->insertWidget( wid2, wid1_ind + 1 );
     }
   }
 
@@ -375,14 +367,12 @@ void QtxWorkstack::SetRelativePositionInSplitter( QWidget* wid, const double pos
 
   // find area of the given widget
   QtxWorkstackArea* area = NULL;
-  QPtrList<QtxWorkstackArea> allAreas;
-  areas(mySplit, allAreas, true);
-  for ( QPtrListIterator<QtxWorkstackArea> it( allAreas );
-       it.current() && !area;
-       ++it )
+  QList<QtxWorkstackArea*> allAreas;
+  areas( mySplit, allAreas, true );
+  for ( QList<QtxWorkstackArea*>::iterator it = allAreas.begin(); it != allAreas.end() && !area; ++it )
   {
-    if (it.current()->contains(wid))
-      area = it.current();
+    if ( (*it)->contains( wid ) )
+      area = *it;
   }
 
   if ( !area )
@@ -395,24 +385,24 @@ void QtxWorkstack::SetRelativePositionInSplitter( QWidget* wid, const double pos
   // find index of the area in its splitter
   int item_ind = -1;
   bool isFound = false;
-  const QObjectList* was = split->children();
-  for (QObjectListIt ito (*was); ito.current() && !isFound; ++ito, ++item_ind)
+  const QObjectList& was = split->children();
+  for ( QObjectList::const_iterator ito = was.begin(); ito != was.end() && !isFound; ++ito, ++item_ind )
   {
-    if (ito.current() == area)
+    if ( *ito == area )
       isFound = true;
   }
-  if (!isFound || item_ind == 0)
+
+  if ( !isFound || item_ind == 0 )
     return;
 
   QIntList szList = split->sizes();
-  int splitter_size = (split->orientation() == Horizontal ?
-                       split->width() : split->height());
+  int splitter_size = ( split->orientation() == Qt::Horizontal ? split->width() : split->height());
   int nb = szList.count();
 
-  int new_prev = int(splitter_size * position / item_ind);
-  int new_next  = int(splitter_size * (1.0 - position) / (nb - item_ind));
-  setSizes (szList, item_ind, new_prev, new_next, new_next);
-  split->setSizes(szList);
+  int new_prev = int( splitter_size * position / item_ind );
+  int new_next = int( splitter_size * ( 1.0 - position ) / ( nb - item_ind ) );
+  setSizes( szList, item_ind, new_prev, new_next, new_next );
+  split->setSizes( szList );
 }
 
 /*!
@@ -432,7 +422,7 @@ void QtxWorkstack::SetRelativePosition( QWidget* wid, const Qt::Orientation o,
   if ( !wid )
     return;
 
-  int splitter_size = o == Horizontal ? mySplit->width() : mySplit->height();
+  int splitter_size = o == Qt::Horizontal ? mySplit->width() : mySplit->height();
   int need_pos = int( position * splitter_size );
   int splitter_pos = 0;
 
@@ -452,7 +442,7 @@ void QtxWorkstack::setAccel( const int id, const int accel )
   if ( !myActionsMap.contains( id ) )
     return;
 
-  myActionsMap[id]->setAccel( accel );
+  myActionsMap[id]->setShortcut( accel );
 }
 
 /*!
@@ -464,7 +454,7 @@ int QtxWorkstack::accel( const int id ) const
 {
   int res = 0;
   if ( myActionsMap.contains( id ) )
-    res = myActionsMap[id]->accel();
+    res = myActionsMap[id]->shortcut();
   return res;
 }
 
@@ -554,41 +544,44 @@ int QtxWorkstack::setPosition( QWidget* wid, QSplitter* split, const Qt::Orienta
   int cur_ind = 0, item_ind = 0;
   bool isBottom = false, isFound = false;
   QSplitter* sub_split = NULL;
-  const QObjectList* objs = split->children();
-  if ( objs )
+  const QObjectList& objs = split->children();
+  for ( QObjectList::const_iterator it = objs.begin(); it != objs.end() && !isFound; ++it )
   {
-    for (QObjectListIt it (*objs); it.current() && !isFound; ++it)
+    QtxWorkstackArea* area = ::qobject_cast<QtxWorkstackArea*>( *it );
+    if ( area )
+    {
+      if ( area->contains( wid ) )
+      {
+        item_ind = cur_ind;
+        isBottom = true;
+        isFound = true;
+      }
+      cur_ind++;
+    }
+    else if ( (*it)->inherits( "QSplitter" ) )
     {
-      if (it.current()->inherits( "QtxWorkstackArea")) {
-        if (((QtxWorkstackArea*)it.current())->contains(wid)) {
+      QList<QtxWorkstackArea*> areaList;
+      areas( (QSplitter*)(*it), areaList, true );
+      for ( QList<QtxWorkstackArea*>::iterator ita = areaList.begin(); ita != areaList.end() && !isFound; ++ita )
+      {
+        if ( (*ita)->contains( wid ) )
+        {
           item_ind = cur_ind;
-          isBottom = true;
           isFound = true;
+          sub_split = (QSplitter*)*it;
         }
-        cur_ind++;
-      } else if (it.current()->inherits("QSplitter")) {
-        QPtrList<QtxWorkstackArea> areaList;
-        areas((QSplitter*)it.current(), areaList, true);
-        for (QPtrListIterator<QtxWorkstackArea> ita (areaList);
-             ita.current() && !isFound;
-             ++ita)
-        {
-          if (ita.current()->contains(wid)) {
-            item_ind = cur_ind;
-            isFound = true;
-            sub_split = (QSplitter*)it.current();
-          }
-        }
-        cur_ind++;
       }
+      cur_ind++;
     }
   }
-  if (!isFound)
-    return (need_pos - splitter_pos);
 
-  if (split->orientation() == o) {
+  if ( !isFound )
+    return ( need_pos - splitter_pos );
+
+  if ( split->orientation() == o )
+  {
     // Find coordinates of near and far sides of the appropriate item relatively current splitter
-    int splitter_size = (o == Horizontal ? split->width() : split->height());
+    int splitter_size = ( o == Qt::Horizontal ? split->width() : split->height() );
     QIntList szList = split->sizes();
     int nb = szList.count();
     int item_rel_pos = 0; // position of near side of item relatively this splitter
@@ -734,7 +727,7 @@ void QtxWorkstack::distributeSpace( QSplitter* split ) const
     return;
 
   QIntList szList = split->sizes();
-  int size = ( split->orientation() == Horizontal ?
+  int size = ( split->orientation() == Qt::Horizontal ?
                split->width() : split->height() ) / szList.count();
   for ( QIntList::iterator it = szList.begin(); it != szList.end(); ++it )
     *it = size;
@@ -766,10 +759,10 @@ void QtxWorkstack::onRename()
     return;
 
   bool ok = false;
-  QString newName = QInputDialog::getText( tr( "Rename" ), tr( "Enter new name:" ), QLineEdit::Normal,
-                                           myWorkWin->caption(), &ok, topLevelWidget() );
+  QString newName = QInputDialog::getText( topLevelWidget(),  tr( "Rename" ), tr( "Enter new name:" ),
+                                           QLineEdit::Normal, myWorkWin->windowTitle(), &ok );
   if ( ok && !newName.isEmpty() )
-    myWorkWin->setCaption( newName );
+    myWorkWin->setWindowTitle( newName );
 }
 
 /*!
@@ -785,7 +778,7 @@ QSplitter* QtxWorkstack::wrapSplitter( QtxWorkstackArea* area )
   if ( !pSplit )
     return 0;
 
-  bool upd = pSplit->isUpdatesEnabled();
+  bool upd = pSplit->updatesEnabled();
   pSplit->setUpdatesEnabled( false );
 
   QIntList szList = pSplit->sizes();
@@ -794,8 +787,9 @@ QSplitter* QtxWorkstack::wrapSplitter( QtxWorkstackArea* area )
 #if defined QT_VERSION && QT_VERSION >= 0x30200
   wrap->setChildrenCollapsible( false );
 #endif
-  insertWidget( wrap, pSplit, area );
-  area->reparent( wrap, QPoint( 0, 0 ), true );
+  pSplit->insertWidget( pSplit->indexOf( area ) + 1, wrap );
+  wrap->setVisible( true );
+  wrap->addWidget( area );
 
   pSplit->setSizes( szList );
 
@@ -816,31 +810,32 @@ void QtxWorkstack::insertWidget( QWidget* wid, QWidget* pWid, QWidget* after )
     return;
 
   QWidgetList moveList;
-  const QObjectList* lst = pWid->children();
-  if ( lst )
+  const QObjectList& lst = pWid->children();
+  bool found = false;
+  for ( QObjectList::const_iterator it = lst.begin(); it != lst.end(); ++it )
   {
-    bool found = false;
-    for ( QObjectListIt it( *lst ); it.current(); ++it )
-    {
-      if ( found && ( it.current()->inherits( "QSplitter" ) ||
-                      it.current()->inherits( "QtxWorkstackArea" ) ) )
-        moveList.append( (QWidget*)it.current() );
-      if ( it.current() == after )
-        found = true;
-    }
+    if ( found && ( (*it)->inherits( "QSplitter" ) ||
+                    (*it)->inherits( "QtxWorkstackArea" ) ) )
+      moveList.append( (QWidget*)(*it) );
+    if ( *it == after )
+      found = true;
   }
 
   QMap<QWidget*, bool> map;
-  for ( QWidgetListIt it( moveList ); it.current(); ++it )
+  for ( QWidgetList::iterator it = moveList.begin(); it != moveList.end(); ++it )
   {
-    map.insert( it.current(), it.current()->isVisibleTo( it.current()->parentWidget() ) );
-    it.current()->reparent( 0, QPoint( 0, 0 ), false );
+    map.insert( *it, (*it)->isVisibleTo( (*it)->parentWidget() ) );
+    (*it)->setParent( 0 );
+    (*it)->hide();
   }
 
-  wid->reparent( pWid, QPoint( 0, 0 ), true );
+  wid->setParent( pWid );
 
-  for ( QWidgetListIt itr( moveList ); itr.current(); ++itr )
-    itr.current()->reparent( pWid, QPoint( 0, 0 ), map.contains( itr.current() ) ? map[itr.current()] : false );
+  for ( QWidgetList::iterator itr = moveList.begin(); itr != moveList.end(); ++itr )
+  {
+    (*itr)->setParent( pWid );
+    (*itr)->setShown( map.contains( *itr ) ? map[*itr] : false );
+  }
 }
 
 /*!
@@ -872,7 +867,7 @@ void QtxWorkstack::onDestroyed( QObject* obj )
       cur->setFocus();
   }
 
-  QApplication::postEvent( this, new QCustomEvent( QEvent::User ) );
+  QApplication::postEvent( this, new QEvent( QEvent::User ) );
 }
 
 /*!
@@ -895,10 +890,10 @@ void QtxWorkstack::onDeactivated( QtxWorkstackArea* area )
   if ( myArea != area )
     return;
 
-  QPtrList<QtxWorkstackArea> lst;
+  QList<QtxWorkstackArea*> lst;
   areas( mySplit, lst, true );
 
-  int idx = lst.find( area );
+  int idx = lst.indexOf( area );
   if ( idx == -1 )
     return;
 
@@ -909,7 +904,7 @@ void QtxWorkstack::onDeactivated( QtxWorkstackArea* area )
   if ( newArea && newArea->activeWidget() )
     newArea->activeWidget()->setFocus();
 
-  QApplication::postEvent( this, new QCustomEvent( QEvent::User ) );
+  QApplication::postEvent( this, new QEvent( QEvent::User ) );
 }
 
 /*!
@@ -919,7 +914,7 @@ void QtxWorkstack::onDeactivated( QtxWorkstackArea* area )
 */
 void QtxWorkstack::onContextMenuRequested( QWidget* w, QPoint p )
 {
-  QtxWorkstackArea* anArea = ::qt_cast<QtxWorkstackArea*>( (QObject*)sender() );
+  QtxWorkstackArea* anArea = ::qobject_cast<QtxWorkstackArea*>( (QObject*)sender() );
   if ( !anArea )
     anArea = activeArea();
 
@@ -933,24 +928,24 @@ void QtxWorkstack::onContextMenuRequested( QWidget* w, QPoint p )
   myWorkWin = w;
   myWorkArea = anArea;
 
-  QPopupMenu* pm = new QPopupMenu();
+  QMenu* pm = new QMenu();
   
   if ( lst.count() > 1 )
   {
-    myActionsMap[SplitVertical]->addTo( pm );
-    myActionsMap[SplitHorizontal]->addTo( pm );
-    pm->insertSeparator();
+    pm->addAction( myActionsMap[SplitVertical] );
+    pm->addAction( myActionsMap[SplitHorizontal] );
+    pm->addSeparator();
   }
 
   if ( w )
   {
-    myActionsMap[Close]->addTo( pm );
-    myActionsMap[Rename]->addTo( pm );
+    pm->addAction( myActionsMap[Close] );
+    pm->addAction( myActionsMap[Rename] );
   }
 
   Qtx::simplifySeparators( pm );
 
-  if ( pm->count() )
+  if ( !pm->actions().isEmpty() )
     pm->exec( p );
 
   delete pm;
@@ -959,27 +954,18 @@ void QtxWorkstack::onContextMenuRequested( QWidget* w, QPoint p )
   myWorkArea = 0;
 }
 
-/*!
-  Custom child event handler, inserts widget to active or current area
-*/
-void QtxWorkstack::childEvent( QChildEvent* e )
+QWidget* QtxWorkstack::addWindow( QWidget* w, Qt::WindowFlags f )
 {
-  if ( e->inserted() && e->child()->isWidgetType() )
-  {
-         QWidget* w = (QWidget*)e->child();
-         if ( w && w != mySplit )
-    {
-      targetArea()->insertWidget( w );
-      return;
-    }
-  }
-  QWidget::childEvent( e );
+  if ( !w )
+    return 0;
+
+  return targetArea()->insertWidget( w, -1, f );
 }
 
 /*!
   Handler of custom events
 */
-void QtxWorkstack::customEvent( QCustomEvent* e )
+void QtxWorkstack::customEvent( QEvent* e )
 {
   updateState();
 }
@@ -1008,21 +994,18 @@ QSplitter* QtxWorkstack::splitter( QtxWorkstackArea* area ) const
   \param splitList - list to be filled with
   \param rec - recursive search of children
 */
-void QtxWorkstack::splitters( QSplitter* split, QPtrList<QSplitter>& splitList, const bool rec ) const
+void QtxWorkstack::splitters( QSplitter* split, QList<QSplitter*>& splitList, const bool rec ) const
 {
   if ( !split )
     return;
 
-  const QObjectList* objs = split->children();
-  if ( objs )
+  const QObjectList& objs = split->children();
+  for ( QObjectList::const_iterator it = objs.begin(); it != objs.end(); ++it )
   {
-    for ( QObjectListIt it( *objs ); it.current(); ++it )
-    {
-      if ( rec )
-        splitters( (QSplitter*)it.current(), splitList, rec );
-      if ( it.current()->inherits( "QSplitter" ) )
-        splitList.append( (QSplitter*)it.current() );
-    }
+    if ( rec )
+      splitters( (QSplitter*)*it, splitList, rec );
+    if ( (*it)->inherits( "QSplitter" ) )
+      splitList.append( (QSplitter*)*it );
   }
 }
 
@@ -1032,21 +1015,18 @@ void QtxWorkstack::splitters( QSplitter* split, QPtrList<QSplitter>& splitList,
   \param areaList - list to be filled with
   \param rec - recursive search of children
 */
-void QtxWorkstack::areas( QSplitter* split, QPtrList<QtxWorkstackArea>& areaList, const bool rec ) const
+void QtxWorkstack::areas( QSplitter* split, QList<QtxWorkstackArea*>& areaList, const bool rec ) const
 {
   if ( !split )
     return;
 
-  const QObjectList* objs = split->children();
-  if ( objs )
+  const QObjectList& objs = split->children();
+  for ( QObjectList::const_iterator it = objs.begin(); it != objs.end(); ++it )
   {
-    for ( QObjectListIt it( *objs ); it.current(); ++it )
-    {
-      if ( it.current()->inherits( "QtxWorkstackArea" ) )
-        areaList.append( (QtxWorkstackArea*)it.current() );
-      else if ( rec && it.current()->inherits( "QSplitter" ) )
-        areas( (QSplitter*)it.current(), areaList, rec );
-    }
+    if ( (*it)->inherits( "QtxWorkstackArea" ) )
+      areaList.append( (QtxWorkstackArea*)*it );
+    else if ( rec && (*it)->inherits( "QSplitter" ) )
+      areas( (QSplitter*)*it, areaList, rec );
   }
 }
 
@@ -1068,7 +1048,7 @@ QtxWorkstackArea* QtxWorkstack::targetArea()
     area = currentArea();
   if ( !area )
   {
-    QPtrList<QtxWorkstackArea> lst;
+    QList<QtxWorkstackArea*> lst;
     areas( mySplit, lst );
     if ( !lst.isEmpty() )
       area = lst.first();
@@ -1146,9 +1126,9 @@ void QtxWorkstack::setActiveArea( QtxWorkstackArea* area )
 */
 QtxWorkstackArea* QtxWorkstack::neighbourArea( QtxWorkstackArea* area ) const
 {
-  QPtrList<QtxWorkstackArea> lst;
+  QList<QtxWorkstackArea*> lst;
   areas( mySplit, lst, true );
-  int pos = lst.find( area );
+  int pos = lst.indexOf( area );
   if ( pos < 0 )
     return 0;
 
@@ -1174,11 +1154,11 @@ QtxWorkstackArea* QtxWorkstack::neighbourArea( QtxWorkstackArea* area ) const
 QtxWorkstackArea* QtxWorkstack::areaAt( const QPoint& p ) const
 {
   QtxWorkstackArea* area = 0;
-  QPtrList<QtxWorkstackArea> lst;
+  QList<QtxWorkstackArea*> lst;
   areas( mySplit, lst, true );
-  for ( QPtrListIterator<QtxWorkstackArea> it( lst ); it.current() && !area; ++it )
+  for ( QList<QtxWorkstackArea*>::iterator it = lst.begin(); it != lst.end() && !area; ++it )
   {
-    QtxWorkstackArea* cur = it.current();
+    QtxWorkstackArea* cur = *it;
     QRect r = cur->geometry();
     if ( cur->parentWidget() )
       r = QRect( cur->parentWidget()->mapToGlobal( r.topLeft() ), r.size() );
@@ -1201,25 +1181,25 @@ void QtxWorkstack::updateState()
 */
 void QtxWorkstack::updateState( QSplitter* split )
 {
-  QPtrList<QSplitter> recList;
+  QList<QSplitter*> recList;
   splitters( split, recList, false );
-  for ( QPtrListIterator<QSplitter> itr( recList ); itr.current(); ++itr )
-    updateState( itr.current() );
+  for ( QList<QSplitter*>::iterator itr = recList.begin(); itr != recList.end(); ++itr )
+    updateState( *itr );
 
-  QPtrList<QSplitter> splitList;
+  QList<QSplitter*> splitList;
   splitters( split, splitList, false );
 
-  QPtrList<QtxWorkstackArea> areaList;
+  QList<QtxWorkstackArea*> areaList;
   areas( split, areaList, false );
 
   bool vis = false;
-  for ( QPtrListIterator<QtxWorkstackArea> it( areaList ); it.current(); ++it )
+  for ( QList<QtxWorkstackArea*>::iterator it = areaList.begin(); it != areaList.end(); ++it )
   {
-    if ( it.current()->isEmpty() )
-      it.current()->hide();
+    if ( (*it)->isEmpty() )
+      (*it)->hide();
     else
     {
-      it.current()->show();
+      (*it)->show();
       vis = true;
     }
   }
@@ -1227,8 +1207,8 @@ void QtxWorkstack::updateState( QSplitter* split )
   if ( split == mySplit )
     return;
 
-  for ( QPtrListIterator<QSplitter> iter( splitList ); iter.current() && !vis; ++iter )
-    vis = iter.current()->isVisibleTo( iter.current()->parentWidget() );
+  for ( QList<QSplitter*>::iterator iter = splitList.begin(); iter != splitList.end() && !vis; ++iter )
+    vis = (*iter)->isVisibleTo( (*iter)->parentWidget() );
 
   if ( areaList.isEmpty() && splitList.isEmpty() )
     delete split;
@@ -1248,48 +1228,40 @@ void QtxWorkstack::splitterInfo( QSplitter* split, QString& info ) const
   if ( !split )
     return;
 
-  const QObjectList* objs = split->children();
-  if ( objs )
+  const QObjectList& objs = split->children();
+
+  QString sizesStr;
+  QList<int> sizes = split->sizes();
+  for ( QList<int>::iterator sIt = sizes.begin(); sIt != sizes.end(); ++sIt )
   {
-    // make up a sizes string: integer values are separated by ':' char
-    QValueList<int> sizes = split->sizes();
-    QString sizesStr;
-    for ( QValueList<int>::Iterator sIt = sizes.begin(); sIt != sizes.end(); ++sIt ) {
-      if ( *sIt > 1 ) // size 1 pixel usually means empty Workstack area, which will NOT be re-created,
-       sizesStr += QString( ":%1" ).arg( *sIt );  // so we don't need to store its size
-    }
-    if ( !sizesStr.isEmpty() ) // cut the first ':'
-      sizesStr = sizesStr.right( sizesStr.length()-1 );    
-
-    // count all QSplitter-s and QtxWorkstackArea-s
-    //    int nChilds( 0 );
-    //    QObjectListIt it( *objs );
-    //    for ( ; it.current(); ++it )
-    //    {
-    //      if ( it.current()->inherits( "QSplitter" ) ||
-    //           it.current()->inherits( "QtxWorkstackArea" ) )
-    // nChilds++;
-    //    }
-      
-    info += QString( "(splitter orientation=%1 sizes=%3 " ).arg( split->orientation() ).arg( sizesStr );
+    if ( *sIt > 1 ) // size 1 pixel usually means empty Workstack area, which will NOT be re-created,
+           sizesStr += QString( ":%1" ).arg( *sIt );  // so we don't need to store its size
+  }
+
+  if ( !sizesStr.isEmpty() ) // cut the first ':'
+    sizesStr = sizesStr.right( sizesStr.length() - 1 );
+
+  info += QString( "(splitter orientation=%1 sizes=%3 " ).arg( split->orientation() ).arg( sizesStr );
     
-    for ( QObjectListIt it( *objs ); it.current(); ++it )
+  for ( QObjectList::const_iterator it = objs.begin(); it != objs.end(); ++it )
+  {
+    if ( (*it)->inherits( "QSplitter" ) )
+           splitterInfo( (QSplitter*)*it, info );
+    else if ( (*it)->inherits( "QtxWorkstackArea" ) )
     {
-      if ( it.current()->inherits( "QSplitter" ) )
-       splitterInfo( (QSplitter*)it.current(), info );
-      else if ( it.current()->inherits( "QtxWorkstackArea" ) ) {
-       QtxWorkstackArea* area = (QtxWorkstackArea*)it.current();
-       if ( area->isEmpty() )
-         continue;
-       info += QString( "(views active='%1'" ).arg( area->activeWidget()->name() );
-       QWidgetList views = area->widgetList();
-       for ( QWidgetListIt wIt( views ); wIt.current(); ++wIt )
-         info += QString( " '%1'" ).arg( wIt.current()->name() );
-       info += ')';
-      }
+           QtxWorkstackArea* area = (QtxWorkstackArea*)*it;
+           if ( area->isEmpty() )
+             continue;
+           info += QString( "(views active='%1'" ).arg( area->activeWidget()->objectName() );
+           QWidgetList views = area->widgetList();
+      for ( QWidgetList::iterator wIt = views.begin(); wIt != views.end(); ++wIt )
+             info += QString( " '%1'" ).arg( (*wIt)->objectName() );
+           info += ')';
     }
   }
+
   info += ')';
+  printf( (const char*)QString( info + '\n' ).toLatin1() );
 }
 
 
@@ -1309,16 +1281,18 @@ void cutBrackets( QString& parameters )
 */
 QString getValue( const QString& str, const QString& valName )
 {
-  int i = str.find( valName );
-  if ( i != -1 ) {
-    int equal_i = str.find( '=', i );
-    if ( equal_i != -1 ) {
-      int space_i = str.find( ' ', ++equal_i );
+  int i = str.indexOf( valName );
+  if ( i != -1 )
+  {
+    int equal_i = str.indexOf( '=', i );
+    if ( equal_i != -1 )
+    {
+      int space_i = str.indexOf( ' ', ++equal_i );
       if ( space_i != -1 )
-       return str.mid( equal_i, space_i-equal_i );
+             return str.mid( equal_i, space_i - equal_i );
     }
   }
-  return QString( "" );
+  return QString();
 }
 
 /*
@@ -1337,7 +1311,7 @@ bool checkFormat( const QString& parameters )
   ok = ( params.left( 8 ) == "splitter" );
   if ( !ok ) return ok;
   // 3. has children?  = '(' is found
-  int i = params.find( '(' );
+  int i = params.indexOf( '(' );
   ok = i != -1;
   if ( !ok ) return ok;
   params = params.left( i ); // cut all children, they will be checked later
@@ -1370,13 +1344,13 @@ QStringList getChildren( const QString& str )
     {
       nOpen++;
       if ( nOpen == 1 )
-       start = i;
+             start = i;
     }
     else if ( str[i] == ')' )
     {
       nOpen--;
       if ( nOpen == 0 ) 
-       lst.append( str.mid( start, i-start+1 ) );
+             lst.append( str.mid( start, i-start+1 ) );
     }
     i++;
   }
@@ -1392,32 +1366,33 @@ QString getViewName( const QString& str, int i )
   QRegExp exp( "\\s'\\w+'" );
   int start = 0; // start index of view name in the string
   int num = 0 ; // index of found match
-  while ( ( start = exp.search( str, start ) ) != -1 && num < i ) {
+  while ( ( start = exp.indexIn( str, start ) ) != -1 && num < i )
+  {
     start += exp.matchedLength();
     num ++;
   }
   if ( start != -1 )      // +2 and -3 avoid starting space and starting and ending ' symbols
-    return str.mid( start+2, exp.matchedLength()-3 );
+    return str.mid( start + 2, exp.matchedLength() - 3 );
 
-  return QString( "" );
+  return QString();
 }
 
 // returns widget with given name
 QWidget* getView( const QWidget* parent, const QString& aName )
 {
   QWidget* view = 0;
-  QObjectList *l = parent->topLevelWidget()->queryList( "QWidget", aName, false, true );
-  if ( !l->isEmpty() )
-    view = ::qt_cast<QWidget*>( l->first() );
-  delete l;
+  QList<QWidget*> l = qFindChildren<QWidget*>( parent->topLevelWidget(), aName );
+  if ( !l.isEmpty() )
+    view = ::qobject_cast<QWidget*>( l.first() );
   return view;
 }
 
 /*!
   Installs a splitter described by given parameters string
 */
-void QtxWorkstack::setSplitter( QSplitter* splitter, const QString& parameters, QMap< QSplitter*, QValueList<int> >& sMap )
+void QtxWorkstack::setSplitter( QSplitter* splitter, const QString& parameters, QMap<QSplitter*, QList<int> >& sMap )
 {
+  printf( QString( parameters + '\n' ).toLatin1() );
   if ( !::checkFormat( parameters ) ) {
     printf( "\nInvalid format of workstack parameters.  Positions of viewers can not be restored.\n" );
     return;
@@ -1427,8 +1402,8 @@ void QtxWorkstack::setSplitter( QSplitter* splitter, const QString& parameters,
   ::cutBrackets( params );
 
   // get splitter sizes and store it in the map for future setting
-  QValueList<int> sizes;
-  QStringList sizesLst = QStringList::split( ':', ::getValue( params, "sizes" ) );
+  QList<int> sizes;
+  QStringList sizesLst = ::getValue( params, "sizes" ).split( ':', QString::SkipEmptyParts );
   QStringList::Iterator it;
   for ( it = sizesLst.begin(); it != sizesLst.end(); ++it )
     sizes.append( (*it).toInt() );
@@ -1439,7 +1414,7 @@ void QtxWorkstack::setSplitter( QSplitter* splitter, const QString& parameters,
   splitter->setOrientation( (Qt::Orientation)orient );
 
   // get children
-  QString options = params.left( params.find( '(' ) );
+  QString options = params.left( params.indexOf( '(' ) );
   QString childrenStr = params.right( params.length()-options.length() );
   QStringList children = ::getChildren( childrenStr );
 
@@ -1448,25 +1423,30 @@ void QtxWorkstack::setSplitter( QSplitter* splitter, const QString& parameters,
   //  for ( QStringList::Iterator tit = children.begin(); tit != children.end(); ++tit ) 
   //    printf ("   |-> child = [%s]\n", (*tit).latin1() );
 
-  for ( QStringList::Iterator it = children.begin(); it != children.end(); ++it ) {
-    if ( (*it).startsWith( "(splitter" ) ) {
+  for ( it = children.begin(); it != children.end(); ++it )
+  {
+    if ( (*it).startsWith( "(splitter" ) )
+    {
       QSplitter* newSplitter = new QSplitter( splitter );
       setSplitter( newSplitter, *it, sMap );
     }
-    else if ( (*it).startsWith( "(views" ) ) {
+    else if ( (*it).startsWith( "(views" ) )
+    {
       QtxWorkstackArea* newArea = createArea( splitter );
       QString activeViewName = ::getValue( *it, "active" );
-      QWidget* activeView( 0 );
+      QWidget* activeView = 0;
       activeViewName = activeViewName.mid( 1, activeViewName.length()-2 ); // chop off ' symbols
       int i = 0;
       QString viewName = ::getViewName( *it, i );
-      while ( !viewName.isEmpty() ) {
-       if ( QWidget* view = ::getView( splitter, viewName ) ) {
-         newArea->insertWidget( view );
-         if ( activeViewName == view->name() )
-           activeView = view;
-       }
-       viewName = ::getViewName( *it, ++i );
+      while ( !viewName.isEmpty() )
+      {
+             if ( QWidget* view = ::getView( splitter, viewName ) )
+        {
+               newArea->insertWidget( view );
+               if ( activeViewName == view->objectName() )
+                 activeView = view;
+             }
+             viewName = ::getViewName( *it, ++i );
       }
       if ( activeView )
        newArea->setActiveWidget( activeView );
@@ -1480,33 +1460,38 @@ void QtxWorkstack::setSplitter( QSplitter* splitter, const QString& parameters,
 QtxWorkstack& QtxWorkstack::operator<<( const QString& parameters )
 {
   // clear the main splitter - remove all child splitters and empty areas from it
-  QPtrList<QSplitter> splitList;
-  QPtrList<QtxWorkstackArea> areaList;
+  QList<QSplitter*> splitList;
+  QList<QtxWorkstackArea*> areaList;
   splitters( mySplit, splitList, false );
   areas( mySplit, areaList, false );
-  for ( QPtrListIterator<QSplitter> iter( splitList ); iter.current(); ++iter )
-    delete iter.current();
-  for ( QPtrListIterator<QtxWorkstackArea> it( areaList ); it.current(); ++it ) 
-    if ( it.current()->isEmpty() )
-      delete it.current();
+  for ( QList<QSplitter*>::iterator iter = splitList.begin(); iter != splitList.end(); ++iter )
+    delete *iter;
+
+  for ( QList<QtxWorkstackArea*>::iterator it = areaList.begin(); it != areaList.end(); ++it )
+  {
+    if ( (*it)->isEmpty() )
+      delete *it;
+  }
 
   // restore splitter recursively
-  QMap< QSplitter*, QValueList<int> > sMap;
+  QMap< QSplitter*, QList<int> > sMap;
   setSplitter( mySplit, parameters, sMap );  
 
   // now mySplit may contains empty area (where all views were located before restoring)
   // in order setSize to work correctly we have to exclude this area
   areaList.clear();
   areas( mySplit, areaList, false );
-  for ( QPtrListIterator<QtxWorkstackArea> delIt( areaList ); delIt.current(); ++delIt ) 
-    if ( delIt.current()->isEmpty() )
-      delete delIt.current();
+  for ( QList<QtxWorkstackArea*>::iterator delIt = areaList.begin(); delIt != areaList.end(); ++delIt )
+  {
+    if ( (*delIt)->isEmpty() )
+      delete *delIt;
+  }
 
-  qApp->processEvents();
+  QApplication::instance()->processEvents();
 
   // restore splitters' sizes (map of sizes is filled in setSplitters)
-  for ( QMap< QSplitter*, QValueList<int> >::Iterator itm = sMap.begin(); itm != sMap.end(); ++itm )
-    itm.key()->setSizes( itm.data() );
+  for ( QMap< QSplitter*, QList<int> >::iterator itm = sMap.begin(); itm != sMap.end(); ++itm )
+    itm.key()->setSizes( itm.value() );
 
   return (*this);
 }
@@ -1523,33 +1508,50 @@ QtxWorkstack& QtxWorkstack::operator>>( QString& outParameters )
 }
 
 
+class QtxWorkstackArea::WidgetEvent : public QEvent
+{
+public:
+  WidgetEvent( Type t, QWidget* w = 0 ) : QEvent( t ), myWidget( w ) {};
+
+  QWidget* widget() const { return myWidget; }
+
+private:
+  QWidget* myWidget;
+};
+
 /*!
   Constructor
 */
 QtxWorkstackArea::QtxWorkstackArea( QWidget* parent )
-: QWidget( parent )
+: QFrame( parent )
 {
+  setFrameStyle( QFrame::Panel | QFrame::Sunken );
+
   QVBoxLayout* base = new QVBoxLayout( this );
+  base->setMargin( frameWidth() );
 
-  QHBox* top = new QHBox( this );
+  QWidget* top = new QWidget( this );
   base->addWidget( top );
 
+  QHBoxLayout* tl = new QHBoxLayout( top );
+  tl->setMargin( 0 );
+
   myBar = new QtxWorkstackTabBar( top );
+  tl->addWidget( myBar, 1 );
 
   QPushButton* close = new QPushButton( top );
-  close->setPixmap( style().stylePixmap( QStyle::SP_TitleBarCloseButton ) );
+  close->setIcon( style()->standardIcon( QStyle::SP_TitleBarCloseButton ) );
   close->setAutoDefault( true );
   close->setFlat( true );
   myClose = close;
+  tl->addWidget( myClose );
 
-  top->setStretchFactor( myBar, 1 );
-
-  myStack = new QWidgetStack( this );
+  myStack = new QStackedWidget( this );
 
   base->addWidget( myStack, 1 );
 
   connect( myClose, SIGNAL( clicked() ), this, SLOT( onClose() ) );
-  connect( myBar, SIGNAL( selected( int ) ), this, SLOT( onSelected( int ) ) );
+  connect( myBar, SIGNAL( currentChanged( int ) ), this, SLOT( onCurrentChanged( int ) ) );
   connect( myBar, SIGNAL( dragActiveTab() ), this, SLOT( onDragActiveTab() ) );
   connect( myBar, SIGNAL( contextMenuRequested( QPoint ) ), this, SLOT( onContextMenuRequested( QPoint ) ) );
 
@@ -1557,7 +1559,7 @@ QtxWorkstackArea::QtxWorkstackArea( QWidget* parent )
 
   updateActiveState();
 
-  qApp->installEventFilter( this );
+  QApplication::instance()->installEventFilter( this );
 }
 
 /*!
@@ -1565,7 +1567,7 @@ QtxWorkstackArea::QtxWorkstackArea( QWidget* parent )
 */
 QtxWorkstackArea::~QtxWorkstackArea()
 {
-  qApp->removeEventFilter( this );
+  QApplication::instance()->removeEventFilter( this );
 }
 
 /*!
@@ -1575,7 +1577,7 @@ bool QtxWorkstackArea::isEmpty() const
 {
   bool res = false;
   for ( WidgetInfoMap::ConstIterator it = myInfo.begin(); it != myInfo.end() && !res; ++it )
-    res = it.data().vis;
+    res = it.value().vis;
   return !res;
 }
 
@@ -1584,21 +1586,21 @@ bool QtxWorkstackArea::isEmpty() const
   \param wid - widget
   \param idx - index
 */
-void QtxWorkstackArea::insertWidget( QWidget* wid, const int idx )
+QWidget* QtxWorkstackArea::insertWidget( QWidget* wid, const int idx, Qt::WindowFlags f )
 {
   if ( !wid )
-    return;
+    return 0;
 
-  int pos = myList.find( wid );
+  int pos = myList.indexOf( wid );
   if ( pos != -1 && ( pos == idx || ( idx < 0 && pos == (int)myList.count() - 1 ) ) )
-    return;
+    return 0;
 
-  myList.removeRef( wid );
+  myList.removeAll( wid );
   pos = idx < 0 ? myList.count() : idx;
-  myList.insert( QMIN( pos, (int)myList.count() ), wid );
+  myList.insert( qMin( pos, (int)myList.count() ), wid );
   if ( !myInfo.contains( wid ) )
   {
-    QtxWorkstackChild* child = new QtxWorkstackChild( wid, myStack );
+    QtxWorkstackChild* child = new QtxWorkstackChild( wid, myStack, f );
     myChild.insert( wid, child );
     myInfo.insert( wid, WidgetInfo() );
     myInfo[wid].id = generateId();
@@ -1616,6 +1618,8 @@ void QtxWorkstackArea::insertWidget( QWidget* wid, const int idx )
 
   setWidgetActive( wid );
   wid->setFocus();
+
+  return myChild[wid];
 }
 
 /*!
@@ -1624,14 +1628,14 @@ void QtxWorkstackArea::insertWidget( QWidget* wid, const int idx )
 */
 void QtxWorkstackArea::onContextMenuRequested( QPoint p )
 {
-  const QtxWorkstackTabBar* bar = ::qt_cast<const QtxWorkstackTabBar*>( sender() );
+  const QtxWorkstackTabBar* bar = ::qobject_cast<const QtxWorkstackTabBar*>( sender() );
   if ( !bar )
     return;
 
   QWidget* wid = 0;
-  QTab* tab = myBar->tabAt( tabAt( p ) );
-  if ( tab )
-    wid = widget( tab->identifier() );
+  int idx = tabAt( p );
+  if ( idx != -1 )
+    wid = widget( myBar->tabId( idx ) );
 
   emit contextMenuRequested( wid, p );
 }
@@ -1655,18 +1659,19 @@ void QtxWorkstackArea::removeWidget( QWidget* wid, const bool del )
   if ( !myList.contains( wid ) )
     return;
 
-  if ( myBar->tab( widgetId( wid ) ) )
-    myBar->removeTab( myBar->tab( widgetId( wid ) ) );
+  if ( myBar->indexOf( widgetId( wid ) ) != -1 )
+    myBar->removeTab( myBar->indexOf( widgetId( wid ) ) );
+
   myStack->removeWidget( child( wid ) );
 
-  myList.remove( wid );
+  myList.removeAll( wid );
   myInfo.remove( wid );
   myChild.remove( wid );
 
-  if( del )
+  if ( del )
   {
     delete child( wid );
-    if( myList.isEmpty() )
+    if ( myList.isEmpty() )
       delete this;
     else
       updateState();
@@ -1681,10 +1686,10 @@ void QtxWorkstackArea::removeWidget( QWidget* wid, const bool del )
 QWidgetList QtxWorkstackArea::widgetList() const
 {
   QWidgetList lst;
-  for ( QWidgetListIt it( myList ); it.current(); ++it )
+  for ( QWidgetList::const_iterator it = myList.begin(); it != myList.end(); ++it )
   {
-    if ( widgetVisibility( it.current() ) )
-      lst.append( it.current() );
+    if ( widgetVisibility( *it ) )
+      lst.append( *it );
   }
   return lst;
 }
@@ -1694,7 +1699,7 @@ QWidgetList QtxWorkstackArea::widgetList() const
 */
 QWidget* QtxWorkstackArea::activeWidget() const
 {
-  return widget( myBar->currentTab() );
+  return widget( myBar->tabId( myBar->currentIndex() ) );
 }
 
 /*!
@@ -1703,7 +1708,7 @@ QWidget* QtxWorkstackArea::activeWidget() const
 */
 void QtxWorkstackArea::setActiveWidget( QWidget* wid )
 {
-  myBar->setCurrentTab( widgetId( wid ) );
+  myBar->setCurrentIndex( myBar->indexOf( widgetId( wid ) ) );
 }
 
 /*!
@@ -1718,37 +1723,19 @@ bool QtxWorkstackArea::contains( QWidget* wid ) const
 /*!
   Shows area
 */
-void QtxWorkstackArea::show()
+void QtxWorkstackArea::setVisible( bool on )
 {
   QMap<QWidget*, bool> map;
-  for ( QWidgetListIt it( myList ); it.current(); ++it )
+  for ( QWidgetList::iterator it = myList.begin(); it != myList.end(); ++it )
   {
-    map.insert( it.current(), isBlocked( it.current() ) );
-    setBlocked( it.current(), true );
+    map.insert( *it, isBlocked( *it ) );
+    setBlocked( *it, true );
   }
 
-  QWidget::show();
+  QFrame::setVisible( on );
 
-  for ( QWidgetListIt itr( myList ); itr.current(); ++itr )
-    setBlocked( itr.current(), map.contains( itr.current() ) ? map[itr.current()] : false );
-}
-
-/*!
-  Hides area
-*/
-void QtxWorkstackArea::hide()
-{
-  QMap<QWidget*, bool> map;
-  for ( QWidgetListIt it( myList ); it.current(); ++it )
-  {
-    map.insert( it.current(), isBlocked( it.current() ) );
-    setBlocked( it.current(), true );
-  }
-
-  QWidget::hide();
-
-  for ( QWidgetListIt itr( myList ); itr.current(); ++itr )
-    setBlocked( itr.current(), map.contains( itr.current() ) ? map[itr.current()] : false );
+  for ( QWidgetList::iterator itr = myList.begin(); itr != myList.end(); ++itr )
+    setBlocked( *itr, map.contains( *itr ) ? map[*itr] : false );
 }
 
 /*!
@@ -1804,7 +1791,7 @@ bool QtxWorkstackArea::eventFilter( QObject* o, QEvent* e )
         wid = wid->parentWidget();
       }
       if ( ok )
-        QApplication::postEvent( this, new QCustomEvent( (QEvent::Type)( e->type() == QEvent::FocusIn ? ActivateWidget : FocusWidget ) ) );
+        QApplication::postEvent( this, new WidgetEvent( (QEvent::Type)( e->type() == QEvent::FocusIn ? ActivateWidget : FocusWidget ) ) );
     }
   }
   return false;
@@ -1825,16 +1812,18 @@ QRect QtxWorkstackArea::floatRect() const
 */
 QRect QtxWorkstackArea::floatTab( const int idx ) const
 {
-  return myBar->tabRect( idx );
+  QRect r = myBar->tabRect( idx );
+  return QRect( myBar->mapToGlobal( r.topLeft() ), r.size() );
 }
 
 /*!
   \return tab covering point 
   \param p - point
 */
-int QtxWorkstackArea::tabAt( const QPoint& p ) const
+int QtxWorkstackArea::tabAt( const QPoint& pnt ) const
 {
   int idx = -1;
+  QPoint p = myBar->mapFromGlobal( pnt );
   for ( int i = 0; i < myBar->count() && idx == -1; i++ )
   {
     QRect r = myBar->tabRect( i );
@@ -1847,9 +1836,11 @@ int QtxWorkstackArea::tabAt( const QPoint& p ) const
 /*!
   Event handler for custom events
 */
-void QtxWorkstackArea::customEvent( QCustomEvent* e )
+void QtxWorkstackArea::customEvent( QEvent* e )
 {
-  switch ( e->type() )
+  WidgetEvent* we = (WidgetEvent*)e;
+
+  switch ( we->type() )
   {
   case ActivateWidget:
     emit activated( activeWidget() );
@@ -1859,18 +1850,20 @@ void QtxWorkstackArea::customEvent( QCustomEvent* e )
     {
       if ( !activeWidget()->focusWidget() )
         activeWidget()->setFocus();
-      else {
-        if ( activeWidget()->focusWidget()->hasFocus()) {
-          QFocusEvent in(QEvent::FocusIn);
-         QApplication::sendEvent(this, &in);
-       }
+      else
+      {
+        if ( activeWidget()->focusWidget()->hasFocus() )
+        {
+          QFocusEvent in( QEvent::FocusIn );
+               QApplication::sendEvent( this, &in );
+             }
         else
           activeWidget()->focusWidget()->setFocus();
       }
     }
     break;
   case RemoveWidget:
-    removeWidget( (QWidget*)e->data() );
+    removeWidget( we->widget() );
     break;
   }
 }
@@ -1880,7 +1873,7 @@ void QtxWorkstackArea::customEvent( QCustomEvent* e )
 */
 void QtxWorkstackArea::focusInEvent( QFocusEvent* e )
 {
-  QWidget::focusInEvent( e );
+  QFrame::focusInEvent( e );
 
   emit activated( activeWidget() );
 }
@@ -1890,7 +1883,7 @@ void QtxWorkstackArea::focusInEvent( QFocusEvent* e )
 */
 void QtxWorkstackArea::mousePressEvent( QMouseEvent* e )
 {
-  QWidget::mousePressEvent( e );
+  QFrame::mousePressEvent( e );
 
   emit activated( activeWidget() );
 }
@@ -1908,7 +1901,7 @@ void QtxWorkstackArea::onClose()
 /*!
   SLOT: called if tab page is selected
 */
-void QtxWorkstackArea::onSelected( int id )
+void QtxWorkstackArea::onCurrentChanged( int )
 {
   updateCurrent();
 
@@ -1938,13 +1931,13 @@ void QtxWorkstackArea::onChildDestroyed( QObject* obj )
   QWidget* wid = 0;
   for ( ChildMap::ConstIterator it = myChild.begin(); it != myChild.end() && !wid; ++it )
   {
-    if ( it.data() == child )
+    if ( it.value() == child )
       wid = it.key();
   }
 
   myChild.remove( wid );
 
-  QApplication::postEvent( this, new QCustomEvent( (QEvent::Type)RemoveWidget, wid ) );
+  QApplication::postEvent( this, new WidgetEvent( (QEvent::Type)RemoveWidget, wid ) );
 }
 
 /*!
@@ -1985,16 +1978,16 @@ void QtxWorkstackArea::onChildCaptionChanged( QtxWorkstackChild* c )
 void QtxWorkstackArea::updateCurrent()
 {
   QMap<QWidget*, bool> map;
-  for ( QWidgetListIt it( myList ); it.current(); ++it )
+  for ( QWidgetList::iterator it = myList.begin(); it != myList.end(); ++it )
   {
-    map.insert( it.current(), isBlocked( it.current() ) );
-    setBlocked( it.current(), true );
+    map.insert( *it, isBlocked( *it ) );
+    setBlocked( *it, true );
   }
 
-  myStack->raiseWidget( myBar->currentTab() );
+  myStack->setCurrentWidget( child( widget( myBar->tabId( myBar->currentIndex() ) ) ) );
 
-  for ( QWidgetListIt itr( myList ); itr.current(); ++itr )
-    setBlocked( itr.current(), map.contains( itr.current() ) ? map[itr.current()] : false );
+  for ( QWidgetList::iterator itr = myList.begin(); itr != myList.end(); ++itr )
+    setBlocked( *itr, map.contains( *itr ) ? map[*itr] : false );
 }
 
 /*!
@@ -2003,20 +1996,12 @@ void QtxWorkstackArea::updateCurrent()
 */
 void QtxWorkstackArea::updateTab( QWidget* wid )
 {
-  QTab* tab = myBar->tab( widgetId( wid ) );
-  if ( !tab )
+  int idx = myBar->indexOf( widgetId( wid ) );
+  if ( idx < 0 )
     return;
 
-  QIconSet icoSet;
-  if ( wid->icon() )
-  {
-    QPixmap pix = *wid->icon();
-    pix.convertFromImage( pix.convertToImage().smoothScale( pix.width(), 16, QImage::ScaleMin ) );
-    icoSet = QIconSet( pix );
-  }
-
-  tab->setIconSet( icoSet );
-  tab->setText( wid->caption() );
+  myBar->setTabIcon( idx, wid->windowIcon() );
+  myBar->setTabText( idx, wid->windowTitle() );
 }
 
 /*!
@@ -2028,7 +2013,7 @@ QWidget* QtxWorkstackArea::widget( const int id ) const
   QWidget* wid = 0;
   for ( WidgetInfoMap::ConstIterator it = myInfo.begin(); it != myInfo.end() && !wid; ++it )
   {
-    if ( it.data().id == id )
+    if ( it.value().id == id )
       wid = it.key();
   }
   return wid;
@@ -2068,7 +2053,7 @@ void QtxWorkstackArea::setWidgetActive( QWidget* wid )
   if ( id < 0 )
     return;
 
-  myBar->setCurrentTab( id );
+  myBar->setCurrentIndex( myBar->indexOf( id ) );
 }
 
 /*!
@@ -2090,8 +2075,8 @@ void QtxWorkstackArea::setWidgetShown( QWidget* wid, const bool on )
 */
 void QtxWorkstackArea::updateState()
 {
-  bool updBar = myBar->isUpdatesEnabled();
-  bool updStk = myStack->isUpdatesEnabled();
+  bool updBar = myBar->updatesEnabled();
+  bool updStk = myStack->updatesEnabled();
   myBar->setUpdatesEnabled( false );
   myStack->setUpdatesEnabled( false );
 
@@ -2101,9 +2086,9 @@ void QtxWorkstackArea::updateState()
   QWidget* prev = activeWidget();
 
   int idx = 0;
-  for ( QWidgetListIt it( myList ); it.current(); ++it )
+  for ( QWidgetList::iterator it = myList.begin(); it != myList.end(); ++it )
   {
-    QWidget* wid = it.current();
+    QWidget* wid = *it;
     int id = widgetId( wid );
 
     if ( id < 0 )
@@ -2111,15 +2096,12 @@ void QtxWorkstackArea::updateState()
 
     bool vis = widgetVisibility( wid );
 
-    if ( myBar->tab( id ) && ( !vis || myBar->indexOf( id ) != idx ) )
-      myBar->removeTab( myBar->tab( id ) );
+    int cIdx = myBar->indexOf( id );
+    if ( cIdx != -1 && ( !vis || myBar->indexOf( id ) != idx ) )
+      myBar->removeTab( cIdx );
 
-    if ( !myBar->tab( id ) && vis )
-    {
-      QTab* tab = new QTab( wid->caption() );
-      myBar->insertTab( tab, idx );
-      tab->setIdentifier( id );
-    }
+    if ( myBar->indexOf( id ) == -1 && vis )
+      myBar->setTabId( myBar->insertTab( idx, wid->windowTitle() ), id );
 
     updateTab( wid );
 
@@ -2130,8 +2112,8 @@ void QtxWorkstackArea::updateState()
 
     if ( !vis )
       myStack->removeWidget( cont );
-    else if ( !myStack->widget( id ) )
-      myStack->addWidget( cont, id );
+    else if ( myStack->indexOf( cont ) < 0 )
+      myStack->addWidget( cont );
 
     if ( vis )
       idx++;
@@ -2140,10 +2122,10 @@ void QtxWorkstackArea::updateState()
   }
 
   int curId = widgetId( prev );
-  if ( !myBar->tab( curId ) )
+  if ( myBar->indexOf( curId ) < 0 )
   {
     QWidget* wid = 0;
-    int pos = myList.find( prev );
+    int pos = myList.indexOf( prev );
     for ( int i = pos - 1; i >= 0 && !wid; i-- )
     {
       if ( widgetVisibility( myList.at( i ) ) )
@@ -2160,7 +2142,7 @@ void QtxWorkstackArea::updateState()
       curId = widgetId( wid );
   }
 
-  myBar->setCurrentTab( curId );
+  myBar->setCurrentIndex( myBar->indexOf( curId ) );
 
   myBar->blockSignals( block );
 
@@ -2196,8 +2178,8 @@ int QtxWorkstackArea::generateId() const
 {
   QMap<int, int> map;
 
-  for ( WidgetInfoMap::ConstIterator it = myInfo.begin(); it != myInfo.end(); ++it )
-    map.insert( it.data().id, 0 );
+  for ( WidgetInfoMap::const_iterator it = myInfo.begin(); it != myInfo.end(); ++it )
+    map.insert( it.value().id, 0 );
 
   int id = 0;
   while ( map.contains( id ) )
@@ -2243,12 +2225,14 @@ QtxWorkstackChild* QtxWorkstackArea::child( QWidget* wid ) const
 /*!
   Constructor
 */
-QtxWorkstackChild::QtxWorkstackChild( QWidget* wid, QWidget* parent )
-: QHBox( parent ),
+QtxWorkstackChild::QtxWorkstackChild( QWidget* wid, QWidget* parent, Qt::WindowFlags f )
+: QWidget( parent ),
 myWidget( wid )
 {
-  myWidget->reparent( this, QPoint( 0, 0 ), myWidget->isVisibleTo( myWidget->parentWidget() ) );
+  myWidget->setParent( this, f );
   myWidget->installEventFilter( this );
+  QVBoxLayout* base = new QVBoxLayout( this );
+  base->addWidget( myWidget );
 
   connect( myWidget, SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
 }
@@ -2258,14 +2242,17 @@ myWidget( wid )
 */
 QtxWorkstackChild::~QtxWorkstackChild()
 {
-  qApp->removeEventFilter( this );
+  QApplication::instance()->removeEventFilter( this );
 
   if ( !widget() )
     return;
 
-  widget()->removeEventFilter( this );
-  widget()->reparent( 0, QPoint( 0, 0 ), false );
   disconnect( widget(), SIGNAL( destroyed( QObject* ) ), this, SLOT( onDestroyed( QObject* ) ) );
+
+  widget()->hide();
+  widget()->removeEventFilter( this );
+
+  widget()->setParent( 0 );
 }
 
 /*!
@@ -2283,7 +2270,7 @@ bool QtxWorkstackChild::eventFilter( QObject* o, QEvent* e )
 {
   if ( o->isWidgetType() )
   {
-    if ( e->type() == QEvent::CaptionChange || e->type() == QEvent::IconChange )
+    if ( e->type() == QEvent::WindowTitleChange || e->type() == QEvent::WindowIconChange )
       emit captionChanged( this );
 
     if ( !e->spontaneous() && ( e->type() == QEvent::Show || e->type() == QEvent::ShowToParent ) )
@@ -2295,7 +2282,7 @@ bool QtxWorkstackChild::eventFilter( QObject* o, QEvent* e )
     if ( e->type() == QEvent::FocusIn )
       emit activated( this );
   }
-  return QHBox::eventFilter( o, e );
+  return QWidget::eventFilter( o, e );
 }
 
 /*!
@@ -2315,12 +2302,12 @@ void QtxWorkstackChild::onDestroyed( QObject* obj )
 */
 void QtxWorkstackChild::childEvent( QChildEvent* e )
 {
-  if ( e->type() == QEvent::ChildRemoved && e->child() == widget() )
+  if ( e->removed() && e->child() == widget() )
   {
     myWidget = 0;
     deleteLater();
   }
-  QHBox::childEvent( e );
+  QWidget::childEvent( e );
 }
 
 /*!
@@ -2330,6 +2317,8 @@ QtxWorkstackTabBar::QtxWorkstackTabBar( QWidget* parent )
 : QTabBar( parent ),
 myId( -1 )
 {
+  setDrawBase( true );
+  setElideMode( Qt::ElideNone );
 }
 
 /*!
@@ -2339,6 +2328,30 @@ QtxWorkstackTabBar::~QtxWorkstackTabBar()
 {
 }
 
+int QtxWorkstackTabBar::tabId( const int index ) const
+{
+  QVariant v = tabData( index );
+  if ( !v.canConvert( QVariant::Int ) )
+    return -1;
+  return v.toInt();
+}
+
+void QtxWorkstackTabBar::setTabId( const int index, const int id )
+{
+  setTabData( index, id );
+}
+
+int QtxWorkstackTabBar::indexOf( const int id ) const
+{
+  int index = -1;
+  for ( uint i = 0; i < count() && index < 0; i++ )
+  {
+    if ( tabId( i ) == id )
+      index = i;
+  }
+  return index;
+}
+
 /*!
   Sets tab bar as active or inactive
   \param on - new active state
@@ -2347,61 +2360,29 @@ void QtxWorkstackTabBar::setActive( const bool on )
 {
   QFont aFont = font();
   aFont.setUnderline( on );
-  QColorGroup aColGrp;
   QPalette aPal = palette();
-  if ( !on ) {
-    aPal.setColor( QColorGroup::HighlightedText, aColGrp.foreground() );
-    aPal.setColor( QColorGroup::Highlight, colorGroup().dark().light( DARK_COLOR_LIGHT ) );
+  if ( !on )
+  {
+    aPal.setColor( QPalette::HighlightedText, aPal.color( QPalette::Foreground ) );
+    aPal.setColor( QPalette::Highlight, aPal.color( QPalette::Dark ).light( DARK_COLOR_LIGHT ) );
     setPalette( aPal );
   }
-  else {
-    aPal.setColor( QColorGroup::HighlightedText, aColGrp.highlightedText() );
-    aPal.setColor( QColorGroup::Highlight, aColGrp.highlight() );
-    unsetPalette();
+  else
+  {
+    aPal.setColor( QPalette::HighlightedText, aPal.color( QPalette::HighlightedText ) );
+    aPal.setColor( QPalette::Highlight, aPal.color( QPalette::Highlight ) );
   }
   setFont( aFont );
 
   update();
 }
 
-/*!
-  \return tab rectangle
-  \param idx - tab index
-*/
-QRect QtxWorkstackTabBar::tabRect( const int idx ) const
-{
-  QRect r;
-  QTab* t = tabAt( idx );
-  if ( t )
-  {
-    r = t->rect();
-    r.setLeft( QMAX( r.left(), 0 ) );
-
-    int x1 = tabAt( 0 )->rect().left();
-    int x2 = tabAt( count() - 1 )->rect().right();
-
-    int bw = 0;
-    if ( QABS( x2 - x1 ) > width() )
-#if defined QT_VERSION && QT_VERSION >= 0x30300
-      bw = 2 * style().pixelMetric( QStyle::PM_TabBarScrollButtonWidth, this );
-#else
-      bw = 2 * 16;
-#endif
-
-    int limit = width() - bw;
-    r.setRight( QMIN( r.right(), limit ) );
-
-    r = QRect( mapToGlobal( r.topLeft() ), r.size() );
-  }
-  return r;
-}
-
 /*!
   Custom mouse move event handler
 */
 void QtxWorkstackTabBar::mouseMoveEvent( QMouseEvent* e )
 {
-  if ( myId != -1 && !tab( myId )->rect().contains( e->pos() ) )
+  if ( myId != -1 && !tabRect( indexOf( myId ) ).contains( e->pos() ) )
   {
     myId = -1;
     emit dragActiveTab();
@@ -2417,8 +2398,8 @@ void QtxWorkstackTabBar::mousePressEvent( QMouseEvent* e )
 {
   QTabBar::mousePressEvent( e );
 
-  if ( e->button() == LeftButton )
-    myId = currentTab();
+  if ( e->button() == Qt::LeftButton )
+    myId = tabId( currentIndex() );
 }
 
 /*!
@@ -2430,7 +2411,7 @@ void QtxWorkstackTabBar::mouseReleaseEvent( QMouseEvent* e )
 
   myId = -1;
 
-  if ( e->button() == RightButton )
+  if ( e->button() == Qt::RightButton )
     emit contextMenuRequested( e->globalPos() );
 }
 
@@ -2446,6 +2427,7 @@ void QtxWorkstackTabBar::contextMenuEvent( QContextMenuEvent* e )
 /*!
   Draws label of tab bar
 */
+/*
 void QtxWorkstackTabBar::paintLabel( QPainter* p, const QRect& br, QTab* t, bool has_focus ) const
 {
   if ( currentTab() != t->identifier() )
@@ -2456,6 +2438,7 @@ void QtxWorkstackTabBar::paintLabel( QPainter* p, const QRect& br, QTab* t, bool
   }
   QTabBar::paintLabel( p, br, t, has_focus );
 }
+*/
 
 /*!
   Constructor
@@ -2465,10 +2448,11 @@ QtxWorkstackDrag::QtxWorkstackDrag( QtxWorkstack* ws, QtxWorkstackChild* child )
 myWS( ws ),
 myTab( -1 ),
 myArea( 0 ),
-myPainter( 0 ),
-myChild( child )
+myChild( child ),
+myTabRect( 0 ),
+myAreaRect( 0 )
 {
-  qApp->installEventFilter( this );
+  QApplication::instance()->installEventFilter( this );
 }
 
 /*!
@@ -2476,7 +2460,7 @@ myChild( child )
 */
 QtxWorkstackDrag::~QtxWorkstackDrag()
 {
-  qApp->removeEventFilter( this );
+  QApplication::instance()->removeEventFilter( this );
 
   endDrawRect();
 }
@@ -2566,26 +2550,35 @@ void QtxWorkstackDrag::dropWidget()
 */
 void QtxWorkstackDrag::drawRect()
 {
-  if ( !myPainter || !myArea )
+  if ( !myArea )
     return;
 
   QRect r = myArea->floatRect();
-  int m = myPainter->pen().width();
+  int m = 2;
 
   r.setTop( r.top() + m + 2 );
   r.setLeft( r.left() + m + 2 );
   r.setRight( r.right() - m - 2 );
   r.setBottom( r.bottom() - m - 2 );
 
-  myPainter->drawRect( r );
+  if ( myAreaRect )
+  {
+    myAreaRect->setGeometry( r );
+    myAreaRect->setVisible( r.isValid() );
+  }
 
   QRect tr = myArea->floatTab( myTab );
+
   tr.setTop( tr.top() + m );
   tr.setLeft( tr.left() + m );
   tr.setRight( tr.right() - m );
   tr.setBottom( tr.bottom() - m );
 
-  myPainter->drawRect( tr );
+  if ( myTabRect )
+  {
+    myTabRect->setGeometry( tr );
+    myTabRect->setVisible( tr.isValid() );
+  }
 }
 
 /*!
@@ -2593,8 +2586,11 @@ void QtxWorkstackDrag::drawRect()
 */
 void QtxWorkstackDrag::endDrawRect()
 {
-  delete myPainter;
-  myPainter = 0;
+  delete myAreaRect;
+  myAreaRect = 0;
+
+  delete myTabRect;
+  myTabRect = 0;
 }
 
 /*!
@@ -2602,13 +2598,13 @@ void QtxWorkstackDrag::endDrawRect()
 */
 void QtxWorkstackDrag::startDrawRect()
 {
-  if ( myPainter )
-    return;
+  if ( !myTabRect )
+    myTabRect = new QRubberBand( QRubberBand::Rectangle );
+
+  myTabRect->hide();
 
-  int scr = QApplication::desktop()->screenNumber( (QWidget*)this );
-  QWidget* paint_on = QApplication::desktop()->screen( scr );
+  if ( !myAreaRect )
+    myAreaRect = new QRubberBand( QRubberBand::Rectangle );
 
-  myPainter = new QPainter( paint_on, true );
-  myPainter->setPen( QPen( gray, 3 ) );
-  myPainter->setRasterOp( XorROP );
+  myAreaRect->hide();
 }
index c31479cc6b8055ac5c916bfbb1da51e1fa2b01fb..1682e0518797672422a1a0086dd727e1e27eb7be 100644 (file)
 
 #include "Qtx.h"
 
-#include <qhbox.h>
-#include <qwidget.h>
-#include <qtabbar.h>
-#include <qwidgetlist.h>
+#include <QtCore/qmap.h>
+#include <QtGui/qevent.h>
+#include <QtGui/qframe.h>
+#include <QtGui/qtabbar.h>
 
 class QAction;
 class QTabBar;
 class QPainter;
 class QSplitter;
 class QPushButton;
-class QWidgetStack;
+class QRubberBand;
+class QStackedWidget;
 
 class QtxWorkstackArea;
 class QtxWorkstackDrag;
@@ -73,8 +74,7 @@ public:
 
   void                split( const int );
 
-  // STV: Useless function. wid->setFocus() should be used instead.
-  // void OnTop( QWidget* wid);
+  QWidget*            addWindow( QWidget*, Qt::WindowFlags = 0 );
 
   void Split( QWidget* wid, const Qt::Orientation o, const SplitType type );
   void Attract( QWidget* wid1, QWidget* wid2, const bool all );
@@ -85,14 +85,14 @@ public:
   QtxWorkstack& operator<<( const QString& );
   QtxWorkstack& operator>>( QString& );
 
-signals:
+Q_SIGNALS:
   void                windowActivated( QWidget* );
 
-public slots:
+public Q_SLOTS:
   void                splitVertical();
   void                splitHorizontal();
   
-private slots:
+private Q_SLOTS:
   void                onRename();
   void                onCloseWindow();
   void                onDestroyed( QObject* );
@@ -101,13 +101,12 @@ private slots:
   void                onDeactivated( QtxWorkstackArea* );
 
 protected:
-  virtual void        childEvent( QChildEvent* );
-  virtual void        customEvent( QCustomEvent* );
+  virtual void        customEvent( QEvent* );
 
 private:
   QSplitter*          splitter( QtxWorkstackArea* ) const;
-  void                splitters( QSplitter*, QPtrList<QSplitter>&, const bool = false ) const;
-  void                areas( QSplitter*, QPtrList<QtxWorkstackArea>&, const bool = false ) const;
+  void                splitters( QSplitter*, QList<QSplitter*>&, const bool = false ) const;
+  void                areas( QSplitter*, QList<QtxWorkstackArea*>&, const bool = false ) const;
 
   QSplitter*          wrapSplitter( QtxWorkstackArea* );
   void                insertWidget( QWidget*, QWidget*, QWidget* );
@@ -131,7 +130,7 @@ private:
                                                           const int need_pos, const int splitter_pos );
   
   void                splitterInfo( QSplitter*, QString& ) const;
-  void                setSplitter( QSplitter*, const QString&, QMap< QSplitter*,QValueList<int> >& );
+  void                setSplitter( QSplitter*, const QString&, QMap< QSplitter*, QList<int> >& );
   
 private:
   QWidget*            myWin;
@@ -146,17 +145,19 @@ private:
   friend class QtxWorkstackDrag;
 };
 
-class QtxWorkstackArea : public QWidget
+class QtxWorkstackArea : public QFrame
 {
   Q_OBJECT
 
+  class WidgetEvent;
+
 public:
   QtxWorkstackArea( QWidget* );
   virtual ~QtxWorkstackArea();
 
   bool                isEmpty() const;
 
-  void                insertWidget( QWidget*, const int = -1 );
+  QWidget*            insertWidget( QWidget*, const int = -1, Qt::WindowFlags = 0 );
   void                removeWidget( QWidget*, const bool = true );
 
   QWidget*            activeWidget() const;
@@ -178,18 +179,17 @@ public:
 
   int                 tabAt( const QPoint& ) const;
 
-signals:
+Q_SIGNALS:
   void                activated( QWidget* );
   void                contextMenuRequested( QWidget*, QPoint );
   void                deactivated( QtxWorkstackArea* );
 
-public slots:
-  virtual void        show();
-  virtual void        hide();
+public Q_SLOTS:
+  virtual void        setVisible( bool );
 
-private slots:
+private Q_SLOTS:
   void                onClose();
-  void                onSelected( int );
+  void                onCurrentChanged( int );
 
   void                onWidgetDestroyed();
 
@@ -203,7 +203,7 @@ private slots:
   void                onContextMenuRequested( QPoint );
 
 protected:
-  virtual void        customEvent( QCustomEvent* );
+  virtual void        customEvent( QEvent* );
   virtual void        focusInEvent( QFocusEvent* );
   virtual void        mousePressEvent( QMouseEvent* );
 
@@ -243,7 +243,7 @@ private:
 private:
   QtxWorkstackTabBar* myBar;
   QPushButton*        myClose;
-  QWidgetStack*       myStack;
+  QStackedWidget*     myStack;
 
   QWidgetList         myList;
   WidgetInfoMap       myInfo;
@@ -251,25 +251,25 @@ private:
   BlockMap            myBlock;
 };
 
-class QtxWorkstackChild : public QHBox
+class QtxWorkstackChild : public QWidget
 {
   Q_OBJECT
 
 public:
-  QtxWorkstackChild( QWidget*, QWidget* = 0 );
+  QtxWorkstackChild( QWidget*, QWidget* = 0, Qt::WindowFlags = 0 );
   virtual ~QtxWorkstackChild();
 
   QWidget*            widget() const;
 
   virtual bool        eventFilter( QObject*, QEvent* );
 
-signals:
+Q_SIGNALS:
   void                shown( QtxWorkstackChild* );
   void                hided( QtxWorkstackChild* );
   void                activated( QtxWorkstackChild* );
   void                captionChanged( QtxWorkstackChild* );
 
-private slots:
+private Q_SLOTS:
   void                onDestroyed( QObject* );
 
 protected:
@@ -287,11 +287,13 @@ public:
   QtxWorkstackTabBar( QWidget* = 0 );
   virtual ~QtxWorkstackTabBar();
 
-  QRect               tabRect( const int ) const;
-
   void                setActive( const bool );
 
-signals:
+  int                 tabId( const int ) const;
+  int                 indexOf( const int ) const;
+  void                setTabId( const int, const int );
+
+Q_SIGNALS:
   void                dragActiveTab();
   void                contextMenuRequested( QPoint );
 
@@ -301,7 +303,7 @@ protected:
   virtual void        mouseReleaseEvent( QMouseEvent* );
   virtual void        contextMenuEvent( QContextMenuEvent* );
 
-  virtual void        paintLabel( QPainter*, const QRect&, QTab*, bool ) const;
+//  virtual void        paintLabel( QPainter*, const QRect&, QTab*, bool ) const;
 
 private:
   int                 myId;
@@ -334,8 +336,8 @@ private:
 
   int                 myTab;
   QtxWorkstackArea*   myArea;
-  QPainter*           myPainter;
-  
+  QRubberBand*        myTabRect;
+  QRubberBand*        myAreaRect;
 };
 
 #ifdef WIN32
diff --git a/src/Qtx/QtxWorkstackAction.cxx b/src/Qtx/QtxWorkstackAction.cxx
deleted file mode 100644 (file)
index a1dbcb9..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxWorkstackAction.cxx
-// Author:    Sergey TELKOV
-
-#include "QtxWorkstackAction.h"
-
-#include "QtxWorkstack.h"
-
-#include <qpopupmenu.h>
-#include <qwidgetlist.h>
-
-/*!
-  Constructor
-*/
-QtxWorkstackAction::QtxWorkstackAction( QtxWorkstack* ws, QObject* parent, const char* name )
-: QtxAction( tr( "Controls windows into workstack" ), tr( "Workstack management" ), 0, parent, name ),
-myFlags( Standard ),
-myWorkstack( ws )
-{
-  myItem.insert( VSplit, new QtxAction( tr( "Split the active window on two vertical parts" ),
-                                        tr( "Split vertically" ), 0, this, 0, false ) );
-  myItem.insert( HSplit, new QtxAction( tr( "Split the active window on two horizontal parts" ),
-                                        tr( "Split horizontally" ), 0, this, 0, false ) );
-
-  connect( myItem[VSplit], SIGNAL( activated() ), ws, SLOT( splitVertical() ) );
-  connect( myItem[HSplit], SIGNAL( activated() ), ws, SLOT( splitHorizontal() ) );
-}
-
-/*!
-  Destructor
-*/
-QtxWorkstackAction::~QtxWorkstackAction()
-{
-}
-
-/*!
-  \return corresponding workstack
-*/
-QtxWorkstack* QtxWorkstackAction::workstack() const
-{
-  return myWorkstack;
-}
-
-/*!
-  \return set of action flags
-*/
-int QtxWorkstackAction::items() const
-{
-  return myFlags;
-}
-
-/*!
-  Sets action flags
-  \param flags - new set of flags
-*/
-void QtxWorkstackAction::setItems( const int flags )
-{
-  if ( !flags || flags == myFlags || !( flags & Split ) )
-    return;
-
-  myFlags = flags;
-}
-
-/*!
-  \return true if action contains all flags
-  \param flags - new set of flags
-*/
-bool QtxWorkstackAction::hasItems( const int flags ) const
-{
-  return ( myFlags & flags ) == flags;
-}
-
-/*!
-  \return accelerator of item
-  \param id - item id
-*/
-int QtxWorkstackAction::accel( const int id ) const
-{
-  int a = 0;
-  if ( myItem.contains( id ) )
-    a = myItem[id]->accel();
-  return a;
-}
-
-/*!
-  \return icons of item
-  \param id - item id
-*/
-QIconSet QtxWorkstackAction::iconSet( const int id ) const
-{
-  QIconSet ico;
-  if ( myItem.contains( id ) )
-    ico = myItem[id]->iconSet();
-  return ico;
-}
-
-/*!
-  \return menu text of item
-  \param id - item id
-*/
-QString QtxWorkstackAction::menuText( const int id ) const
-{
-  QString txt;
-  if ( myItem.contains( id ) )
-    txt = myItem[id]->menuText();
-  return txt;
-}
-
-/*!
-  \return status tip of item
-  \param id - item id
-*/
-QString QtxWorkstackAction::statusTip( const int id ) const
-{
-  QString txt;
-  if ( myItem.contains( id ) )
-    txt = myItem[id]->statusTip();
-  return txt;
-}
-
-/*!
-  Changes accelerator of item
-  \param id - item id
-  \param a - new accelerator
-*/
-void QtxWorkstackAction::setAccel( const int id, const int a )
-{
-  if ( myItem.contains( id ) )
-    myItem[id]->setAccel( a );
-}
-
-/*!
-  Changes icons of item
-  \param id - item id
-  \param ico - new icons
-*/
-void QtxWorkstackAction::setIconSet( const int id, const QIconSet& ico )
-{
-  if ( myItem.contains( id ) )
-    myItem[id]->setIconSet( ico );
-}
-
-/*!
-  Changes menu text of item
-  \param id - item id
-  \param txt - new menu text
-*/
-void QtxWorkstackAction::setMenuText( const int id, const QString& txt )
-{
-  if ( myItem.contains( id ) )
-    myItem[id]->setMenuText( txt );
-}
-
-/*!
-  Changes status tip of item
-  \param id - item id
-  \param txt - new status tip
-*/
-void QtxWorkstackAction::setStatusTip( const int id, const QString& txt )
-{
-  if ( myItem.contains( id ) )
-    myItem[id]->setStatusTip( txt );
-}
-
-/*!
-  Adds action to widget
-  \param wid - widget
-*/
-bool QtxWorkstackAction::addTo( QWidget* wid )
-{
-  return addTo( wid, -1 );
-}
-
-/*!
-  Adds action to widget
-  \param wid - widget
-  \param idx - position
-*/
-bool QtxWorkstackAction::addTo( QWidget* wid, const int idx )
-{
-  if ( !wid || !wid->inherits( "QPopupMenu" ) )
-    return false;
-
-  QPopupMenu* pm = (QPopupMenu*)wid;
-  checkPopup( pm );
-
-  if ( myMenu.contains( pm ) )
-    return false;
-
-  myMenu.insert( pm, QIntList() );
-  fillPopup( pm, idx );
-
-  connect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-  connect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onPopupDestroyed( QObject* ) ) );
-
-  return true;
-}
-
-/*!
-  Removes action from widget
-  \param wid - widget
-*/
-bool QtxWorkstackAction::removeFrom( QWidget* wid )
-{
-  if ( !wid || !wid->inherits( "QPopupMenu" ) )
-    return false;
-
-  QPopupMenu* pm = (QPopupMenu*)wid;
-  if ( !myMenu.contains( pm ) )
-    return false;
-
-  clearPopup( pm );
-
-  disconnect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-  disconnect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onPopupDestroyed( QObject* ) ) );
-
-  myMenu.remove( pm );
-
-  return true;
-}
-
-/*!
-  Performs action
-  \param type - action type
-*/
-void QtxWorkstackAction::perform( const int type )
-{
-  switch ( type )
-  {
-  case VSplit:
-    workstack()->splitVertical();
-    break;
-  case HSplit:
-    workstack()->splitHorizontal();
-    break;
-  }
-}
-
-/*!
-  SLOT: called just before the popup menu is displayed, updates popup
-*/
-void QtxWorkstackAction::onAboutToShow()
-{
-  const QObject* obj = sender();
-  if ( !obj || !obj->inherits( "QPopupMenu" ) )
-    return;
-
-  QtxWorkstack* ws = workstack();
-  if ( ws && myItem.contains( VSplit ) )
-    myItem[VSplit]->setAccel( ws->accel( QtxWorkstack::SplitVertical ) );
-  if ( ws && myItem.contains( HSplit ) )
-    myItem[HSplit]->setAccel( ws->accel( QtxWorkstack::SplitHorizontal ) );
-
-  updatePopup( (QPopupMenu*)obj );
-}
-
-/*!
-  SLOT: called when popup menu is destroyed, removes it from menu
-*/
-void QtxWorkstackAction::onPopupDestroyed( QObject* obj )
-{
-  myMenu.remove( (QPopupMenu*)obj );
-}
-
-/*!
-  Updates popup
-  \param pm - popup menu
-*/
-void QtxWorkstackAction::checkPopup( QPopupMenu* pm )
-{
-  if ( !myMenu.contains( pm ) )
-    return;
-
-  QIntList updList;
-  for ( QIntList::const_iterator it = myMenu[pm].begin(); it != myMenu[pm].end(); ++it )
-  {
-    if ( pm->indexOf( *it ) != -1 )
-      updList.append( *it );
-  }
-
-  myMenu.remove( pm );
-
-  if ( !updList.isEmpty() )
-    myMenu.insert( pm, updList );
-  else
-  {
-    disconnect( pm, SIGNAL( aboutToShow() ), this, SLOT( onAboutToShow() ) );
-    disconnect( pm, SIGNAL( destroyed( QObject* ) ), this, SLOT( onPopupDestroyed( QObject* ) ) );
-  }
-}
-
-/*!
-  Clears and refills popup and updates state of actions
-  \param pm - popup menu
-*/
-void QtxWorkstackAction::updatePopup( QPopupMenu* pm )
-{
-  if ( !myMenu.contains( pm ) )
-    return;
-
-  fillPopup( pm, clearPopup( pm ) );
-
-  int count = workstack() ? workstack()->splitWindowList().count() : 0;
-  myItem[VSplit]->setEnabled( count > 1 );
-  myItem[HSplit]->setEnabled( count > 1 );
-}
-
-/*!
-  Clears popup
-  \param pm - popup menu
-*/
-int QtxWorkstackAction::clearPopup( QPopupMenu* pm )
-{
-  if ( !myMenu.contains( pm ) )
-    return -1;
-
-  int idx = -1;
-  const QIntList& lst = myMenu[pm];
-  for ( QIntList::const_iterator it = lst.begin(); it != lst.end() && idx == -1; ++it )
-    idx = pm->indexOf( *it );
-
-  for ( ItemMap::ConstIterator mit = myItem.begin(); mit != myItem.end(); ++mit )
-    mit.data()->removeFrom( pm );
-
-  for ( QIntList::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
-    pm->removeItem( *itr );
-
-  return idx;
-}
-
-/*!
-  Fills popup with items
-  \param pm - popup menu
-  \param idx - position
-*/
-void QtxWorkstackAction::fillPopup( QPopupMenu* pm, const int idx )
-{
-  if ( !pm )
-    return;
-
-  int index = idx < 0 ? pm->count() : QMIN( (int)pm->count(), idx );
-
-  myMenu.insert( pm, QIntList() );
-  QIntList& lst = myMenu[pm];
-
-  for ( ItemMap::ConstIterator mit = myItem.begin(); mit != myItem.end(); ++mit )
-  {
-    if ( !hasItems( mit.key() ) )
-      continue;
-
-    mit.data()->addTo( pm, index );
-    lst.append( pm->idAt( index++ ) );
-  }
-
-  QtxWorkstack* ws = workstack();
-  if ( !ws || !hasItems( Windows ) )
-    return;
-
-  QWidgetList wList = ws->windowList();
-  if ( wList.isEmpty() )
-    return;
-
-  lst.append( pm->insertSeparator( index++ ) );
-
-  int param = 0;
-  pm->setCheckable( true );
-  for ( QWidgetListIt it( wList ); it.current(); ++it )
-  {
-    int id = pm->insertItem( it.current()->caption(), this, SLOT( onItemActivated( int ) ), 0, -1, index++ );
-    pm->setItemParameter( id, param++ );
-    pm->setItemChecked( id, it.current() == ws->activeWindow() );
-    lst.append( id );
-  }
-}
-
-/*!
-  SLOT: called when popup item corresponding to window is activated, activates window
-*/
-void QtxWorkstackAction::onItemActivated( int idx )
-{
-  QtxWorkstack* ws = workstack();
-  if ( !ws )
-    return;
-
-  QWidgetList wList = ws->windowList();
-  if ( idx < 0 || idx >= (int)wList.count() )
-    return;
-
-  wList.at( idx )->setFocus();
-}
diff --git a/src/Qtx/QtxWorkstackAction.h b/src/Qtx/QtxWorkstackAction.h
deleted file mode 100644 (file)
index 650184d..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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:      QtxWorkstackAction.h
-// Author:    Sergey TELKOV
-
-#ifndef QTXWORKSTACKACTION_H
-#define QTXWORKSTACKACTION_H
-
-#include "QtxAction.h"
-
-class QtxWorkstack;
-
-#ifdef WIN32
-#pragma warning( disable:4251 )
-#endif
-
-class QTX_EXPORT QtxWorkstackAction : public QtxAction
-{
-  Q_OBJECT
-
-public:
-  enum { VSplit     = 0x0001,
-         HSplit     = 0x0002,
-         Windows    = 0x0010,
-         Split      = VSplit | HSplit,
-         Standard   = Split | Windows };
-
-public:
-  QtxWorkstackAction( QtxWorkstack*, QObject* = 0, const char* = 0 );
-  virtual ~QtxWorkstackAction();
-
-  QtxWorkstack* workstack() const;
-
-  int           items() const;
-  void          setItems( const int );
-  bool          hasItems( const int ) const;
-
-  int           accel( const int ) const;
-  QIconSet      iconSet( const int ) const;
-  QString       menuText( const int ) const;
-  QString       statusTip( const int ) const;
-
-  void          setAccel( const int, const int );
-  void          setIconSet( const int, const QIconSet& );
-  void          setMenuText( const int, const QString& );
-  void          setStatusTip( const int, const QString& );
-
-  virtual bool  addTo( QWidget* );
-  virtual bool  addTo( QWidget*, const int );
-  virtual bool  removeFrom( QWidget* );
-
-  void          perform( const int );
-
-private slots:
-  void          onAboutToShow();
-  void          onItemActivated( int );
-  void          onPopupDestroyed( QObject* );
-
-private:
-  void          checkPopup( QPopupMenu* );
-  void          updatePopup( QPopupMenu* );
-
-  int           clearPopup( QPopupMenu* );
-  void          fillPopup( QPopupMenu*, const int );
-
-private:
-  typedef QMap<QPopupMenu*, QIntList> MenuMap;
-  typedef QMap<int, QtxAction*>       ItemMap;
-
-private:
-  MenuMap       myMenu;
-  ItemMap       myItem;
-  int           myFlags;
-  QtxWorkstack* myWorkstack;
-};
-
-#ifdef WIN32
-#pragma warning( default:4251 )
-#endif
-
-#endif
diff --git a/src/SUIT/Makefile.in b/src/SUIT/Makefile.in
deleted file mode 100755 (executable)
index bc25b71..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#  Copyright (C) 2005  CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D
-#
-#  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   : Makefile.in
-#  Author : Vladimir Klyachin (OCN)
-#  Module : suit
-#  $Header$
-
-top_srcdir=@top_srcdir@
-top_builddir=../..
-srcdir=@srcdir@
-VPATH=.:@srcdir@:@srcdir@/resources
-
-
-@COMMENCE@
-
-# header files 
-EXPORT_HEADERS= SUIT.h \
-         SUIT_ActionOperation.h \
-        SUIT_Application.h \
-        SUIT_Convertor.h \
-        SUIT_DataObject.h \
-        SUIT_DataObjectIterator.h \
-        SUIT_DataObjectKey.h \
-        SUIT_DataOwner.h \
-        SUIT_Desktop.h \
-        SUIT_ExceptionHandler.h \
-        SUIT_FileDlg.h \
-        SUIT_FileValidator.h \
-        SUIT_MessageBox.h \
-        SUIT_Operation.h \
-        SUIT_OverrideCursor.h \
-        SUIT_ParserSettings.h \
-        SUIT_PopupClient.h \
-        SUIT_ResourceMgr.h \
-        SUIT_SelectionMgr.h \
-        SUIT_Selector.h \
-        SUIT_Session.h \
-        SUIT_SmartPtr.h \
-        SUIT_Study.h \
-        SUIT_ToolButton.h \
-        SUIT_Tools.h \
-        SUIT_ViewManager.h \
-        SUIT_ViewModel.h \
-        SUIT_ViewWindow.h \
-        SUIT_SelectionFilter.h \
-        SUIT_Accel.h \
-        SUIT_TreeSync.h
-
-# .po files to transform in .qm
-PO_FILES = SUIT_images.po \
-          SUIT_msg_en.po 
-                    
-# Libraries targets
-LIB = libsuit.la
-
-LIB_SRC= SUIT_ActionOperation.cxx \
-         SUIT_Application.cxx \
-        SUIT_DataObject.cxx \
-        SUIT_DataObjectIterator.cxx \
-        SUIT_DataObjectKey.cxx \
-        SUIT_DataOwner.cxx \
-        SUIT_Desktop.cxx \
-        SUIT_ExceptionHandler.cxx \
-        SUIT_FileDlg.cxx \
-        SUIT_FileValidator.cxx \
-        SUIT_MessageBox.cxx \
-        SUIT_Operation.cxx \
-        SUIT_OverrideCursor.cxx \
-        SUIT_ParserSettings.cxx \
-        SUIT_PopupClient.cxx \
-        SUIT_ResourceMgr.cxx \
-        SUIT_SelectionMgr.cxx \
-        SUIT_Selector.cxx \
-        SUIT_Session.cxx \
-        SUIT_Study.cxx \
-        SUIT_ToolButton.cxx \
-        SUIT_Tools.cxx \
-        SUIT_ViewManager.cxx \
-        SUIT_ViewModel.cxx \
-        SUIT_ViewWindow.cxx \
-        SUIT_SelectionFilter.cxx \
-        SUIT_Accel.cxx 
-
-LIB_MOC = SUIT_ActionOperation.h \
-          SUIT_Application.h \
-         SUIT_DataObject.h \
-         SUIT_Desktop.h \
-         SUIT_FileDlg.h \
-         SUIT_Operation.h \
-         SUIT_PopupClient.h \
-         SUIT_Session.h \
-         SUIT_Study.h \
-         SUIT_ToolButton.h \
-         SUIT_ViewModel.h \
-         SUIT_ViewWindow.h \
-         SUIT_ViewManager.h \
-         SUIT_SelectionMgr.h \
-          SUIT_Selector.h \
-         SUIT_Accel.h 
-
-RESOURCES_FILES = \
-       cascade.png \
-       htile.png \
-       vtile.png
-
-CPPFLAGS+=$(QT_INCLUDES)
-
-LDFLAGS+=$(QT_MT_LIBS) -lqtx
-
-@CONCLUDE@
index 82940286ad934effc76e4d8aa5a8b7de6a85d692..151fba4d1796ccaa854b4719a71633845464dbad 100755 (executable)
 #define SUIT_H
 
 #if defined SUIT_EXPORTS
-#if defined WNT
+#if defined WIN32
 #define SUIT_EXPORT __declspec( dllexport )
 #else
 #define SUIT_EXPORT
 #endif
 #else
-#if defined WNT
+#if defined WIN32
 #define SUIT_EXPORT __declspec( dllimport )
 #else
 #define SUIT_EXPORT
@@ -39,7 +39,7 @@
 #define true  1
 #endif
 
-#if defined WNT
+#if defined WIN32
 #pragma warning ( disable: 4251 )
 #endif
 
index 7bc7b5167d5a6865851fd0ba03efe82c1228df94..9e92904b5600aa7850c9b7152e6c0fee3d5478be 100644 (file)
 // SUIT_Accel.cxx: implementation of the SUIT_Accel class.
 
 #include "SUIT_Accel.h"
+
+#include "SUIT_ViewModel.h"
 #include "SUIT_ViewWindow.h"
 #include "SUIT_ViewManager.h"
-#include "SUIT_ViewModel.h"
-
-#include <qobjectlist.h>
-#include <qapplication.h>
-#include <qnamespace.h>
 
+#include <QtGui/qevent.h>
+#include <QtGui/qapplication.h>
 
 SUIT_Accel* SUIT_Accel::myself = 0;
 
 /*! Constructor [private].*/
 SUIT_Accel::SUIT_Accel()
-  : QObject( qApp, "SUIT_Accel" )
+: QObject( QCoreApplication::instance() )
 {
-  qApp->installEventFilter( this );
+  QCoreApplication::instance()->installEventFilter( this );
 }
 
 /*! getAccel() : public interface for SUIT_Accel object.  Only one instance is created and returned. */
@@ -61,10 +60,12 @@ void SUIT_Accel::setActionKey( const int action, const int key, const QString& t
 /*! unsetActionKey() : unregister a certain key accelerator */
 void SUIT_Accel::unsetActionKey( const int key, const QString& type )
 {
-  if ( myMap.contains( type ) ) {
+  if ( myMap.contains( type ) )
+  {
     IdActionMap idActionMap = myMap[type];
-    if ( idActionMap.contains( key ) ) {
-      idActionMap.erase( key );
+    if ( idActionMap.contains( key ) )
+    {
+      idActionMap.remove( key );
       myMap[type] = idActionMap;
     }
   }
@@ -73,7 +74,8 @@ void SUIT_Accel::unsetActionKey( const int key, const QString& type )
 /*! getParentViewWindow() : returns given object or any of its parents-grandparents-.. if it is a SUIT_ViewWindow */ 
 SUIT_ViewWindow* getParentViewWindow( const QObject* obj )
 {
-  if ( obj ) {
+  if ( obj )
+  {
     if ( obj->inherits( "SUIT_ViewWindow" ) )
       return (SUIT_ViewWindow*)obj;
     else
@@ -83,17 +85,16 @@ SUIT_ViewWindow* getParentViewWindow( const QObject* obj )
 }
 
 /*! getKey() : returns integer key code (with modifiers) made of key pressed 'inside' given event */
-int getKey( QKeyEvent *keyEvent )
+int getKey( QKeyEventkeyEvent )
 {
-  int key = keyEvent->key(), 
-    state = keyEvent->state();
-  if ( state & Qt::ShiftButton )   
+  int key = keyEvent->key(), state = keyEvent->modifiers();
+  if ( state & Qt::ShiftModifier )   
     key += Qt::SHIFT;
-  if ( state & Qt::ControlButton ) 
+  if ( state & Qt::ControlModifier )
     key += Qt::CTRL;
-  if ( state & Qt::AltButton )     
+  if ( state & Qt::AltModifier )
     key += Qt::ALT;
-  if ( state & Qt::MetaButton )    
+  if ( state & Qt::MetaModifier )
     key += Qt::META;
   return key;
 }
index fdc9cd384c97bc4055bdb29243d26817ef395845..968e0776a39377e71617934971abeee746aeec4b 100644 (file)
 //
 // SUIT_Accel.h: interface for the SUIT_Accel class.
 
-#ifndef SUIT_Accel_h 
-#define SUIT_Accel_h
+#ifndef SUIT_ACELL_H
+#define SUIT_ACELL_H
 
 #include "SUIT.h"
 
-#include <qobject.h>
-#include <qstring.h>
-#include <qmap.h>
+#include <QtCore/qmap.h>
+#include <QtCore/qobject.h>
+#include <QtCore/qstring.h>
 
 /*!
   \class SUIT_Accel
index d56f01705fc1310dbb6a30be466f4511aef82b18..5c7b4711bf94d392250b7dd562739dfae2ffb517 100644 (file)
@@ -49,20 +49,20 @@ QtxAction* SUIT_ActionOperation::action() const
 /*!Set action.
  * Create new instance of QtxAction and set.
  */
-void SUIT_ActionOperation::setAction( const QString& text, const QIconSet& icon,
-                                     const QString& menuText, QKeySequence accel,
-                                      QObject* parent, const char* name, bool toggle )
+void SUIT_ActionOperation::setAction( const QString& text, const QIcon& icon,
+                                                             const QString& menuText, QKeySequence accel,
+                                      QObject* parent, bool toggle )
 {
-  setAction( new QtxAction( text, icon, menuText, accel, parent, name, toggle ) );
+  setAction( new QtxAction( text, icon, menuText, accel, parent, 0, toggle ) );
 }
 
 /*!Set action.
  * Create new instance of QtxAction and set.
  */
 void SUIT_ActionOperation::setAction( const QString& text, const QString& menuText,
-                                     QKeySequence accel, QObject* parent, const char* name, bool toggle )
+                                                             QKeySequence accel, QObject* parent, bool toggle )
 {
-  setAction( new QtxAction(text, menuText, accel, parent, name, toggle ) );
+  setAction( new QtxAction( text, menuText, accel, parent, 0, toggle ) );
 }
 
 /*!Set action.
index bed11e318b3be184d977bf49295a4afe7dc10153..e70d2450180b4d0b1551990684c69586b7d73d11 100644 (file)
 
 #include "SUIT_Operation.h"
 
-class QtxAction;
+class QIcon;
 class QString;
-class QIconSet;
-class QKeySequence;
 class QWidget;
+class QKeySequence;
+
+class QtxAction;
 
 /*!Provide support QtxAction*/
 class SUIT_EXPORT SUIT_ActionOperation : public SUIT_Operation
@@ -33,26 +34,26 @@ class SUIT_EXPORT SUIT_ActionOperation : public SUIT_Operation
        Q_OBJECT
 
 public:
-       SUIT_ActionOperation( SUIT_Application* theApp );
+       SUIT_ActionOperation( SUIT_Application* );
        virtual ~SUIT_ActionOperation();
 
        QtxAction*   action() const;
 
        /** @name GUI management*/
        //@{
-       virtual void setAction( const QString& text, const QIconSet& icon, const QString& menuText,
-                               QKeySequence accel, QObject* parent, const char* name = 0, bool toggle = false );
+       virtual void setAction( const QString& text, const QIcon& icon, const QString& menuText,
+                                                 QKeySequence accel, QObject* parent, bool toggle = false );
 
-       virtual void setAction( const QString& text, const QString& menuText, QKeySequence accel,
-                               QObject* parent, const char* name = 0, bool toggle = false );
+       virtual void setAction( const QString& text, const QString& menuText,
+                          QKeySequence accel, QObject* parent, bool toggle = false );
        virtual void setAction( QtxAction* theAction );
        
        bool         addTo( QWidget* theWidget );
        bool         addTo( QWidget* theWidget, int thePos );
-       
+
        void         setStatusTip( const QString& theTip );
        //@}
-       
+
 private:
        QtxAction*   myAction;
 
index bbe68030d2b757c51ddd1624e2802656960ba6fd..5e19c40ccf95772f313c46224572db0b901a4973 100755 (executable)
 #include "SUIT_Desktop.h"
 #include "SUIT_ResourceMgr.h"
 
-#include <qlabel.h>
-#include <qtimer.h>
-#include <qstatusbar.h>
+#include <QtCore/qtimer.h>
+
+#include <QtGui/qlabel.h>
+#include <QtGui/qstatusbar.h>
 
 #include <QtxAction.h>
 #include <QtxActionMenuMgr.h>
@@ -38,7 +39,9 @@ SUIT_Application::SUIT_Application()
 myStudy( 0 ),
 myDesktop( 0 ),
 myStatusLabel( 0 )
-{ 
+{
+  if ( SUIT_Session::session() )
+    SUIT_Session::session()->insertApplication( this );
 }
 
 /*!
@@ -211,7 +214,7 @@ void SUIT_Application::onInfoClear()
 */
 SUIT_Application* SUIT_Application::startApplication( int argc, char** argv ) const
 {
-  return startApplication( name(), argc, argv );
+  return startApplication( objectName(), argc, argv );
 }
 
 /*!
@@ -462,7 +465,12 @@ int SUIT_Application::createMenu( const int id, const QString& menu, const int g
 */
 void SUIT_Application::setMenuShown( QAction* a, const bool on )
 {
-  setMenuShown( actionId( a ), on );
+  if ( !a || !desktop() )
+    return;
+  
+  QtxActionMenuMgr* mMgr = desktop()->menuMgr();
+  if ( mMgr )
+    mMgr->setShown( mMgr->actionId( a ), on );
 }
 
 /*!
@@ -472,8 +480,7 @@ void SUIT_Application::setMenuShown( QAction* a, const bool on )
 */
 void SUIT_Application::setMenuShown( const int id, const bool on )
 {
-  if ( desktop() && desktop()->menuMgr() )
-    desktop()->menuMgr()->setShown( id, on );
+  setMenuShown( action( id ), on );
 }
 
 /*!
@@ -483,7 +490,12 @@ void SUIT_Application::setMenuShown( const int id, const bool on )
 */
 void SUIT_Application::setToolShown( QAction* a, const bool on )
 {
-  setToolShown( actionId( a ), on );
+  if ( !a || !desktop() )
+    return;
+  
+  QtxActionToolMgr* tMgr = desktop()->toolMgr();
+  if ( tMgr )
+    tMgr->setShown( tMgr->actionId( a ), on );
 }
 
 /*!
@@ -493,8 +505,7 @@ void SUIT_Application::setToolShown( QAction* a, const bool on )
 */
 void SUIT_Application::setToolShown( const int id, const bool on )
 {
-  if ( desktop() && desktop()->toolMgr() )
-    desktop()->toolMgr()->setShown( id, on );
+  setToolShown( action( id ), on );
 }
 
 /*!
@@ -538,10 +549,9 @@ QAction* SUIT_Application::action( const int id ) const
 int SUIT_Application::actionId( const QAction* a ) const
 {
   int id = -1;
-  for ( QMap<int, QAction*>::ConstIterator it = myActionMap.begin(); 
-       it != myActionMap.end() && id == -1;
-       ++it ) {
-    if ( it.data() == a )
+  for ( QMap<int, QAction*>::ConstIterator it = myActionMap.begin(); it != myActionMap.end() && id == -1; ++it )
+  {
+    if ( it.value() == a )
       id = it.key();
   }
   return id;
@@ -561,7 +571,7 @@ int SUIT_Application::actionId( const QAction* a ) const
   \param reciever - object that contains slot
   \param member - slot to be called when action is activated
 */
-QAction* SUIT_Application::createAction( const int id, const QString& text, const QIconSet& icon,
+QAction* SUIT_Application::createAction( const int id, const QString& text, const QIcon& icon,
                                          const QString& menu, const QString& tip, const int key,
                                          QObject* parent, const bool toggle, QObject* reciever, const char* member )
 {
@@ -569,7 +579,7 @@ QAction* SUIT_Application::createAction( const int id, const QString& text, cons
   a->setStatusTip( tip );
 
   if ( reciever && member )
-    connect( a, SIGNAL( activated() ), reciever, member );
+    connect( a, SIGNAL( triggered( bool ) ), reciever, member );
 
   registerAction( id, a );
 
index 0bf48847e47efb99ae3aaaa7a08de43aabc794b7..472c5d27bfd1576c7b9ea8b5ada20ef8c89d799d 100755 (executable)
 #include "SUIT.h"
 #include "SUIT_Study.h"
 
-#include <qobject.h>
-#include <qwidget.h>
+#include <QtCore/qmap.h>
+#include <QtGui/qwidget.h>
 
+class QIcon;
 class QLabel;
 class QString;
 class QAction;
-class QIconSet;
 class SUIT_Desktop;
 class SUIT_Convertor;
 class SUIT_ViewModel;
@@ -156,7 +156,7 @@ protected:
   QAction*              action( const int ) const;
   int                   actionId( const QAction* ) const;
   int                   registerAction( const int, QAction* );
-  QAction*              createAction( const int, const QString&, const QIconSet&, const QString&,
+  QAction*              createAction( const int, const QString&, const QIcon&, const QString&,
                                       const QString&, const int, QObject* = 0,
                                       const bool = false, QObject* = 0, const char* = 0 );
 
diff --git a/src/SUIT/SUIT_Convertor.h b/src/SUIT/SUIT_Convertor.h
deleted file mode 100755 (executable)
index fd37969..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2005  OPEN CASCADE, CEA/DEN, EDF R&D, PRINCIPIA R&D
-// 
-// 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
-//
-// SUIT_Convertor.h: interface for the SUIT_Convertor class.
-//
-
-#if !defined(AFX_SUIT_CONVERTOR_H__4C27F4C7_DC7C_4BEF_9DC1_EFB97B387EBF__INCLUDED_)
-#define AFX_SUIT_CONVERTOR_H__4C27F4C7_DC7C_4BEF_9DC1_EFB97B387EBF__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "SUIT.h"
-#include "SUIT_DataObject.h"
-#include "SUIT_ViewModel.h"
-
-/*! Provides convertation of selected object of specified viewer into SUIT_DataObject.
- *  Instance of Convertor class is created by Application according to data type and viewers used.
- */
-class SUIT_Convertor  
-{
-public:
-  virtual DataObjectList getSelectedObjects(const SUIT_ViewModel* theViewer) = 0;
-  virtual void highlight(const SUIT_ViewModel* theViewer, const DataObjectList& theObjList) = 0;
-};
-
-#endif // !defined(AFX_SUIT_CONVERTOR_H__4C27F4C7_DC7C_4BEF_9DC1_EFB97B387EBF__INCLUDED_)
index 1082579fc137817c41e73b3aab5100de6ca489e5..9f36eda1085768285edc110cb44f6bd3dafbe2c3 100755 (executable)
@@ -18,8 +18,6 @@
 //
 #include "SUIT_DataObject.h"
 
-#include <qobject.h>
-
 #include "SUIT_DataObjectKey.h"
 
 /*!
 
 SUIT_DataObject::SUIT_DataObject( SUIT_DataObject* p )
 : myParent( 0 ),
-  mySignal( 0 ),
-  myOpen( false ),
-  myCheck( false )
+mySignal( 0 ),
+myOpen( false ),
+myCheck( false ),
+myAutoDel( true )
 {
-  myChildren.setAutoDelete( true );
-
   setParent( p );
 }
 
@@ -56,8 +53,14 @@ SUIT_DataObject::~SUIT_DataObject()
     mySignal->setOwner( 0 );
   }
 
-  for ( QPtrListIterator<SUIT_DataObject> it( myChildren ); it.current(); ++it )
-    it.current()->myParent = 0;
+  for ( DataObjectList::iterator it = myChildren.begin(); it != myChildren.end(); ++it )
+    (*it)->myParent = 0;
+
+  if ( autoDeleteChildren() )
+  {
+    for ( DataObjectList::iterator itr = myChildren.begin(); itr != myChildren.end(); ++itr )
+      delete *itr;
+  }
 
   delete mySignal;
 }
@@ -79,7 +82,7 @@ SUIT_DataObject* SUIT_DataObject::firstChild() const
 {
   SUIT_DataObject* child = 0;
   if ( !myChildren.isEmpty() )
-    child = myChildren.getFirst();
+    child = myChildren.first();
   return child;
 }
 
@@ -91,7 +94,7 @@ SUIT_DataObject* SUIT_DataObject::lastChild() const
 {
   SUIT_DataObject* child = 0;
   if ( !myChildren.isEmpty() )
-    child = myChildren.getLast();
+    child = myChildren.last();
   return child;
 }
 
@@ -113,9 +116,9 @@ int SUIT_DataObject::childPos( const SUIT_DataObject* obj ) const
   int res = -1;
 
   int i = 0;
-  for ( DataObjectListIterator it( myChildren ); it.current() && res == -1; ++it, i++ )
+  for ( DataObjectList::const_iterator it = myChildren.begin(); it != myChildren.end() && res == -1; ++it, i++ )
   {
-    if ( it.current() == obj )
+    if ( *it == obj )
       res = i;
   }
 
@@ -179,7 +182,7 @@ SUIT_DataObject* SUIT_DataObject::prevBrother() const
 
 bool SUIT_DataObject::autoDeleteChildren() const
 {
-  return myChildren.autoDelete();
+  return myAutoDel;
 }
 
 /*!
@@ -188,7 +191,7 @@ bool SUIT_DataObject::autoDeleteChildren() const
 
 void SUIT_DataObject::setAutoDeleteChildren( const bool on )
 {
-  myChildren.setAutoDelete( on );
+  myAutoDel = on;
 }
 
 /*!
@@ -197,11 +200,11 @@ void SUIT_DataObject::setAutoDeleteChildren( const bool on )
 
 void SUIT_DataObject::children( DataObjectList& lst, const bool rec ) const
 {
-  for ( DataObjectListIterator it( myChildren ); it.current(); ++it )
+  for ( DataObjectList::const_iterator it = myChildren.begin(); it != myChildren.end(); ++it )
   {
-    lst.append( it.current() );
+    lst.append( *it );
     if ( rec )
-      it.current()->children( lst, rec );
+      (*it)->children( lst, rec );
   }
 }
 
@@ -231,11 +234,11 @@ void SUIT_DataObject::appendChild( SUIT_DataObject* theObj )
 
 void SUIT_DataObject::insertChild( SUIT_DataObject* theObj, int thePosition )
 {
-  if ( !theObj || myChildren.find( theObj ) != -1 )
+  if ( !theObj || myChildren.contains( theObj ) )
     return;
 
   int pos = thePosition < 0 ? myChildren.count() : thePosition;
-  myChildren.insert( QMIN( pos, (int)myChildren.count() ), theObj );
+  myChildren.insert( qMin( pos, (int)myChildren.count() ), theObj );
   theObj->setParent( this );
 }
 
@@ -248,13 +251,8 @@ void SUIT_DataObject::removeChild( SUIT_DataObject* theObj )
   if ( !theObj )
     return;
 
-  bool ad = myChildren.autoDelete();
-  myChildren.setAutoDelete( false );
-
-  if ( myChildren.remove( theObj ) )
+  if ( myChildren.removeAll( theObj ) )
     theObj->setParent( 0 );
-
-  myChildren.setAutoDelete( ad );
 }
 
 /*!
@@ -297,8 +295,8 @@ void SUIT_DataObject::reparentChildren( const SUIT_DataObject* obj )
 
   DataObjectList lst;
   obj->children( lst );
-  for ( DataObjectListIterator it( lst ); it.current(); ++it )
-    it.current()->setParent( this );
+  for ( DataObjectList::iterator it = lst.begin(); it != lst.end(); ++it )
+    (*it)->setParent( this );
 }
 
 /*!
@@ -495,9 +493,9 @@ SUIT_DataObjectKey* SUIT_DataObject::key() const
 void SUIT_DataObject::dump( const int indent ) const
 {
   QString strIndent = QString().fill( ' ', indent ); // indentation string 
-  printf( "%s%s\n", strIndent.latin1(), name().latin1() );
-  for ( DataObjectListIterator it( myChildren ); it.current(); ++it ) // iterate all children
-    it.current()->dump( indent + 2 );  // dump every child with indent + 2 spaces
+  printf( "%s%s\n", strIndent.toLatin1(), name().toLatin1() );
+  for ( DataObjectList::const_iterator it = myChildren.begin(); it != myChildren.end(); ++it )
+    (*it)->dump( indent + 2 );
 }
 
 /*!
index 01f0ffa599545604e7aa0cc7c9cfa8bbdc40fffc..ad704e5367b46905a1776da2f454d4b1f99fbf7a 100755 (executable)
 #ifndef SUIT_DATAOBJECT_H
 #define SUIT_DATAOBJECT_H
 
-#include <qobject.h>
-#include <qstring.h>
-#include <qpixmap.h>
-#include <qptrlist.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qobject.h>
+#include <QtCore/qstring.h>
+
+#include <QtGui/qpixmap.h>
 
 #include "SUIT.h"
 
 class SUIT_DataObject;
 class SUIT_DataObjectKey;
 
-typedef QPtrList<SUIT_DataObject>         DataObjectList;
-typedef QPtrListIterator<SUIT_DataObject> DataObjectListIterator;
+typedef QList<SUIT_DataObject*> DataObjectList;
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -112,6 +112,7 @@ private:
   bool                        myCheck;
   Signal*                     mySignal;
   SUIT_DataObject*            myParent;
+  bool                        myAutoDel;
   DataObjectList              myChildren;
 
   friend class SUIT_DataObject::Signal;
index c5f66be5cee0a34c9e45e940d9b4b4bb6d693e75..c1a16892dbab69073ab57b47f151445291341f20 100644 (file)
@@ -74,11 +74,11 @@ void SUIT_DataObjectIterator::operator++()
         }
         else
         {
-          aParent->myChildren.find( myCurrent );
+          int idx = aParent->myChildren.indexOf( myCurrent );
           if ( myDetourType == DepthLeft )
-            myCurrent = aParent->myChildren.next();
+            myCurrent = idx < aParent->myChildren.count() - 1 ? aParent->myChildren[idx + 1] : 0;
           else
-            myCurrent = aParent->myChildren.prev();
+            myCurrent = idx > 0 ? aParent->myChildren[idx - 1] : 0;
           if ( !myCurrent )
           {
             myCurrent = aParent;
@@ -146,9 +146,9 @@ SUIT_DataObject* SUIT_DataObjectIterator::globalSibling( SUIT_DataObject* obj, b
 
   if ( obj && ( par = parent( obj ) ) )
   {
-    par->myChildren.find( obj );
-    if ( par->myChildren.next() )
-      return par->myChildren.current();
+    int idx = par->myChildren.indexOf( obj );
+    if ( idx < par->myChildren.count() - 1 )
+      return par->myChildren[idx + 1];
     else
     {
       for ( ; par; par = globalSibling( par, next ) )
@@ -170,9 +170,9 @@ SUIT_DataObject* SUIT_DataObjectIterator::globalSibling( SUIT_DataObject* obj, b
 SUIT_DataObject* SUIT_DataObjectIterator::extreme( DataObjectList& aList, bool FromLeft ) const
 {
   if ( FromLeft )
-    return aList.getFirst();
+    return aList.first();
   else
-    return aList.getLast();
+    return aList.last();
 }
 
 /*!
index 01a91404ab3c2a14676e1dedc4fee1ade74a995e..aeb7a312759f35fccab50acff321dda90eeb819d 100755 (executable)
@@ -18,9 +18,9 @@
 //
 #include "SUIT_DataObjectKey.h"
 
-#include <qobject.h>
+#include <QtCore/qobject.h>
 
-#ifndef WNT
+#ifndef WIN32
 #include <typeinfo>
 #define _typeinfo std::type_info
 #else
index 3090afa912595ff0bc05c8f9bce1846b0ed69fa0..285388e4503964f61494c9f4ffb81b0fe0dbca69 100755 (executable)
@@ -18,7 +18,7 @@
 //
 #include "SUIT_DataOwner.h"
 
-#ifndef WNT
+#ifndef WIN32
 #include <typeinfo>
 #define _typeinfo std::type_info
 #else
@@ -77,8 +77,8 @@ bool operator<( const SUIT_DataOwnerPtr& p1, const SUIT_DataOwnerPtr& p2 )
   Constructor (default)
 */
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList()
-  : QValueList<SUIT_DataOwnerPtr>(),
-    mySkipEqual( true )
+: QList<SUIT_DataOwnerPtr>(),
+mySkipEqual( true )
 {
 }
 
@@ -86,8 +86,8 @@ SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList()
   Constructor (default)
 */
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const bool skipAllEqual )
-  : QValueList<SUIT_DataOwnerPtr>(),
-    mySkipEqual( skipAllEqual )
+: QList<SUIT_DataOwnerPtr>(),
+mySkipEqual( skipAllEqual )
 {
 }
 
@@ -95,8 +95,8 @@ SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const bool skipAllEqual )
   Constructor (copy)
 */
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l )
-  : QValueList<SUIT_DataOwnerPtr>( l ),
-    mySkipEqual( true )
+: QList<SUIT_DataOwnerPtr>( l ),
+mySkipEqual( true )
 {
 }
 
@@ -104,8 +104,8 @@ SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l )
   Constructor (copy)
 */
 SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l, const bool skipAllEqual )
-  : QValueList<SUIT_DataOwnerPtr>(),
-    mySkipEqual( skipAllEqual )
+: QList<SUIT_DataOwnerPtr>(),
+mySkipEqual( skipAllEqual )
 {
   if ( skipAllEqual == l.mySkipEqual )
     operator =( l );
@@ -113,51 +113,23 @@ SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l, co
   {
     SUIT_DataOwnerPtrList::const_iterator beginIt = l.begin();
     SUIT_DataOwnerPtrList::const_iterator endIt = l.end();
-    for( ; beginIt != endIt; ++beginIt )
+    for ( ; beginIt != endIt; ++beginIt )
       append( *beginIt );
   }
 }
 
-#ifndef QT_NO_STL
-/*!
-  Constructor (from stl)
-*/
-SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l )
-  : QValueList<SUIT_DataOwnerPtr>( l ),
-    mySkipEqual( true )
-{
-}
-#endif
-
-#ifndef QT_NO_STL
-/*!
-  Constructor (from stl)
-*/
-SUIT_DataOwnerPtrList::SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l, const bool skipAllEqual )
-  : QValueList<SUIT_DataOwnerPtr>(),
-    mySkipEqual( skipAllEqual )
-{
-  std::list<SUIT_DataOwnerPtr>::const_iterator beginIt = l.begin();
-  std::list<SUIT_DataOwnerPtr>::const_iterator endIt = l.begin();
-  for( ; beginIt != endIt; ++beginIt )
-    append( *beginIt );
-}
-#endif
-
 /*!
   Appends an item to the list
 */
-SUIT_DataOwnerPtrList::iterator SUIT_DataOwnerPtrList::append( const SUIT_DataOwnerPtr& x )
+void SUIT_DataOwnerPtrList::append( const SUIT_DataOwnerPtr& x )
 {
   if ( mySkipEqual && myMap.contains( x ) ) //contains uses SUIT_DataOwnerPtr::operator==
-    return myMap[ x ];
+    return;
 
-  iterator it = QValueList<SUIT_DataOwnerPtr>::append( x );
+  QList<SUIT_DataOwnerPtr>::append( x );
 
-   if ( mySkipEqual )
-    myMap.insert( x, it );
-
-  return it;
+  if ( mySkipEqual )
+    myMap.insert( x, 0 );
 }
 
 /*!
@@ -165,9 +137,10 @@ SUIT_DataOwnerPtrList::iterator SUIT_DataOwnerPtrList::append( const SUIT_DataOw
 */
 void SUIT_DataOwnerPtrList::clear()
 {
-  if( mySkipEqual )
+  if ( mySkipEqual )
     myMap.clear();
-  QValueList<SUIT_DataOwnerPtr>::clear();
+
+  QList<SUIT_DataOwnerPtr>::clear();
 }
 
 /*!
@@ -175,7 +148,8 @@ void SUIT_DataOwnerPtrList::clear()
 */
 uint SUIT_DataOwnerPtrList::remove(const SUIT_DataOwnerPtr& x )
 {
-  if( mySkipEqual && myMap.contains(x) )
-    myMap.remove(x);
-  return QValueList<SUIT_DataOwnerPtr>::remove( x );
+  if ( mySkipEqual && myMap.contains(x) )
+    myMap.remove( x );
+
+  return QList<SUIT_DataOwnerPtr>::removeAll( x );
 }
index 2d364fd57d8baa459f40b85b3cb61901ee6f1c77..9f6dd9049dfab82d55e5d99169b087b561b3382d 100755 (executable)
@@ -21,8 +21,8 @@
 
 #include "SUIT_SmartPtr.h"
 
-#include <qvaluelist.h>
-#include <qmap.h>
+#include <QtCore/qmap.h>
+#include <QtCore/qlist.h>
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -60,21 +60,17 @@ bool operator==( const SUIT_DataOwnerPtr&, const SUIT_DataOwnerPtr& );
 /*! \class SUIT_DataOwnerPtrList
  * \brief Manage list of SUIT_DataOwnerPtr.
  */
-class SUIT_EXPORT SUIT_DataOwnerPtrList : public QValueList<SUIT_DataOwnerPtr> 
+class SUIT_EXPORT SUIT_DataOwnerPtrList : public QList<SUIT_DataOwnerPtr>
 {
 public:
   SUIT_DataOwnerPtrList();                         //!< constructor
   SUIT_DataOwnerPtrList( const bool skipAllEqual );//!< constructor
   SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l );                         //!< copy constructor
   SUIT_DataOwnerPtrList( const SUIT_DataOwnerPtrList& l, const bool skipAllEqual );//!< copy constructor
-#ifndef QT_NO_STL
-  SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l );                         //!< copy constructor for STL list
-  SUIT_DataOwnerPtrList( const std::list<SUIT_DataOwnerPtr>& l, const bool skipAllEqual );//!< copy constructor for STL list
-#endif
 
-  iterator append      ( const SUIT_DataOwnerPtr& x );//!< append function
+  void     append      ( const SUIT_DataOwnerPtr& x );//!< append function
   void     clear       ();
-  uint     remove      (const SUIT_DataOwnerPtr& x );
+  uint     remove      ( const SUIT_DataOwnerPtr& x );
 
 private:
   // hide this methods: only append() should be used to add items to the list
@@ -84,8 +80,8 @@ private:
   void push_back  ( const SUIT_DataOwnerPtr& x );//!< hide method
 
 private:
-  bool                              mySkipEqual;
-  QMap<SUIT_DataOwnerPtr, iterator> myMap;
+  QMap<SUIT_DataOwnerPtr, int> myMap;
+  bool                         mySkipEqual;
 };
 
 #ifdef WIN32
index 8d75c71740806e3794afa08c176d8866b4fede62..192dc602bfd45b2609f36de4777b1770d6a5a7a6 100755 (executable)
 #include "SUIT_Tools.h"
 #include "SUIT_ViewWindow.h"
 
-#include <QtxLogoMgr.h>
+//#include <QtxLogoMgr.h>
 #include <QtxActionMenuMgr.h>
 #include <QtxActionToolMgr.h>
 
+#include <QtGui/qevent.h>
+#include <QtGui/qapplication.h>
+
 /*!\class SUIT_Desktop
  * Provide desktop management:\n
  * \li menu manager
  * \li windows
  */
 
+class SUIT_Desktop::ReparentEvent : public QEvent
+{
+public:
+  ReparentEvent( Type t, QObject* obj ) : QEvent( t ), myObj( obj ) {};
+
+  QObject* object() const { return myObj; }
+
+private:
+  QObject* myObj;
+};
+
 /*!
   Constructor.
 */
@@ -40,7 +54,7 @@ SUIT_Desktop::SUIT_Desktop()
 {
   myMenuMgr = new QtxActionMenuMgr( this );
   myToolMgr = new QtxActionToolMgr( this );
-  myLogoMgr = new QtxLogoMgr( menuBar() );
+  myLogoMgr = 0;//new QtxLogoMgr( menuBar() );
 }
 
 /*!
@@ -85,18 +99,29 @@ void SUIT_Desktop::closeEvent( QCloseEvent* e )
 */
 void SUIT_Desktop::childEvent( QChildEvent* e )
 {
-  if ( e->type() == QEvent::ChildInserted && parentArea() &&
-       e->child()->isWidgetType() && e->child()->inherits( "SUIT_ViewWindow" ) )
-  {
-    QWidget* wid = (QWidget*)e->child();
-    bool vis = wid->isVisibleTo( wid->parentWidget() );
-    wid->reparent( parentArea(), QPoint( 0, 0 ), vis );
-    wid->setShown( vis );
-  }
+  if ( e->type() == QEvent::ChildAdded && e->child()->isWidgetType() )
+    QApplication::postEvent( this, new QChildEvent( QEvent::Type( Reparent ), e->child() ) );
   else
     QtxMainWindow::childEvent( e );
 }
 
+void SUIT_Desktop::customEvent( QEvent* e )
+{
+  if ( e->type() != Reparent )
+    return;
+
+  QChildEvent* re = (QChildEvent*)e;
+  if ( re->child()->inherits( "SUIT_ViewWindow" ) )
+  {
+    QWidget* wid = (QWidget*)re->child();
+    bool invis = wid->testAttribute( Qt::WA_WState_ExplicitShowHide ) &&
+                 wid->testAttribute( Qt::WA_WState_Hidden );
+
+    addWindow( wid );
+    wid->setShown( !invis );
+  }
+}
+
 /*!
   Gets menu manager.
 */
@@ -118,30 +143,13 @@ QtxActionToolMgr* SUIT_Desktop::toolMgr() const
 */
 int SUIT_Desktop::logoCount() const
 {
+  return 0;
+/*
   if ( !myLogoMgr )
     return 0;
   else
     return myLogoMgr->count();
-}
-
-/*!
-  Adds new logo to the menu bar area.
-  Obsolete. Not should be used.
-  Use SUIT_Desktop::logoInsert();
 */
-void SUIT_Desktop::addLogo( const QString& id, const QPixmap& pix )
-{
-  logoInsert( id, pix );
-}
-
-/*!
-  Removes a logo.
-  Obsolete. Not should be used.
-  Use SUIT_Desktop::logoRemove();
-*/
-void SUIT_Desktop::removeLogo( const QString& id )
-{
-  logoRemove( id );
 }
 
 /*!
@@ -149,8 +157,10 @@ void SUIT_Desktop::removeLogo( const QString& id )
 */
 void SUIT_Desktop::logoInsert( const QString& logoID, const QPixmap& logo, const int idx )
 {
+/*
   if ( myLogoMgr )
     myLogoMgr->insert( logoID, logo, idx );
+*/
 }
 
 /*!
@@ -158,8 +168,10 @@ void SUIT_Desktop::logoInsert( const QString& logoID, const QPixmap& logo, const
 */
 void SUIT_Desktop::logoRemove( const QString& logoID )
 {
+/*
   if ( myLogoMgr )
     myLogoMgr->remove( logoID );
+*/
 }
 
 /*!
@@ -167,8 +179,10 @@ void SUIT_Desktop::logoRemove( const QString& logoID )
 */
 void SUIT_Desktop::logoClear()
 {
+/*
   if ( myLogoMgr )
     myLogoMgr->clear();
+*/
 }
 
 /*!
index a346d0ca499f0531d5db55c2a33006ee8660d1c4..83ef0f2e7db01b07502193165aa6efea4e6909ad 100755 (executable)
 
 #include "SUIT.h"
 
-#include <qmap.h>
-#include <qpixmap.h>
+#include <QtCore/qmap.h>
+#include <QtCore/qlist.h>
+
+#include <QtGui/qevent.h>
+#include <QtGui/qpixmap.h>
+
 #include <QtxMainWindow.h>
 
 class QPopupMenu;
@@ -40,6 +44,10 @@ class SUIT_EXPORT SUIT_Desktop : public QtxMainWindow
 {
   Q_OBJECT
 
+  class ReparentEvent;
+
+  enum { Reparent = QEvent::User };
+
 public:
   SUIT_Desktop();
   virtual ~SUIT_Desktop();
@@ -48,10 +56,7 @@ public:
   QtxActionToolMgr*        toolMgr() const;
 
   virtual SUIT_ViewWindow* activeWindow() const = 0;
-  virtual QPtrList<SUIT_ViewWindow> windows() const = 0;
-
-  void                     addLogo( const QString&, const QPixmap& ); // Not should be used. Will be removed.
-  void                     removeLogo( const QString& );              // Not should be used. Will be removed.
+  virtual QList<SUIT_ViewWindow*> windows() const = 0;
 
   int                      logoCount() const;
 
@@ -61,7 +66,7 @@ public:
 
   void                     emitActivated();
 
-signals:
+Q_SIGNALS:
   void                     activated();
   void                     deactivated();
   void                     windowActivated( SUIT_ViewWindow* );
@@ -69,10 +74,11 @@ signals:
 
 protected:
   virtual bool             event( QEvent* );
+  virtual void             customEvent( QEvent* );
   virtual void             closeEvent( QCloseEvent* );
   virtual void             childEvent( QChildEvent* );
 
-  virtual QWidget*         parentArea() const = 0;
+  virtual void             addWindow( QWidget* ) = 0;
 
 private:
   QtxActionMenuMgr*        myMenuMgr;
index 7a5083c91799c3f4d1e45147f3c2fdc1d7fa9065..f22b13cb8515e3d3fb2b75868aadb5003bfcf33e 100755 (executable)
@@ -20,7 +20,7 @@
 
 #include "SUIT_MessageBox.h"
 
-#include <qapplication.h>
+#include <QtGui/qapplication.h>
 
 /*!\class SUIT_ExceptionHandler
  * Show exception message on error handler.
@@ -53,5 +53,5 @@ void SUIT_ExceptionHandler::showMessage( const QString& title, const QString& ms
   while ( QApplication::overrideCursor() )
     QApplication::restoreOverrideCursor();
   
-  SUIT_MessageBox::error1( qApp->mainWidget(), title, msg, "OK" );
+  SUIT_MessageBox::error1( 0, title, msg, "OK" );
 }
index 7fb1ee7c6a4b424fc09d75bc84a464736ea5bfe4..40fb501e3e91a6bbd204db073eea3bda8f0ee7a2 100755 (executable)
 #include "SUIT_ResourceMgr.h"
 #include "SUIT_FileValidator.h"
 
-#include <qdir.h>
-#include <qlabel.h>
-#include <qregexp.h>
-#include <qpalette.h>
-#include <qobjectlist.h>
-#include <qcombobox.h>
-#include <qpushbutton.h>
-#include <qapplication.h>
+#include <QtCore/qdir.h>
+#include <QtCore/qregexp.h>
+
+#include <QtGui/qlabel.h>
+#include <QtGui/qpalette.h>
+#include <QtGui/qcombobox.h>
+#include <QtGui/qpushbutton.h>
+#include <QtGui/qgridlayout.h>
+#include <QtGui/qapplication.h>
 
 #define MIN_COMBO_SIZE 100
 
@@ -90,39 +91,50 @@ const bool IGNORE_NON_MATCHING_EXTENSION = true;
 QString SUIT_FileDlg::myLastVisitedPath;
 
 /*! Constructor */
-SUIT_FileDlg::SUIT_FileDlg( QWidget* parent, bool open, bool showQuickDir, bool modal ) :
-QFileDialog( parent, 0, modal ),
+SUIT_FileDlg::SUIT_FileDlg( QWidget* parent, bool open, bool showQuickDir, bool modal )
+: QFileDialog( parent ),
 myValidator( 0 ),
-myQuickCombo( 0 ), myQuickButton( 0 ), myQuickLab( 0 ),
+myQuickCombo( 0 ),
+myQuickButton( 0 ),
+myQuickLab( 0 ),
 myOpen( open )//,
 //myAccepted( false )
-{    
-  const QObjectList* child = children();
-  QObjectList::const_iterator anIt = child->begin(), aLast = child->end();
-  for( ; anIt!=aLast; anIt++ )
-    if( (*anIt)->inherits( "QPushButton" ) )
+{
+  setModal( modal );
+
+  const QObjectList& child = children();
+  for ( QObjectList::const_iterator anIt = child.begin(); anIt != child.end(); ++anIt )
+  {
+    QPushButton* pb = ::qobject_cast<QPushButton*>( *anIt );
+    if ( pb )
     {
-      QPushButton* bt = ( QPushButton* )( *anIt );
-      bt->setDefault( false );
-      bt->setAutoDefault( false );
+      pb->setDefault( false );
+      pb->setAutoDefault( false );
     }
+  }
 
-  if ( parent->icon() )
-    setIcon( *parent->icon() );       
+  if ( parent )
+    setWindowIcon( parent->windowIcon() );
   setSizeGripEnabled( true );
   
-  if ( showQuickDir ) {
+  QGridLayout* grid = ::qobject_cast<QGridLayout*>( layout() );
+  if ( showQuickDir && grid )
+  {
     // inserting quick dir combo box
-    myQuickLab  = new QLabel(tr("LAB_QUICK_PATH"), this);
-    myQuickCombo = new QComboBox(false, this);
-    myQuickCombo->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed));
-    myQuickCombo->setMinimumSize(MIN_COMBO_SIZE, 0);
+    myQuickLab  = new QLabel( tr( "LAB_QUICK_PATH" ), this );
+    myQuickCombo = new QComboBox( this );
+    myQuickCombo->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) );
+    myQuickCombo->setMinimumSize( MIN_COMBO_SIZE, 0 );
     
-    myQuickButton = new QPushButton(tr("BUT_ADD_PATH"), this);
+    myQuickButton = new QPushButton( tr( "BUT_ADD_PATH" ), this );
 
-    connect(myQuickCombo,  SIGNAL(activated(const QString&)), this, SLOT(quickDir(const QString&)));
-    connect(myQuickButton, SIGNAL(clicked()),                 this, SLOT(addQuickDir()));
-    addWidgets(myQuickLab, myQuickCombo, myQuickButton);
+    connect( myQuickCombo,  SIGNAL( activated( const QString& ) ), this, SLOT( quickDir( const QString& ) ) );
+    connect( myQuickButton, SIGNAL( clicked() ),                   this, SLOT( addQuickDir() ) );
+
+    int row = grid->rowCount();
+    grid->addWidget( myQuickLab, row, 0 );
+    grid->addWidget( myQuickCombo, row, 1, 1, 3 );
+    grid->addWidget( myQuickButton, row, 5 );
 
     // getting dir list from settings
     QString dirs;
@@ -130,27 +142,29 @@ myOpen( open )//,
     if ( resMgr )
       dirs = resMgr->stringValue( "FileDlg", QString( "QuickDirList" ) );
 
-    QStringList dirList = QStringList::split(';', dirs, false);
-    if (dirList.count() > 0) {
-      for (unsigned i = 0; i < dirList.count(); i++)
-        myQuickCombo->insertItem(dirList[i]);
-    }
-    else {
-      myQuickCombo->insertItem(QDir::homeDirPath());
+    QStringList dirList = dirs.split( ';' );
+    if ( dirList.count() > 0 )
+    {
+      for ( unsigned i = 0; i < dirList.count(); i++ )
+        myQuickCombo->addItem( dirList[i] );
     }
+    else
+      myQuickCombo->addItem( QDir::homePath() );
   }
-  setMode( myOpen ? ExistingFile : AnyFile );     
-  setCaption( myOpen ? tr( "INF_DESK_DOC_OPEN" ) : tr( "INF_DESK_DOC_SAVE" ) );
+  setAcceptMode( myOpen ? AcceptOpen: AcceptSave );
+  setWindowTitle( myOpen ? tr( "INF_DESK_DOC_OPEN" ) : tr( "INF_DESK_DOC_SAVE" ) );
 
   // If last visited path doesn't exist -> switch to the first preferred path
-  if ( !myLastVisitedPath.isEmpty() ) {
+  if ( !myLastVisitedPath.isEmpty() )
+  {
     if ( !processPath( myLastVisitedPath ) && showQuickDir )
-      processPath( myQuickCombo->text( 0 ) );
+      processPath( myQuickCombo->itemText( 0 ) );
   }
-  else {
+  else
+  {
     if ( showQuickDir )
-      processPath(myQuickCombo->text( 0 ) );
-  } 
+      processPath( myQuickCombo->itemText( 0 ) );
+  }
 
   // set default file validator
   myValidator = new SUIT_FileValidator(this);
@@ -162,11 +176,22 @@ SUIT_FileDlg::~SUIT_FileDlg()
   setValidator( 0 );
 }
 
+bool SUIT_FileDlg::event( QEvent* e )
+{
+  bool res = QFileDialog::event( e );
+
+  if ( e->type() == QEvent::Polish )
+    polish();
+
+  return res;
+}
+
 /*! Redefined from QFileDialog.*/
 void SUIT_FileDlg::polish()
 {
-  QFileDialog::polish();
-  if ( myQuickButton && myQuickLab ) {
+/*
+  if ( myQuickButton && myQuickLab )
+  {
     // the following is a workaround for proper layouting of custom widgets
     QValueList<QPushButton*> buttonList;
     QValueList<QLabel*> labelList;
@@ -198,6 +223,7 @@ void SUIT_FileDlg::polish()
        (*lListIt)->setFixedWidth( maxLabWidth );
     }
   }
+*/
 }
 
 /*! Sets validator for file names to open/save
@@ -236,13 +262,19 @@ void SUIT_FileDlg::accept()
    * (e.g. permission denied)
    */
 //  if ( !myAccepted ) {
-    if ( mode() != ExistingFiles ) {
-      mySelectedFile = QFileDialog::selectedFile();
+    if ( acceptMode() != AcceptOpen )
+    {
+      QString fn;
+      QStringList lst = QFileDialog::selectedFiles();
+      if ( !lst.isEmpty() )
+        fn = lst.first();
+      mySelectedFile = fn;
       addExtension();
     }
 
-    if ( acceptData() ) {
-      myLastVisitedPath = dirPath();
+    if ( acceptData() )
+    {
+      myLastVisitedPath = directory().path();
       QFileDialog::accept();        
 //      myAccepted = true;
     }
@@ -268,7 +300,7 @@ bool SUIT_FileDlg::acceptData()
   {
     if ( isOpenDlg() )
     {
-      if ( mode() == ExistingFiles )
+      if ( acceptMode() == AcceptOpen )
       {
              QStringList fileNames = selectedFiles();
              for ( int i = 0; i < (int)fileNames.count(); i++ )
@@ -296,11 +328,11 @@ bool SUIT_FileDlg::acceptData()
 void SUIT_FileDlg::addExtension()
 {
   // check if file name entered is empty
-  if ( mySelectedFile.stripWhiteSpace().isEmpty() )
+  if ( mySelectedFile.trimmed().isEmpty() )
     return;
 
   // current file extension
-  QString anExt = "." + SUIT_Tools::extension( mySelectedFile.stripWhiteSpace() ).stripWhiteSpace();
+  QString anExt = "." + SUIT_Tools::extension( mySelectedFile.trimmed() ).trimmed();
 
   // If the file already has extension and it does not match the filter there are two choices:
   // - to leave it 'as is'
@@ -315,7 +347,7 @@ void SUIT_FileDlg::addExtension()
   int len, index = r.match( selectedFilter().stripWhiteSpace(), 0, &len );
 #else
   QRegExp r( QString::fromLatin1("\\(?[a-zA-Z0-9.*? +;#|]*\\)?$") );
-  int index = r.search( selectedFilter().stripWhiteSpace() );
+  int index = r.indexIn( selectedFilter().trimmed() );
 #endif
 
   if ( index >= 0 ) {            
@@ -325,22 +357,23 @@ void SUIT_FileDlg::addExtension()
     // will have the pattern (\.txt|\..*xx|\.c\+\+|\..*) (as we validate extension only, 
     // we remove everything except extension mask from the pattern
 #if QT_VERSION < 0x030000
-    QString wildcard = selectedFilter().mid( index, len ).stripWhiteSpace();
+    QString wildcard = selectedFilter().mid( index, len ).trimmed();
 #else
-    QString wildcard = selectedFilter().mid( index, r.matchedLength() ).stripWhiteSpace();
+    QString wildcard = selectedFilter().mid( index, r.matchedLength() ).trimmed();
 #endif
     // replace '|' and ';' separators by space symbol and also brackets if there are some
     wildcard.replace( QRegExp( "[\\|;|(|)]" )," " ); 
 
-    QString aPattern = wildcard.replace( QRegExp( "(^| )(\\s*)[0-9a-zA-Z*_?]*\\."), " \\." ).stripWhiteSpace().
+    QString aPattern = wildcard.replace( QRegExp( "(^| )(\\s*)[0-9a-zA-Z*_?]*\\."), " \\." ).trimmed().
                                          replace( QRegExp( "\\s+" ), "|" ).replace( QRegExp( "[?]" ),".?" ).
                                          replace( QRegExp( "[*]" ),".*" ).replace( QRegExp( "[+]" ),"\\+" );
 
     // now we get the list of all extension masks and remove all which does not contain wildcard symbols
-    QStringList extList = QStringList::split( "|",aPattern );
-    for( int i = extList.count() - 1; i >= 0; i-- ) {
+    QStringList extList = aPattern.split( "|", QString::SkipEmptyParts );
+    for ( int i = extList.count() - 1; i >= 0; i-- )
+    {
       if ( !extList[i].contains( "." ) )
-        extList.remove( extList.at( i ) );
+        extList.removeAt( i );
     }
     aPattern = extList.join( "|" );
 
@@ -348,19 +381,19 @@ void SUIT_FileDlg::addExtension()
     QRegExp anExtRExp( "^("+ aPattern + ")$" );
 
     // Check if the current file extension matches the pattern
-    if ( anExtRExp.match( anExt ) < 0 )
+    if ( !anExtRExp.exactMatch( anExt ) )
     {
       // find first appropriate extension in the selected filter 
       // (it should be without wildcard symbols)
       for ( int i = 0; i < (int)extList.count(); i++ )
       {
         QString newExt = extList[i].replace( QRegExp( "[\\\\][+]" ),"+" );
-        int res = newExt.findRev( '.' );
+        int res = newExt.lastIndexOf( '.' );
         if ( res >= 0 )
           newExt = newExt.mid( res + 1 );
-        if ( newExt.find( QRegExp("[*|?]" ) ) < 0 )
+        if ( newExt.indexOf( QRegExp("[*|?]" ) ) < 0 )
         {
-          mySelectedFile.stripWhiteSpace();
+          mySelectedFile.trimmed();
           mySelectedFile += mySelectedFile.endsWith(".") ? newExt : QString(".") + newExt;
           break;
         }
@@ -372,20 +405,24 @@ void SUIT_FileDlg::addExtension()
 /*! Processes selection : tries to set given path or filename as selection */
 bool SUIT_FileDlg::processPath( const QString& path )
 {
-  if ( !path.isNull() ) {
+  if ( !path.isNull() )
+  {
     QFileInfo fi( path );
-    if ( fi.exists() ) {
+    if ( fi.exists() )
+    {
       if ( fi.isFile() )
-       setSelection( path );
+             selectFile( path );
       else if ( fi.isDir() )
-       setDir( path );
+             setDirectory( path );
       return true;
     }
-    else {
-      if ( QFileInfo( fi.dirPath() ).exists() ) {
-       setDir( fi.dirPath() );
-       setSelection( path );
-       return true;
+    else
+    {
+      if ( QFileInfo( SUIT_Tools::dir( path ) ).exists() )
+      {
+             setDirectory( SUIT_Tools::dir( path ) );
+             selectFile( path );
+             return true;
       }
     }
   }
@@ -395,8 +432,9 @@ bool SUIT_FileDlg::processPath( const QString& path )
 void SUIT_FileDlg::quickDir(const QString& dirPath)
 {
   QString aPath = dirPath;
-  if ( !QDir(aPath).exists() ) {
-    aPath = QDir::homeDirPath();
+  if ( !QDir(aPath).exists() )
+  {
+    aPath = QDir::homePath();
     SUIT_MessageBox::error1(this, 
                   tr("ERR_ERROR"),
                   tr("ERR_DIR_NOT_EXIST").arg(dirPath), 
@@ -411,89 +449,91 @@ void SUIT_FileDlg::quickDir(const QString& dirPath)
 */
 void SUIT_FileDlg::addQuickDir()
 {
-  QString dp = dirPath();
-  if ( !dp.isEmpty() ) {
+  QString dp = directory().path();
+  if ( !dp.isEmpty() )
+  {
     QDir dir( dp );
     // getting dir list from settings
     QString dirs;
     SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
     if ( resMgr )
       dirs = resMgr->stringValue( "FileDlg", QString( "QuickDirList" ) );
-    QStringList dirList = QStringList::split(';', dirs, false);
+    QStringList dirList = dirs.split( ';', QString::SkipEmptyParts );
     bool found = false;
     bool emptyAndHome = false;
-    if ( dirList.count() > 0 ) {
-      for ( unsigned i = 0; i < dirList.count(); i++ ) {
-       QDir aDir( dirList[i] );
-       if ( aDir.canonicalPath().isNull() && dirList[i] == dir.absPath() ||
-           !aDir.canonicalPath().isNull() && aDir.exists() && aDir.canonicalPath() == dir.canonicalPath() ) {
-         found = true;
-         break;
-       }
+    if ( dirList.count() > 0 )
+    {
+      for ( unsigned i = 0; i < dirList.count(); i++ )
+      {
+             QDir aDir( dirList[i] );
+             if ( aDir.canonicalPath().isNull() && dirList[i] == dir.absolutePath() ||
+                  !aDir.canonicalPath().isNull() && aDir.exists() && aDir.canonicalPath() == dir.canonicalPath() )
+        {
+               found = true;
+               break;
+             }
       }
     }
-    else {
-      emptyAndHome = dir.canonicalPath() == QDir(QDir::homeDirPath()).canonicalPath();
-    }
-    if ( !found ) {
+    else
+      emptyAndHome = dir.canonicalPath() == QDir( QDir::homePath() ).canonicalPath();
+
+    if ( !found )
+    {
       dirList.append( dp );
-      resMgr->setValue( "FileDlg", QString( "QuickDirList" ), dirList.join(";") );
+      resMgr->setValue( "FileDlg", QString( "QuickDirList" ), dirList.join( ";" ) );
       if ( !emptyAndHome )
-       myQuickCombo->insertItem( dp );
+             myQuickCombo->addItem( dp );
     }
   }
 }
 /*!
   Returns the file name for Open/Save [ static ]
 */
-QString SUIT_FileDlg::getFileName( QWidget*            parent, 
-                                  const QString&      initial, 
-                                   const QStringList&  filters, 
-                                   const QString&      caption,
-                                   bool                open,
-                                  bool                showQuickDir, 
-                                  SUIT_FileValidator* validator )
+QString SUIT_FileDlg::getFileName( QWidget* parent, const QString& initial, const QStringList& filters,
+                                   const QString& caption, bool open, bool showQuickDir,
+                                   SUIT_FileValidator* validator )
 {            
   SUIT_FileDlg* fd = new SUIT_FileDlg( parent, open, showQuickDir, true );    
   if ( !caption.isEmpty() )
-    fd->setCaption( caption );
-  if ( !initial.isEmpty() ) { 
+    fd->setWindowTitle( caption );
+  if ( !initial.isEmpty() )
     fd->processPath( initial ); // VSR 24/03/03 check for existing of directory has been added to avoid QFileDialog's bug
-  }
-  fd->setFilters( filters );        
+
+  fd->setFilters( filters );
   if ( validator )
     fd->setValidator( validator );
+
   fd->exec();
+
   QString filename = fd->selectedFile();
   delete fd;
+
   qApp->processEvents();
+
   return filename;
 }
 
-
 /*!
   Returns the list of files to be opened [ static ]
 */
-QStringList SUIT_FileDlg::getOpenFileNames( QWidget*            parent, 
-                                           const QString&      initial, 
-                                           const QStringList&  filters, 
-                                           const QString&      caption,
-                                           bool                showQuickDir, 
-                                           SUIT_FileValidator* validator )
+QStringList SUIT_FileDlg::getOpenFileNames( QWidget* parent, const QString& initial, const QStringList& filters, 
+                                                                         const QString& caption, bool showQuickDir, SUIT_FileValidator* validator )
 {            
   SUIT_FileDlg* fd = new SUIT_FileDlg( parent, true, showQuickDir, true );    
-  fd->setMode( ExistingFiles );     
+  fd->setFileMode( ExistingFiles );
   if ( !caption.isEmpty() )
-    fd->setCaption( caption );
-  if ( !initial.isEmpty() ) { 
+    fd->setWindowTitle( caption );
+  if ( !initial.isEmpty() )
     fd->processPath( initial ); // VSR 24/03/03 check for existing of directory has been added to avoid QFileDialog's bug
-  }
+
   fd->setFilters( filters );        
   if ( validator )
     fd->setValidator( validator );
+
   fd->exec();
   QStringList filenames = fd->selectedFiles();
   delete fd;
+
   qApp->processEvents();
   return filenames;
 }
@@ -501,39 +541,23 @@ QStringList SUIT_FileDlg::getOpenFileNames( QWidget*            parent,
 /*!
   Existing directory selection dialog [ static ]
 */
-QString SUIT_FileDlg::getExistingDirectory( QWidget*       parent,
-                                           const QString& initial,
-                                           const QString& caption, 
-                                           bool           showQuickDir )
+QString SUIT_FileDlg::getExistingDirectory( QWidget* parent, const QString& initial,
+                                            const QString& caption, bool showQuickDir )
 {
-  SUIT_FileDlg* fd = new SUIT_FileDlg( parent, true, showQuickDir, true);
+  SUIT_FileDlg* fd = new SUIT_FileDlg( parent, true, showQuickDir, true );
   if ( !caption.isEmpty() )
-    fd->setCaption( caption );
-  if ( !initial.isEmpty() ) {
+    fd->setWindowTitle( caption );
+  if ( !initial.isEmpty() )
     fd->processPath( initial ); // VSR 24/03/03 check for existing of directory has been added to avoid QFileDialog's bug
-  }
-  fd->setMode( DirectoryOnly );
-  fd->setFilters(tr("INF_DIRECTORIES_FILTER"));
+
+  fd->setFileMode( DirectoryOnly );
+  fd->setFilters( QStringList( tr( "INF_DIRECTORIES_FILTER" ) ) );
+
   fd->exec();
+
   QString dirname = fd->selectedFile();
   delete fd;
+
   qApp->processEvents();
   return dirname;
-  
-}
-
-/*!
-  QFileDialog::dirPath() has a bug on Linux Debian (1 level up from correct
-  directory is returned).  This function fixes the bug. 
-*/
-QString SUIT_FileDlg::dirPath() const
-{
-  if ( !mySelectedFile.isNull() )
-    return QFileInfo( mySelectedFile ).dirPath();
-
-  const QDir* aDir = dir();
-  if ( aDir->exists() )
-    return aDir->absPath();
-  
-  return QFileDialog::dirPath();
 }
index 04418800333ee7b1da6c509bb94efb98e91c840a..33404d346c1ce367a92b561f438d2d560d21f262 100755 (executable)
@@ -21,7 +21,7 @@
 
 #include "SUIT.h"
 
-#include <qfiledialog.h>
+#include <QtGui/qfiledialog.h>
 
 class QLabel;
 class QComboBox;
@@ -45,9 +45,6 @@ public:
 
   void                setValidator( SUIT_FileValidator* );
 
-  QString             dirPath() const; // QFileDialog::dirPath() has a bug on Linux Debian (1 level up from correct 
-                                       // directory is returned).  This redefinition fixes the bug.  
-
   static QString      getFileName( QWidget* parent, const QString& initial, const QStringList& filters, 
                                   const QString& caption, const bool open, const bool showQuickDir = true,
                                    SUIT_FileValidator* validator = 0 );
@@ -57,10 +54,8 @@ public:
   static QString      getExistingDirectory( QWidget* parent, const QString& initial,
                                             const QString& caption, const bool showQuickDir = true );
 
-public slots:
-  void                polish();
-
 private:
+  void                polish();
   bool                acceptData();
   void                addExtension();
   bool                processPath( const QString& path );
@@ -71,6 +66,9 @@ protected slots:
   void                quickDir( const QString& );
   void                addQuickDir();
 
+protected:
+  virtual bool        event( QEvent* );
+
 protected:
   bool                myOpen;             //!< open/save selector
   QString             mySelectedFile;     //!< selected filename
index ab09fc6654fa4b7a2959db6f92013e6c162fb4b9..604840ea4412419b3358ee871733ee93d0e7e716 100755 (executable)
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-//  SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-//  File   : SUIT_FileValidator.cxx
-//  Module : SALOME
-//  $Header$
-
 #include "SUIT_FileValidator.h"
 #include "SUIT_MessageBox.h"
 #include "SUIT_Session.h"
 
-#include <qfile.h>
-#include <qfileinfo.h>
+#include <QtCore/qfile.h>
+#include <QtCore/qfileinfo.h>
 
 /*! constructor */
 SUIT_FileValidator::SUIT_FileValidator(QWidget* parent) :
@@ -79,17 +73,19 @@ bool SUIT_FileValidator::canSave( const QString& file )
       return false; 
     }
   }
-  else {
+  else
+  {
     // if file doesn't exist - try to create it
     QFile qf( file );
-    if ( !qf.open( IO_WriteOnly ) ) {
-      SUIT_MessageBox::error1( myParent,
-            QObject::tr( "ERR_ERROR" ),
-            QObject::tr( "ERR_PERMISSION_DENIED" ).arg( file ),
-            QObject::tr( "BUT_OK" ) );
+    if ( !qf.open( QFile::WriteOnly ) )
+    {
+      SUIT_MessageBox::error1( myParent, QObject::tr( "ERR_ERROR" ),
+                               QObject::tr( "ERR_PERMISSION_DENIED" ).arg( file ),
+                               QObject::tr( "BUT_OK" ) );
       return false;
     }
-    else {
+    else
+    {
       // remove just created file
       qf.close();
       qf.remove();
@@ -97,4 +93,3 @@ bool SUIT_FileValidator::canSave( const QString& file )
   }
   return true;
 }
-
index 197f6a2abd853637bc86771f6c8f815d3ed7a374..56849cc3883382d54c700feb35ed5a78baadba69 100755 (executable)
 //
 //  SALOME SALOMEGUI : implementation of desktop and GUI kernel
 //
-//  File   : SUIT_FileValidator.h
-//  Module : SALOME
-
 #ifndef SUIT_FILEVALIDATOR_H
 #define SUIT_FILEVALIDATOR_H
 
-#include <qwidget.h>
 #include "SUIT.h"
 
+#include <QtGui/qwidget.h>
+
 /*!
   \class SUIT_FileValidator
   Provides functionality to check file
index e80ff74f04ae6a3b65b36242688e8ef03f6d46b5..f64274fa0f2ac34519a38608ef2b1788d0d67a3c 100755 (executable)
 #include "SUIT_MessageBox.h"
 #include "SUIT_OverrideCursor.h"
 
-#include <qmessagebox.h>
-#include <qapplication.h>
+#include <QtGui/qmessagebox.h>
+#include <QtGui/qapplication.h>
 
 /*!
     Shows info message box with one button [ static ]
 */
-int SUIT_MessageBox::info1( QWidget* parent, 
-                           const QString& caption, 
-                           const QString& text,
-                           const QString& textButton0 )
+int SUIT_MessageBox::info1( QWidget* parent, const QString& caption, 
+                                             const QString& text, const QString& textButton0 )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   int ret = QMessageBox::information( parent, caption, text, textButton0,
                                      QString::null, QString::null, 0, 0 );
   qApp->processEvents();
@@ -53,7 +51,7 @@ int SUIT_MessageBox::warn1( QWidget* parent,
                            const QString& text,
                            const QString& textButton0 )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   int ret = QMessageBox::warning( parent, caption, text, textButton0,
                                  QString::null, QString::null, 0, 0 );
   qApp->processEvents();
@@ -68,7 +66,7 @@ int SUIT_MessageBox::error1( QWidget* parent,
                             const QString& text,
                             const QString& textButton0 )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   int ret = QMessageBox::critical( parent, caption, text, textButton0,
                                   QString::null, QString::null, 0, 0 );
   qApp->processEvents();
@@ -83,7 +81,7 @@ int SUIT_MessageBox::question1( QWidget* parent,
                                const QString& text, 
                                const QString& textButton0 )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   int ret = QMessageBox::question( parent, caption, text, textButton0,
                                   QString::null, QString::null, 0, 0 );
   qApp->processEvents();
@@ -101,7 +99,7 @@ int SUIT_MessageBox::info2( QWidget* parent,
                            const QString& textButton1, 
                            int idButton0, int idButton1, int idDefault )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   if ( idDefault == idButton0 )
     idDefault = 0;
   else if ( idDefault == idButton1 )
@@ -126,7 +124,7 @@ int SUIT_MessageBox::warn2( QWidget* parent,
                            const QString& textButton1,
                            int idButton0, int idButton1, int idDefault )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   
   if ( idDefault == idButton0 )
     idDefault = 0;
@@ -152,7 +150,7 @@ int SUIT_MessageBox::error2( QWidget* parent,
                             const QString& textButton1,
                             int idButton0, int idButton1, int idDefault )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   
   if ( idDefault == idButton0 )
     idDefault = 0;
@@ -178,7 +176,7 @@ int SUIT_MessageBox::question2( QWidget* parent,
                                const QString& textButton1,
                                int idButton0, int idButton1, int idDefault )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   
   if ( idDefault == idButton0 )
     idDefault = 0;
@@ -206,7 +204,7 @@ int SUIT_MessageBox::info3( QWidget* parent,
                            int idButton0, int idButton1,
                            int idButton2, int idDefault )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   
   if ( idDefault == idButton0 )
     idDefault = 0;
@@ -245,7 +243,7 @@ int SUIT_MessageBox::warn3( QWidget* parent,
                            int idButton0, int idButton1,
                            int idButton2, int idDefault )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   
   if ( idDefault == idButton0 )
     idDefault = 0;
@@ -284,7 +282,7 @@ int SUIT_MessageBox::error3( QWidget* parent,
                             int idButton0, int idButton1,
                             int idButton2, int idDefault )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   
   if ( idDefault == idButton0 )
     idDefault = 0;
@@ -323,7 +321,7 @@ int SUIT_MessageBox::question3( QWidget* parent,
                                int idButton0, int idButton1,
                                int idButton2, int idDefault )
 {
-  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::arrowCursor );
+  SUIT_OverrideCursor cw( parent ? parent->cursor() : Qt::ArrowCursor );
   
   if ( idDefault == idButton0 )
     idDefault = 0;
index 24b350605f06d5d5e6ef0c1b7a144df2e2a3056c..69b07aa39ad2f1bce0ea220a786f436080b2ac3b 100755 (executable)
@@ -22,8 +22,8 @@
 
 #include "SUIT.h"
 
-#include <qstring.h>
-#include <qwidget.h>
+#include <QtCore/qstring.h>
+#include <QtGui/qwidget.h>
 
 #define SUIT_OK                      1
 #define SUIT_CANCEL                  2
index 3d15f058c5774367fd2f3bb050f13898519e4357..810c0a9201e80a70901bcb60589f147145bc295b 100755 (executable)
@@ -22,8 +22,8 @@
 
 #include "SUIT.h"
 
-#include <qobject.h>
-#include <qguardedptr.h>
+#include <QtCore/qobject.h>
+#include <QtCore/qpointer.h>
 
 class SUIT_Study;
 class SUIT_Application;
@@ -107,6 +107,8 @@ public:
 
   virtual QString   operationName() const;
 
+  int               execStatus() const;
+
 signals:
   void              started( SUIT_Operation* );
   void              aborted( SUIT_Operation* );
@@ -140,7 +142,6 @@ protected:
   virtual bool      hasTransaction() const;
   virtual bool      commitTransaction( const QString& = QString::null );
 
-  int               execStatus() const;
   void              setExecStatus( const int );
 
   void              setState( const OperationState );
@@ -148,7 +149,7 @@ protected:
   void              start( SUIT_Operation*, const bool = false );
 
 private:
-  typedef QGuardedPtr<SUIT_Study> StudyPtr;
+  typedef QPointer<SUIT_Study> StudyPtr;
 
 private:
   SUIT_Application* myApp;        //!< application for this operation
index 0dab97a5869350a9bf4a9bc67885fb13d4ea5c70..1b609e4398e7f4c472bf29e17f6eb4aac3eeb171 100755 (executable)
@@ -61,7 +61,7 @@ void SUIT_OverrideCursor::resume()
   if ( isActive() )
     return;
 
-  for ( QValueList<QCursor>::const_iterator it = myCursors.begin(); it != myCursors.end(); ++it )
+  for ( QList<QCursor>::const_iterator it = myCursors.begin(); it != myCursors.end(); ++it )
     QApplication::setOverrideCursor( *it );
 
   myCursors.clear();
index ee89235d6105dc09f2c2bb53329505ba05af7e77..f353e526c8ce6d30f358518406efcc6731b08627 100755 (executable)
 #ifndef SUIT_OVERRIDECURSOR_H
 #define SUIT_OVERRIDECURSOR_H
 
-#include <qapplication.h>
-#include <qcursor.h>
-
 #include "SUIT.h"
 
+#include <QtCore/qlist.h>
+#include <QtGui/qcursor.h>
+#include <QtGui/qapplication.h>
+
 /*! \brief Class used for management cursors.*/
 class SUIT_EXPORT SUIT_OverrideCursor
 {
@@ -37,7 +38,7 @@ public:
   void resume();
 
 private:
-  QValueList<QCursor> myCursors;
+  QList<QCursor> myCursors;
 };
 
 #endif
diff --git a/src/SUIT/SUIT_ParserSettings.cxx b/src/SUIT/SUIT_ParserSettings.cxx
deleted file mode 100755 (executable)
index fa3768f..0000000
+++ /dev/null
@@ -1,341 +0,0 @@
-//  SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-//  Copyright (C) 2003  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. 
-// 
-//  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   : SUIT_ParserSettings.cxx
-//  Author : Nicolas REJNERI
-//  Module : SALOME
-//  $Header$
-
-#include "SUIT_ParserSettings.h"
-
-#include <stdio.h>
-
-// QT Includes
-#include <qfile.h>
-#include <qfileinfo.h>
-#include <qtextstream.h>
-
-
-/*! Constructor. Do nothing.*/
-SUIT_ParserSettings::SUIT_ParserSettings()
-{
-}
-
-
-/*!
-    Destructor. Do nothing.
-*/
-SUIT_ParserSettings::~SUIT_ParserSettings()
-{
-}
-
-
-/*!
-    Gets the contents of a file.
-*/
-QString SUIT_ParserSettings::getContents(QString fileName, bool comments,
-                                       bool sections, bool whiteSpace,
-                                       bool htmlComments)
-{
-  QFileInfo fi(fileName);
-  QFile f(fi.absFilePath());
-  QString s="";                   // Buffer for the whole file
-
-  if(f.open(IO_ReadOnly)) {       // file opened successfully
-    QTextStream t(&f);            // use a text stream
-
-    s = t.read();                 // The whole file in a string
-    f.close();
-
-    if(!comments)     s = SUIT_ParserSettings::removeComments(s);
-    if(!sections)     s = SUIT_ParserSettings::removeSections(s);
-    if(!whiteSpace)   s = s.simplifyWhiteSpace();
-    if(!htmlComments) s = SUIT_ParserSettings::removeHtmlComments(s);
-  }
-  else {
-    // Can't open file
-  }
-
-  return s;
-}
-
-
-/*!
-    Gets the body of a section from a string.
-*/
-QString SUIT_ParserSettings::getSection(QString s, QString sectionName)
-{
-  QString result="";
-
-  QChar ch;                     // A single byte of the file
-  int bracketCounter=1;         // Bracket counter (increase on '{' and decrese on '}'.
-  int i;                        // Current index
-  int l=0;                      // Length of current part we must have
-
-  if((i=s.find(sectionName, 0, false)) >= 0 &&       // Jump to section [styles]
-     (i=s.find('{', i))                >= 0    ) {
-
-    ++i;
-
-    while(i+l<(int)s.length()) {
-      ch = s.at(i+l);           // Single byte
-
-      ++l;
-
-      if(ch=='{') ++bracketCounter;
-      if(ch=='}') --bracketCounter;
-
-      if(bracketCounter==0) break;
-    }
-
-    result = s.mid(i, l-1);
-  }
-
-  return result;
-}
-
-
-
-/*!
-    Gets the HTML comments out of a file.
-*/
-QString SUIT_ParserSettings::getHtmlComment(QString s)
-{
-  QString result="";
-  int length;              // length of the sub string
-  int ind=0;
-
-  if((ind =s.find("<!--", ind))>=0 &&
-     (ind+=4) &&
-     (length=s.find("-->",  ind)-ind)!=0) {
-
-    result=s.mid(ind, length-3);
-  }
-
-  return result;
-}
-
-
-
-/*! 
-    Gets the next String between two given characters. The index-parameter gets moved to the character after
-    the stopper or to -1 if the starter / stopper were not found.
-*/
-QString SUIT_ParserSettings::getNextStringBetween(QString s, int& startIndex, 
-                                                QChar starter, QChar stopper)
-{
-  QString result="";
-  int length=0;              // length of the sub string
-
-  if((startIndex =s.find(starter, startIndex))>=0 &&
-     (length=s.find(stopper, startIndex+1)-startIndex)!=0) {
-
-    result=s.mid(startIndex+1, length-1);
-    startIndex+=2;
-  }
-
-  return result;
-}
-
-
-/*!
-    Gets the next String between the given index and a given stopper character. The index-parameter gets moved to
-    the character after the stopper or to -1 if the stopper was not found.
-*/
-QString SUIT_ParserSettings::getNextStringUntil(QString s, int& startIndex, QChar stopper)
-{
-  QString result="";
-  int length;              // length of the sub string
-
-  if((length=s.find(stopper, startIndex)-startIndex)!=0) {
-    result=s.mid(startIndex, length);
-    startIndex++;
-  }
-
-  return result;
-}
-
-
-/*!
-    Removes all comments (between '/ *' and '* /').
-*/
-QString SUIT_ParserSettings::removeComments(QString s)
-{
-  QString result="";
-  int i1=0, i2;
-
-  while((i2=s.find("/*", i1))>=0) {
-    result += s.mid(i1, i2-i1);
-
-    i1+=2;
-    i1=s.find("*/", i1);
-    i1+=2;
-  }
-
-  result += s.mid(i1, s.length()-i1);
-
-  return result;
-}
-
-
-
-/*!
-    Removes all HTML comments (between '<!--' and '-->') \image html html_comments.gif
-*/
-QString SUIT_ParserSettings::removeHtmlComments(QString s)
-{
-  QString result="";
-  int i1=0, i2;
-
-  while((i2=s.find("<!--", i1))>=0) {
-    result += s.mid(i1, i2-i1);
-
-    i1+=4;
-    i1=s.find("-->", i1);
-    i1+=3;
-  }
-
-  result += s.mid(i1, s.length()-i1);
-
-  return result;
-}
-
-
-
-/*!
-    Removes all sections ('[section] { }').
-*/
-QString SUIT_ParserSettings::removeSections(QString s)
-{
-  QString result="";
-
-  QChar ch;                     // A single byte of the file
-  int bracketCounter;           // Bracket counter (increase on '{' and decrese on '}'.
-  int i=0;                      // Current index
-
-  while(i<(int)s.length()) {
-    ch = s.at(i);           // Single byte
-
-    if(ch=='[') {
-      bracketCounter=1;
-      while(i<(int)s.length() && ch!=']') { ch = s.at(i); ++i; }
-      ++i;
-      while(i<(int)s.length() && ch!='{') { ch = s.at(i); ++i; }
-      ++i;
-
-      while(i<(int)s.length() && bracketCounter!=0) {
-        ch = s.at(i);
-        if(ch=='{') ++bracketCounter;
-        if(ch=='}') --bracketCounter;
-        ++i;
-      }
-      ++i;
-    }
-    else {
-      result+=ch;
-    }
-
-    ++i;
-  }
-
-  return result;
-}
-
-
-/*!
-    Format plain text into HTML-code with a given maximal width.
-    Spaces get replaced with non breaking spaces. Tabulators get filled up
-    with non breaking spaces.
-*/
-QString SUIT_ParserSettings::plainTextToHtml(QString s, int autoBreak)
-{
-  QString result="\n";
-
-  if(!s.isEmpty()) {
-    int col=1, i;
-
-    for(i=0; i<(int)s.length(); ++i) {
-      // Line feed:
-      //
-      if(s[i]=='\n') {
-        result+="<BR>\n";
-        col=1;
-      }
-
-      // Auto break:
-      //
-      else if(col==autoBreak && autoBreak!=0) {
-        result+="<BR>\n";
-        result+=s[i];
-        col=1;
-      }
-
-      // Tab:
-      //
-      else if(s[i]=='\t') {
-        while(col%8!=0) { result+="&nbsp;"; ++col; }
-        result+="&nbsp;";
-        ++col;
-      }
-
-      // Space:
-      //
-      else if(s[i]==' ') {
-        result+="&nbsp;";
-        ++col;
-      }
-
-      // Normal char / special code:
-      //
-      else {
-        if(s[i].isLetter() || s[i].isNumber()) {
-          result+=s[i];
-        }
-        else {
-          result+=charToHtml(s[i]);
-        }
-        ++col;
-      }
-    }
-
-    result+="\n";
-  }
-
-  return result;
-}
-
-
-/*!
-    Converts a special character to html code (e.g.: '»' to "&#187;")
-*/
-QString SUIT_ParserSettings::charToHtml(QChar c)
-{
-  QString s;
-  QString uc;
-  uc.setNum(c.unicode());
-  s = "&#" + uc + ";";
-  return s;
-}
-
-
-// EOF
diff --git a/src/SUIT/SUIT_ParserSettings.h b/src/SUIT/SUIT_ParserSettings.h
deleted file mode 100755 (executable)
index 16d74a2..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-//  SALOME SALOMEGUI : implementation of desktop and GUI kernel
-//
-//  Copyright (C) 2003  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. 
-// 
-//  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   : SUIT_ParserSettings.h
-//  Author : Nicolas REJNERI
-//  Module : SALOME
-//  $Header$
-
-#ifndef SUIT_PARSERSETTINGS_H
-#define SUIT_PARSERSETTINGS_H
-
-#include <qstring.h>
-#include "SUIT.h"
-/*! \brief Text Parser.*/
-class SUIT_EXPORT SUIT_ParserSettings
-{
-public:
-  SUIT_ParserSettings();
-  ~SUIT_ParserSettings();
-
-  static QString getContents(QString fileName, bool comments=true, 
-                            bool sections=true, bool whitespace=true, 
-                            bool htmlComments=true);
-  static QString getSection(QString s, QString sectionName);
-  static QString getHtmlComment(QString s);
-  static QString getNextStringBetween(QString s, int& startIndex, QChar starter, QChar stopper);
-  static QString getNextStringUntil(QString s, int& startIndex, QChar stopper);
-  static QString removeComments(QString s);
-  static QString removeHtmlComments(QString s);
-  static QString removeSections(QString s);
-  static QString plainTextToHtml(QString s, int autoBreak);
-  static QString charToHtml(QChar c);
-
-};
-
-#endif
index fd2c40d9f2ba5a4aab87ee626a3c074b1183fd4f..492b31d792738a55b8f2518a06e377ecceff20c7 100644 (file)
@@ -18,7 +18,7 @@
 //
 #include "SUIT_PopupClient.h"
 
-#include <qevent.h>
+#include <QtGui/qevent.h>
 
 /*! constructor. initialize mySignal.*/
 SUIT_PopupClient::SUIT_PopupClient()
index f65bc9f1245c92a7ac7bb6f67ca22326b8913671..532bbc7ac12a13fc2972caed5929192a992c9050 100644 (file)
@@ -21,9 +21,9 @@
 
 #include "SUIT.h"
 
-#include <qobject.h>
+#include <QtCore/qobject.h>
 
-class QPopupMenu;
+class QMenu;
 class QContextMenuEvent;
 
 /*!\class SUIT_PopupClient
@@ -42,7 +42,7 @@ public:
   bool            disconnectPopupRequest( QObject* reciever, const char* slot );
 
   virtual QString popupClientType() const = 0;
-  virtual void    contextMenuPopup( QPopupMenu* ) {}
+  virtual void    contextMenuPopup( QMenu* ) {}
 
 protected:
   void    contextMenuRequest( QContextMenuEvent* e );
index 8a81306bb8bea25014a0171072f9934faf329fde..cdd4a9cc54cee2d922280be95bfd7c805ed40a6d 100755 (executable)
@@ -18,8 +18,9 @@
 //
 #include "SUIT_ResourceMgr.h"
 
-#include <qfileinfo.h>
-#include <qdir.h>
+#include <QtCore/qdir.h>
+#include <QtCore/qfileinfo.h>
+
 #include <stdlib.h>
 
 /*!
@@ -65,9 +66,6 @@ QString SUIT_ResourceMgr::loadDoc( const QString& prefix, const QString& id ) co
   return path( docSection, prefix, id );
 }
 
-#ifndef WIN32
-#include <unistd.h>
-#endif
 /*!
     Returns the user file name for specified application
 */
@@ -93,7 +91,7 @@ QString SUIT_ResourceMgr::userFileName( const QString& appName, const bool for_l
 */
 QString SUIT_ResourceMgr::findAppropriateUserFile( const QString& fname ) const
 {
-  QDir d( QFileInfo( fname ).dir( true ) );
+  QDir d( QFileInfo( fname ).dir() );
   d.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks );
   QStringList l = d.entryList();
   QString appr_file;
@@ -110,7 +108,7 @@ QString SUIT_ResourceMgr::findAppropriateUserFile( const QString& fname ) const
     if( appr < 0 || abs( id-id0 ) < abs( appr-id0 ) )
     {
       appr = id;
-      appr_file = d.absFilePath( *anIt );
+      appr_file = d.absoluteFilePath( *anIt );
     }
   }
   return appr_file;
index 895486f218845f6ea34312b65a5cafa33d72a2af..19a1ff2004582a02bf03b9a1288769fc524e636d 100755 (executable)
@@ -25,6 +25,7 @@
 /*!constructor. initialize myIterations and myIsSelChangeEnabled.*/
 SUIT_SelectionMgr::SUIT_SelectionMgr( const bool Feedback, QObject* p )
 : QObject( p ),
+myAutoDelFilter( false ),
 myIterations( Feedback ? 1 : 0 ),
 myIsSelChangeEnabled( true )
 {
@@ -33,7 +34,8 @@ myIsSelChangeEnabled( true )
 /*!destructor. mySelectors auto delete.*/
 SUIT_SelectionMgr::~SUIT_SelectionMgr()
 {
-  mySelectors.setAutoDelete( true );
+  for ( SelectorList::iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
+    delete *it;
 }
 
 /*!Add selector \a sel to selectors list,if it's not exists in list.*/
@@ -46,25 +48,25 @@ void SUIT_SelectionMgr::installSelector( SUIT_Selector* sel )
 /*!Remove selector \a sel from list.*/
 void SUIT_SelectionMgr::removeSelector( SUIT_Selector* sel )
 {
-  mySelectors.remove( sel );
+  mySelectors.removeAll( sel );
 }
 
 /*!Gets selectors list to \a lst.*/
-void SUIT_SelectionMgr::selectors( QPtrList<SUIT_Selector>& lst ) const
+void SUIT_SelectionMgr::selectors( QList<SUIT_Selector*>& lst ) const
 {
   lst.clear();
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
-    lst.append( it.current() );
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
+    lst.append( *it );
 }
 
 /*!Gets selectors list to \a lst with type \a typ.*/
-void SUIT_SelectionMgr::selectors( const QString& typ, QPtrList<SUIT_Selector>& lst ) const
+void SUIT_SelectionMgr::selectors( const QString& typ, QList<SUIT_Selector*>& lst ) const
 {
   lst.clear();
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
-    if ( it.current()->type() == typ )
-      lst.append( it.current() );
+    if ( (*it)->type() == typ )
+      lst.append( *it );
   }
 }
 
@@ -72,10 +74,10 @@ void SUIT_SelectionMgr::selectors( const QString& typ, QPtrList<SUIT_Selector>&
 */
 void SUIT_SelectionMgr::setEnabled( const bool on, const QString& typ )
 {
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
-    if ( typ.isEmpty() || it.current()->type() == typ )
-      it.current()->setEnabled( on );
+    if ( typ.isEmpty() || (*it)->type() == typ )
+      (*it)->setEnabled( on );
   }
 }
 
@@ -85,12 +87,13 @@ void SUIT_SelectionMgr::selected( SUIT_DataOwnerPtrList& lst, const QString& typ
 {
   lst.clear();
 
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
-    if ( !type.isEmpty() && it.current()->type() != type )
+    if ( !type.isEmpty() && (*it)->type() != type )
       continue;
+
     SUIT_DataOwnerPtrList curList;
-    it.current()->selected( curList );
+    (*it)->selected( curList );
     for ( SUIT_DataOwnerPtrList::const_iterator itr = curList.begin(); itr != curList.end(); ++itr )
       lst.append( *itr );
   }
@@ -103,16 +106,16 @@ void SUIT_SelectionMgr::setSelected( const SUIT_DataOwnerPtrList& lst, const boo
   SUIT_DataOwnerPtrList owners;
   filterOwners( lst, owners );
 
-  for ( SelectorListIterator it( mySelectors ); it.current(); ++it )
+  for ( SelectorList::const_iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
   {
     if ( append )
     {
       SUIT_DataOwnerPtrList current;
-      it.current()->selected( current );
+      (*it)->selected( current );
       for ( SUIT_DataOwnerPtrList::const_iterator it = current.begin(); it != current.end(); ++it )
         owners.append( *it );
     }
-    it.current()->setSelected( owners );
+    (*it)->setSelected( owners );
   }
 }
 
@@ -140,11 +143,11 @@ void SUIT_SelectionMgr::selectionChanged( SUIT_Selector* sel )
 
   for ( int i = 0; i < myIterations; i++ )
   {
-    for ( SUIT_Selector* aSel = mySelectors.first(); aSel; aSel = mySelectors.next() )
+    for ( SelectorList::iterator it = mySelectors.begin(); it != mySelectors.end(); ++it )
     {
-      // Temporary action(to avoid selection of the objects which don't pass the filters):
-      //if ( aSel != sel )
-           aSel->setSelected( newOwners );
+      SUIT_Selector* aSel = *it;
+      if ( *it != sel )
+             (*it)->setSelected( newOwners );
     }
   }
   myIsSelChangeEnabled = true;
@@ -170,7 +173,7 @@ bool SUIT_SelectionMgr::hasSelectionMode( const int mode ) const
 
 /*! Gets selection modes to list \a vals.
 */
-void SUIT_SelectionMgr::selectionModes( QValueList<int>& vals ) const
+void SUIT_SelectionMgr::selectionModes( QList<int>& vals ) const
 {
   vals = mySelModes;
 }
@@ -179,14 +182,14 @@ void SUIT_SelectionMgr::selectionModes( QValueList<int>& vals ) const
 */
 void SUIT_SelectionMgr::setSelectionModes( const int mode )
 {
-  QValueList<int> lst;
+  QList<int> lst;
   lst.append( mode );
   setSelectionModes( lst );
 }
 
 /*! Sets selection modes list from \a lst.
 */
-void SUIT_SelectionMgr::setSelectionModes( const QValueList<int>& lst )
+void SUIT_SelectionMgr::setSelectionModes( const QList<int>& lst )
 {
   mySelModes = lst;
 }
@@ -195,20 +198,20 @@ void SUIT_SelectionMgr::setSelectionModes( const QValueList<int>& lst )
 */
 void SUIT_SelectionMgr::appendSelectionModes( const int mode )
 {
-  QValueList<int> lst;
+  QList<int> lst;
   lst.append( mode );
   appendSelectionModes( lst );
 }
 
 /*! Append selection modes \a lst list.
 */
-void SUIT_SelectionMgr::appendSelectionModes( const QValueList<int>& lst )
+void SUIT_SelectionMgr::appendSelectionModes( const QList<int>& lst )
 {
   QMap<int, int> map;
-  for ( QValueList<int>::const_iterator it = mySelModes.begin(); it != mySelModes.end(); ++it )
+  for ( QList<int>::const_iterator it = mySelModes.begin(); it != mySelModes.end(); ++it )
     map.insert( *it, 0 );
 
-  for ( QValueList<int>::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
+  for ( QList<int>::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
   {
     if ( !map.contains( *itr ) )
       mySelModes.append( *itr );
@@ -219,20 +222,20 @@ void SUIT_SelectionMgr::appendSelectionModes( const QValueList<int>& lst )
 */
 void SUIT_SelectionMgr::removeSelectionModes( const int mode )
 {
-  QValueList<int> lst;
+  QList<int> lst;
   lst.append( mode );
   removeSelectionModes( lst );
 }
 
 /*! Remove selection modea \a lst from list.
 */
-void SUIT_SelectionMgr::removeSelectionModes( const QValueList<int>& lst )
+void SUIT_SelectionMgr::removeSelectionModes( const QList<int>& lst )
 {
   QMap<int, int> map;
-  for ( QValueList<int>::const_iterator it = mySelModes.begin(); it != mySelModes.end(); ++it )
+  for ( QList<int>::const_iterator it = mySelModes.begin(); it != mySelModes.end(); ++it )
     map.insert( *it, 0 );
 
-  for ( QValueList<int>::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
+  for ( QList<int>::const_iterator itr = lst.begin(); itr != lst.end(); ++itr )
     map.remove( *itr );
 
   mySelModes.clear();
@@ -248,8 +251,8 @@ bool SUIT_SelectionMgr::isOk( const SUIT_DataOwner* owner ) const
     return false;
 
   bool ok = true;
-  for ( SelFilterListIterator it( myFilters ); it.current() && ok; ++it )
-    ok = it.current()->isOk( owner );
+  for ( SelFilterList::const_iterator it = myFilters.begin(); it != myFilters.end() && ok; ++it )
+    ok = (*it)->isOk( owner );
 
   return ok;
 }
@@ -292,13 +295,25 @@ void SUIT_SelectionMgr::installFilter( SUIT_SelectionFilter* f, const bool updat
 */
 void SUIT_SelectionMgr::removeFilter( SUIT_SelectionFilter* f )
 {
-  myFilters.remove( f );
+  if ( !myFilters.contains( f ) )
+    return;
+
+  myFilters.removeAll( f );
+
+  if ( autoDeleteFilter() )
+    delete f;
 }
 
 /*! Clear filters list.
 */
 void SUIT_SelectionMgr::clearFilters()
 {
+  if ( autoDeleteFilter() )
+  {
+    for ( SelFilterList::const_iterator it = myFilters.begin(); it != myFilters.end(); ++it )
+      delete *it;
+  }
+
   myFilters.clear();
 }
 
@@ -306,14 +321,14 @@ void SUIT_SelectionMgr::clearFilters()
 */
 bool SUIT_SelectionMgr::autoDeleteFilter() const
 {
-  return myFilters.autoDelete();
+  return myAutoDelFilter;
 }
 
 /*! Sets auto delete filter to \a on.
 */
 void SUIT_SelectionMgr::setAutoDeleteFilter( const bool on )
 {
-  myFilters.setAutoDelete( on );
+  myAutoDelFilter = on;
 }
 
 /*! Gets good data owners list to \a out from \a in.
index 79576568f38d49f8ed6855f0b0f2c8acdf097c1f..57d45c84efdce57b9b1edc24b697b2520324f508 100755 (executable)
@@ -23,9 +23,8 @@
 #include "SUIT_DataOwner.h"
 #include "SUIT_SelectionFilter.h"
 
-#include <qobject.h>
-#include <qptrlist.h>
-#include <qvaluelist.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qobject.h>
 
 #ifdef WIN32
 #pragma warning ( disable : 4251 )
@@ -43,24 +42,24 @@ public:
   virtual void    selected( SUIT_DataOwnerPtrList&, const QString& = QString::null ) const;
   virtual void    setSelected( const SUIT_DataOwnerPtrList&, const bool = false );
 
-  void            selectors( QPtrList<SUIT_Selector>& ) const;
-  void            selectors( const QString&, QPtrList<SUIT_Selector>& ) const;
+  void            selectors( QList<SUIT_Selector*>& ) const;
+  void            selectors( const QString&, QList<SUIT_Selector*>& ) const;
 
 
   void            setEnabled( const bool, const QString& = QString::null );
 
 
   bool            hasSelectionMode( const int ) const;
-  void            selectionModes( QValueList<int>& ) const;
+  void            selectionModes( QList<int>& ) const;
 
   void            setSelectionModes( const int );
-  virtual void    setSelectionModes( const QValueList<int>& );
+  virtual void    setSelectionModes( const QList<int>& );
 
   void            appendSelectionModes( const int );
-  virtual void    appendSelectionModes( const QValueList<int>& );
+  virtual void    appendSelectionModes( const QList<int>& );
 
   void            removeSelectionModes( const int );
-  virtual void    removeSelectionModes( const QValueList<int>& );
+  virtual void    removeSelectionModes( const QList<int>& );
 
 
   bool            isOk( const SUIT_DataOwner* ) const;
@@ -83,25 +82,21 @@ signals:
 protected:
   virtual void    selectionChanged( SUIT_Selector* );
 
-  typedef QPtrListIterator<SUIT_Selector>        SelectorListIterator;
-
   virtual void    installSelector( SUIT_Selector* );
   virtual void    removeSelector( SUIT_Selector* );
 
 private:
   void            filterOwners( const SUIT_DataOwnerPtrList&, SUIT_DataOwnerPtrList& ) const;
 
-  typedef QPtrList<SUIT_Selector>                SelectorList;
-  typedef QPtrList<SUIT_SelectionFilter>         SelFilterList;
-  typedef QPtrListIterator<SUIT_SelectionFilter> SelFilterListIterator;
-
-protected:
-  SelectorList    mySelectors;
+  typedef QList<SUIT_Selector*>        SelectorList;
+  typedef QList<SUIT_SelectionFilter*> SelFilterList;
 
 private:
   SelFilterList   myFilters;
-  QValueList<int> mySelModes;
+  QList<int>      mySelModes;
+  SelectorList    mySelectors;
   int             myIterations;
+  bool            myAutoDelFilter;
   bool            myIsSelChangeEnabled;
 
   friend class SUIT_Selector;
index ebda6a065ac5be3f6973adb2a3c10821a1586684..8879f77bc97107c50a4af5061738b9cb809c9c1a 100755 (executable)
@@ -135,7 +135,7 @@ bool SUIT_Selector::hasSelectionMode( const int mode ) const
 /*!
   Puts to list \a lst selection modes from selection manager.
 */
-void SUIT_Selector::selectionModes( QValueList<int>& lst ) const
+void SUIT_Selector::selectionModes( QList<int>& lst ) const
 {
   if ( selectionMgr() )
     selectionMgr()->selectionModes( lst );
index 058506d24620ab334a32e9a6d41e72fc8a7b1889..ca2940b6fa58a0d2e40afe92f0e036eff0855bb7 100755 (executable)
@@ -21,8 +21,8 @@
 
 #include "SUIT.h"
 
-#include <qvaluelist.h>
-#include <qobject.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qobject.h>
 
 class SUIT_SelectionMgr;
 class SUIT_DataOwnerPtrList;
@@ -55,7 +55,7 @@ public:
   void               setSelected( const SUIT_DataOwnerPtrList& );
 
   bool               hasSelectionMode( const int ) const;
-  void               selectionModes( QValueList<int>& ) const;
+  void               selectionModes( QList<int>& ) const;
 
 protected:
   void               selectionChanged();
index 7d2ac383912cb8488928028e7721f233ac8dc9ce..9f74f1a1ae5ea6136bfe2d451651518aa5a8c583 100755 (executable)
 #include "SUIT_ViewManager.h"
 #include "SUIT_ExceptionHandler.h"
 
-#include <qtextcodec.h>
-#include <qmessagebox.h>
-#include <qapplication.h>
+#include <QtCore/qtextcodec.h>
+#include <QtGui/qmessagebox.h>
+#include <QtGui/qapplication.h>
 
-#ifdef WIN32
+#ifdef Q_OS_WIN32
 #include <windows.h>
 #else
 #include <dlfcn.h>
 #endif
 
-static bool   SUIT_Session_IsPythonExecuted = false;
-static QMutex SUIT_Session_PythonMutex;
-
 SUIT_Session* SUIT_Session::mySession = 0;
 
 /*! Constructor.*/
@@ -52,16 +49,18 @@ myExitStatus( FROM_GUI )
   SUIT_ASSERT( !mySession )
 
   mySession = this;
-
-  myAppList.setAutoDelete( true );
 }
 
 /*!destructor. Clear applications list and set mySession to zero.*/
 SUIT_Session::~SUIT_Session()
 {
+  for ( AppList::iterator it = myAppList.begin(); it != myAppList.end(); ++it )
+    delete *it;
+
   myAppList.clear();
 
-  if (myResMgr) {
+  if ( myResMgr )
+  {
     delete myResMgr;
     myResMgr = 0;
   }
@@ -102,8 +101,8 @@ SUIT_Application* SUIT_Session::startApplication( const QString& name, int args,
 
   APP_CREATE_FUNC crtInst = 0;
 
-#ifdef WIN32
-  crtInst = (APP_CREATE_FUNC)::GetProcAddress( libHandle, APP_CREATE_NAME );
+#ifdef Q_OS_WIN32
+  crtInst = (APP_CREATE_FUNC)::GetProcAddress( (HINSTANCE)libHandle, APP_CREATE_NAME );
 #else
   crtInst = (APP_CREATE_FUNC)dlsym( libHandle, APP_CREATE_NAME );
 #endif
@@ -130,20 +129,15 @@ SUIT_Application* SUIT_Session::startApplication( const QString& name, int args,
     return 0;
   }
 
-  anApp->setName( appName );
-
-  connect( anApp, SIGNAL( applicationClosed( SUIT_Application* ) ),
-           this, SLOT( onApplicationClosed( SUIT_Application* ) ) );
-  connect( anApp, SIGNAL( activated( SUIT_Application* ) ), 
-                this, SLOT( onApplicationActivated( SUIT_Application* ) ) );
+  anApp->setObjectName( appName );
 
-  myAppList.append( anApp );
+  insertApplication( anApp );
 
   if ( !myHandler )
   {
     APP_GET_HANDLER_FUNC crtHndlr = 0;
-#ifdef WIN32
-    crtHndlr = (APP_GET_HANDLER_FUNC)::GetProcAddress( libHandle, APP_GET_HANDLER_NAME );
+#ifdef Q_OS_WIN32
+    crtHndlr = (APP_GET_HANDLER_FUNC)::GetProcAddress( (HINSTANCE)libHandle, APP_GET_HANDLER_NAME );
 #else
     crtHndlr = (APP_GET_HANDLER_FUNC)dlsym( libHandle, APP_GET_HANDLER_NAME );
 #endif
@@ -163,15 +157,22 @@ SUIT_Application* SUIT_Session::startApplication( const QString& name, int args,
 /*!
   Gets the list of all applications
 */
-QPtrList<SUIT_Application> SUIT_Session::applications() const
+QList<SUIT_Application*> SUIT_Session::applications() const
 {
-  QPtrList<SUIT_Application> apps;
-  apps.setAutoDelete( false );
+  return myAppList;
+}
+
+void SUIT_Session::insertApplication( SUIT_Application* app )
+{
+  if ( !app || myAppList.contains( app ) )
+    return;
 
-  for ( AppListIterator it( myAppList ); it.current(); ++it )
-    apps.append( it.current() );
+  myAppList.append( app );
 
-  return apps;
+  connect( app, SIGNAL( applicationClosed( SUIT_Application* ) ),
+           this, SLOT( onApplicationClosed( SUIT_Application* ) ) );
+  connect( app, SIGNAL( activated( SUIT_Application* ) ), 
+                this, SLOT( onApplicationActivated( SUIT_Application* ) ) );
 }
 
 /*!
@@ -223,14 +224,16 @@ void SUIT_Session::onApplicationClosed( SUIT_Application* theApp )
 {
   emit applicationClosed( theApp );
 
-  myAppList.remove( theApp );
+  myAppList.removeAll( theApp );
+  delete theApp;
+
   if ( theApp == myActiveApp )
     myActiveApp = 0;
 
   if ( myAppList.isEmpty() )
   {
     printf( "Calling QApplication::exit() with exit code = %d\n", myExitStatus );
-    qApp->exit( myExitStatus );
+    QApplication::instance()->exit( myExitStatus );
   }
 }
 
@@ -239,16 +242,17 @@ void SUIT_Session::onApplicationClosed( SUIT_Application* theApp )
 */
 void SUIT_Session::closeSession( int mode )
 {
-  while ( !myAppList.isEmpty() )
+  AppList apps = myAppList;
+  for ( AppList::const_iterator it = apps.begin(); it != apps.end(); ++it )
   {
-    SUIT_Application* app = myAppList.getFirst();
+    SUIT_Application* app = *it;
     if ( mode == ASK && !app->isPossibleToClose() )
       return;
     else if ( mode == SAVE )
     {
       SUIT_Study* study = app->activeStudy();
       if ( study->isModified() && study->isSaved() )
-       study->saveDocument();
+             study->saveDocument();
     }
     else if ( mode == DONT_SAVE )
     {
@@ -270,11 +274,12 @@ SUIT_ExceptionHandler* SUIT_Session::handler() const
 QString SUIT_Session::lastError() const
 {
   QString str;
-#ifdef WNT
+#ifdef Q_OS_WIN32
   LPVOID lpMsgBuf;
   ::FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
                    FORMAT_MESSAGE_IGNORE_INSERTS, 0, ::GetLastError(), 0, (LPTSTR)&lpMsgBuf, 0, 0 );
-  str = QString( (LPTSTR)lpMsgBuf );
+  LPTSTR msg = (LPTSTR)lpMsgBuf;
+  str = QString( SUIT_Tools::toQString( msg ) );
   LocalFree( lpMsgBuf );
 #else
   str = QString( dlerror() );
@@ -294,10 +299,16 @@ SUIT_Session::AppLib SUIT_Session::loadLibrary( const QString& name, QString& li
     return 0;
 
   AppLib lib = 0;
-#ifdef WIN32
-  lib = ::LoadLibrary( (char*)libFile.latin1() );
+  QByteArray bid = libFile.toLatin1();
+#ifdef Q_OS_WIN32
+#ifdef UNICODE
+  LPTSTR str = (LPTSTR)libFile.utf16();
 #else
-  lib = dlopen( (char*)libFile.latin1(), RTLD_LAZY | RTLD_GLOBAL  );
+  LPTSTR str = (LPTSTR)(const char*)bid;
+#endif
+  lib = ::LoadLibrary( str );
+#else
+  lib = dlopen( (const char*)libFile.toLatin1(), RTLD_LAZY | RTLD_GLOBAL  );
 #endif
   return lib;
 }
@@ -305,7 +316,7 @@ SUIT_Session::AppLib SUIT_Session::loadLibrary( const QString& name, QString& li
 /*! \retval Return file name by application name.*/
 QString SUIT_Session::applicationName( const QString& str ) const
 {
-#ifdef WIN32
+#ifdef Q_OS_WIN32
   return SUIT_Tools::file( str, false );
 #else
   QString fileName = SUIT_Tools::file( str, false );
@@ -330,28 +341,3 @@ void SUIT_Session::onApplicationActivated( SUIT_Application* app )
 {
   myActiveApp = app;
 }
-
-/*!
-  \retval Return TRUE, if a command is currently executed in Python Console,
-                 FALSE otherwise.
-*/
-bool SUIT_Session::IsPythonExecuted()
-{
-  bool ret;
-  SUIT_Session_PythonMutex.lock();
-  ret = SUIT_Session_IsPythonExecuted;
-  SUIT_Session_PythonMutex.unlock();
-  return ret;
-}
-
-/*!
-  Set value of boolean flag, being returned by method \a IsPythonExecuted().
-  It is supposed to set the flag to TRUE when any python command starts
-  and reset it to FALSE when the command finishes.
-*/
-void SUIT_Session::SetPythonExecuted(bool isPythonExecuted)
-{
-  SUIT_Session_PythonMutex.lock();
-  SUIT_Session_IsPythonExecuted = isPythonExecuted;
-  SUIT_Session_PythonMutex.unlock();
-}
index 840de59278bdb8935bad7aaf03ba8146464dac0a..e9aa75029127be7ebc9f4324e0cc62659be3e7a3 100755 (executable)
 #include "SUIT_Application.h"
 #include "SUIT_ResourceMgr.h"
 
-#include <qmutex.h>
-#include <qobject.h>
-#include <qptrlist.h>
-#include <qptrvector.h>
-#include <qstringlist.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qvector.h>
+#include <QtCore/qobject.h>
+#include <QtCore/qstringlist.h>
 
 #ifdef WIN32
 #define LIB_HANDLE HINSTANCE
@@ -39,7 +38,7 @@
 class SUIT_ResourceMgr;
 class SUIT_ExceptionHandler;
 
-#ifdef WNT
+#ifdef WIN32
 #pragma warning( disable:4251 )
 #endif
 /*!
@@ -65,7 +64,7 @@ public:
 
   SUIT_Application*            startApplication( const QString&, int = 0, char** = 0 );
 
-  QPtrList<SUIT_Application>   applications() const;
+  QList<SUIT_Application*>     applications() const;
   SUIT_Application*            activeApplication() const;
 
   SUIT_ResourceMgr*            resourceMgr() const;
@@ -74,9 +73,7 @@ public:
 
   SUIT_ExceptionHandler*       handler() const;
 
-  // To lock GUI user actions during python command execution (PAL12651)
-  static bool                  IsPythonExecuted();
-  static void                  SetPythonExecuted(bool isPythonExecuted);
+  void                         insertApplication( SUIT_Application* );
 
 signals:
   void                         applicationClosed( SUIT_Application* );
@@ -89,9 +86,8 @@ private slots:
   void                         onApplicationActivated( SUIT_Application* ); 
 
 private:
-  typedef QPtrList<SUIT_Application>         AppList;
-  typedef QMap<QString, AppLib>              AppLibMap;
-  typedef QPtrListIterator<SUIT_Application> AppListIterator;
+  typedef QList<SUIT_Application*> AppList;
+  typedef QMap<QString, AppLib>    AppLibMap;
 
 private:
   QString                      lastError() const;
index a3baef3ce8bc7dfa153cea62db34b2e91c3cd4a4..ea2d598303f29955a85a8a2c7854bf04c1affa78 100755 (executable)
@@ -23,7 +23,6 @@
 #include "SUIT_DataObject.h"
 #include "SUIT_MessageBox.h"
 #include "SUIT_Application.h"
-#include <qvaluevector.h>
 
 /*!\class SUIT_Study
  * Support study management. Object management. Operation management.
@@ -43,8 +42,6 @@ myBlockChangeState( false )
   myId = ++_id;
 
   myRoot = new SUIT_DataObject();
-  myOperations.setAutoDelete( false );
-  myOperations.setAutoDelete( false );
 }
 
 /*!Destructor.*/
@@ -91,7 +88,7 @@ QString SUIT_Study::studyName() const
  */
 SUIT_Operation* SUIT_Study::activeOperation() const
 {
-  return myOperations.count() > 0 ? myOperations.getLast() : 0;
+  return myOperations.count() > 0 ? myOperations.last() : 0;
 }
 
 /*!
@@ -163,8 +160,8 @@ bool SUIT_Study::saveDocument()
 void SUIT_Study::abortAllOperations()
 {
   myBlockChangeState = true;
-  for( SUIT_Operation* op = myOperations.first(); op; op = myOperations.next() )
-    op->abort();
+  for ( Operations::iterator it = myOperations.begin(); it != myOperations.end(); ++it )
+    (*it)->abort();
   myBlockChangeState = false;
   myOperations.clear();
 }
@@ -239,9 +236,9 @@ SUIT_Operation* SUIT_Study::blockingOperation( SUIT_Operation* theOp ) const
     return 0;
 
   Operations tmpOps( myOperations );
-  SUIT_Operation* anOp = 0;
-  for ( anOp = tmpOps.last(); anOp; anOp = tmpOps.prev() )
+  for ( Operations::const_iterator it = tmpOps.end(); it != tmpOps.begin(); --it )
   {
+    SUIT_Operation* anOp = *it;
     if ( anOp != 0 && anOp!= theOp && !anOp->isValid( theOp ) )
       return anOp;
   }
@@ -262,7 +259,7 @@ SUIT_Operation* SUIT_Study::blockingOperation( SUIT_Operation* theOp ) const
 */
 bool SUIT_Study::start( SUIT_Operation* theOp, const bool toCheck )
 {
-  if ( !theOp || myOperations.find( theOp ) >= 0 )
+  if ( !theOp || myOperations.contains( theOp ) )
     return false;
 
   theOp->setExecStatus( SUIT_Operation::Rejected );
@@ -313,7 +310,7 @@ bool SUIT_Study::start( SUIT_Operation* theOp, const bool toCheck )
 */
 bool SUIT_Study::abort( SUIT_Operation* theOp )
 {
-  if ( !theOp || myOperations.find( theOp ) == -1 )
+  if ( !theOp || !myOperations.contains( theOp ) )
     return false;
 
   theOp->setExecStatus( SUIT_Operation::Rejected );
@@ -337,7 +334,7 @@ bool SUIT_Study::abort( SUIT_Operation* theOp )
 */
 bool SUIT_Study::commit( SUIT_Operation* theOp )
 {
-  if ( !theOp || myOperations.find( theOp ) == -1 )
+  if ( !theOp || !myOperations.contains( theOp ) )
     return false;
 
   theOp->setExecStatus( SUIT_Operation::Accepted );
@@ -363,7 +360,7 @@ bool SUIT_Study::commit( SUIT_Operation* theOp )
 */
 bool SUIT_Study::suspend( SUIT_Operation* theOp )
 {
-  if ( !theOp || myOperations.find( theOp ) == -1 || theOp->state() == SUIT_Operation::Suspended )
+  if ( !theOp || !myOperations.contains( theOp ) || theOp->state() == SUIT_Operation::Suspended )
     return false;
 
   theOp->setState( SUIT_Operation::Suspended );
@@ -382,7 +379,7 @@ bool SUIT_Study::suspend( SUIT_Operation* theOp )
 */
 bool SUIT_Study::resume( SUIT_Operation* theOp )
 {
-  if ( !theOp || myOperations.find( theOp ) == -1 ||
+  if ( !theOp || !myOperations.contains( theOp ) ||
        theOp->state() == SUIT_Operation::Running ||
        blockingOperation( theOp ) != 0 )
     return false;
@@ -396,7 +393,7 @@ bool SUIT_Study::resume( SUIT_Operation* theOp )
   // Move operation at the end of list in order to sort it in the order of activation.
   // As result active operation is a last operation of list, operation which was active
   // before currently active operation is located before it and so on
-  myOperations.remove( theOp );
+  myOperations.removeAll( theOp );
   myOperations.append( theOp );
 
   emit theOp->resumed( theOp );
@@ -413,12 +410,13 @@ bool SUIT_Study::resume( SUIT_Operation* theOp )
 void SUIT_Study::stop( SUIT_Operation* theOp )
 {
   theOp->setState( SUIT_Operation::Waiting );
-  myOperations.remove( theOp );
+  myOperations.removeAll( theOp );
 
   // get last operation which can be resumed
-  SUIT_Operation* anOp, *aResultOp = 0;
-  for ( anOp = myOperations.last(); anOp; anOp = myOperations.prev() )
+  SUIT_Operation* aResultOp = 0;
+  for ( Operations::iterator it = myOperations.end(); it != myOperations.begin(); --it )
   {
+    SUIT_Operation* anOp = *it;
     if ( anOp && anOp != theOp && blockingOperation( anOp ) == 0 )
     {
       aResultOp = anOp;
@@ -438,7 +436,7 @@ void SUIT_Study::stop( SUIT_Operation* theOp )
  * \brief Get all started operations
   * \return List of all started operations
 */
-const QPtrList<SUIT_Operation>& SUIT_Study::operations() const
+const QList<SUIT_Operation*>& SUIT_Study::operations() const
 {
   return myOperations;
 }
index 156c6bc74df61f24a70f95fe04b46b75bd69e98a..604ba97bb7b801c1cb02316be08570658e6effcc 100755 (executable)
 
 #include "SUIT_Operation.h"
 
-#include <qobject.h>
-#include <qptrlist.h>
+#include <QtCore/qlist.h>
+#include <QtCore/qobject.h>
 
+class QDialog;
 class SUIT_DataObject;
 class SUIT_Application;
-class QDialog;
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -65,7 +65,7 @@ public:
   // Operation management
   SUIT_Operation*   activeOperation() const;
   virtual void      abortAllOperations();
-  const QPtrList<SUIT_Operation>& operations() const;
+  const QList<SUIT_Operation*>& operations() const;
   
   virtual SUIT_Operation* blockingOperation( SUIT_Operation* ) const;
 
@@ -98,7 +98,7 @@ protected:
   virtual bool      commitTransaction( const QString& = QString::null );
 
 private:
-  typedef QPtrList<SUIT_Operation> Operations;
+  typedef QList<SUIT_Operation*> Operations;
   void              stop( SUIT_Operation* );
 
 private:
index 35e009c6de7ca66a829a5c255ad202a3e4f4ce20..cc3c852fb8b8aa76af0ba183074bda9d17562d43 100755 (executable)
 
 #include "SUIT_ToolButton.h"
 
-#include <qpopupmenu.h>
-#include <qstyle.h>
+#include <QtGui/qmenu.h>
+#include <QtGui/qstyle.h>
 
 /*!Constructor.*/
-SUIT_ToolButton::SUIT_ToolButton( QWidget *parent, 
-                                        const char *name,
-                                        bool changeItemAfterClick)
- : QToolButton(  parent, name ),
-   myChangeItemAfterClick( changeItemAfterClick )
+SUIT_ToolButton::SUIT_ToolButton( QWidget *parent, const char *name,
+                                  bool changeItemAfterClick )
+: QToolButton( parent ),
+myChangeItemAfterClick( changeItemAfterClick )
 {
   initialize();
 }
 
-/*!Constructor.*/
-SUIT_ToolButton::SUIT_ToolButton( const QPixmap & pm,
-                                        const QString &textLabel,
-                                        const QString& grouptext,
-                                        QObject * receiver,
-                                        const char* slot,
-                                        QToolBar * parent,
-                                        const char* name,
-                                        bool changeItemAfterClick)
- :QToolButton(pm, textLabel, grouptext, receiver, slot, parent, name),
-  myChangeItemAfterClick( changeItemAfterClick )
-{
-  initialize();
-}
-
-
 /*!Initialize tool buttons.*/
 void SUIT_ToolButton::initialize()
 {
-  mySignal = NULL;
-  myPopup = new QPopupMenu( this );
-  setPopup(myPopup);
-  connect( myPopup, SIGNAL(activated(int)), SLOT(OnSelectAction(int)) );
-  setPopupDelay(250);
+//  mySignal = NULL;
+  myPopup = new QMenu( this );
+  setMenu( myPopup );
+  connect( myPopup, SIGNAL( activated( int ) ), SLOT( OnSelectAction( int ) ) );
 }
 
 /*!drawButton is redefined to draw DownArrow*/
 void SUIT_ToolButton::drawButton( QPainter * p )
 {
-  QToolButton::drawButton(p);
+/*
+  QToolButton::drawButton( p );
 
 //draw DownArrow
   int x, y, w, h;
@@ -69,53 +52,40 @@ void SUIT_ToolButton::drawButton( QPainter * p )
   style().drawPrimitive( QStyle::PE_ArrowDown,
     p, QRect(x+w/2+3, y+h/2+3, w/2, h/2),   //QRect(x+(w-x)/2, y+(h-y)/2, w, h)
     colorGroup(), isEnabled() );
+*/
 }
 
-
 /*! Add action into popup*/
-void SUIT_ToolButton::AddAction(QAction* theAction)
+void SUIT_ToolButton::AddAction( QAction* theAction )
 {
   bool aIsFirst = false;
-  if ( myPopup->count() == 0 ) 
+  if ( myPopup->actions().isEmpty() ) 
   {
     aIsFirst = true;
-    setPixmap(theAction->iconSet().pixmap());
-    setTextLabel(theAction->text());
-    theAction->addTo( myPopup );
-    QMenuItem* aItem = myPopup->findItem(myPopup->idAt(0));
-    if (aItem != NULL) 
-    {
-      mySignal = aItem->signal();
-    }
+    setIcon( theAction->icon() );
+    setText( theAction->text() );
   }
-  else
-    theAction->addTo( myPopup );
+    myPopup->addAction( theAction );
 }
 
 /*! Sets myPopup item with theIndex as current*/
-void SUIT_ToolButton::SetItem(int theIndex)
+void SUIT_ToolButton::SetItem( int theIndex )
 {
-  int anId = myPopup->idAt(theIndex);
-  if (anId != -1)
+  QAction* a = myPopup->actions()[theIndex];
+  if ( a )
   {
-    // Protection against unexpected null pointers returned
-    if ( myPopup->iconSet(anId) )
-      setPixmap(myPopup->iconSet(anId)->pixmap());
-    setTextLabel(myPopup->text(anId));
-    QMenuItem* aItem = myPopup->findItem(anId);
-    if (aItem != NULL) 
-    {
-      mySignal = aItem->signal();
-    }
+    setIcon( a->icon() );
+    setText( a->text() );
   }
 }
 
 /*!Public SLOT.
  * On select action (icon and text set with id = \a theItemID)
  */
-void SUIT_ToolButton::OnSelectAction(int theItemID)
+void SUIT_ToolButton::OnSelectAction( int theItemID )
 {
-  if (myChangeItemAfterClick)
+/*
+  if ( myChangeItemAfterClick )
   {
     // Protection against unexpected null pointers returned
     if ( myPopup->iconSet(theItemID) )
@@ -127,18 +97,15 @@ void SUIT_ToolButton::OnSelectAction(int theItemID)
       mySignal = aItem->signal();
     }
   }
+*/
 }
 
-
-
 /*!On mouse release event.*/
-void SUIT_ToolButton::mouseReleaseEvent ( QMouseEvent * theEvent)
+void SUIT_ToolButton::mouseReleaseEvent( QMouseEvent* theEvent )
 {
-  QToolButton::mouseReleaseEvent(theEvent);
-  if (mySignal != NULL) 
-  {
+  QToolButton::mouseReleaseEvent( theEvent );
+/*
+  if ( mySignal ) 
     mySignal->activate();
-  }
+*/
 }
-
-
index 10abe2629ccc188d990e06e34b73caf5498b0fd0..d4b0365bbc4e18451040e85a1bb68d0c3adcad3e 100755 (executable)
 #ifndef SUIT_TOOLBUTTON_H
 #define SUIT_TOOLBUTTON_H
 
-#include <qtoolbutton.h>
-#include <qaction.h>
-
 #include "SUIT.h"
 
+#include <QtGui/qaction.h>
+#include <QtGui/qtoolbutton.h>
+
+class QPixmap;
+class QToolBar;
+
 /*! To draw down arrow on toolbutton.*/
 class SUIT_EXPORT SUIT_ToolButton : public QToolButton
 {
@@ -35,11 +38,6 @@ public:
   SUIT_ToolButton( QWidget *parent = 0, 
                    const char *name = 0,
                    bool changeItemAfterClick = true );
-  SUIT_ToolButton(  const QPixmap & pm, const QString &textLabel,
-                    const QString& grouptext,
-                    QObject * receiver, const char* slot,
-                    QToolBar * parent, const char* name = 0,
-                    bool changeItemAfterClick = true );
   //@}
 
   void drawButton( QPainter * pQPainter);
@@ -57,11 +55,10 @@ protected:
 private:
   void initialize();
 
-  QPopupMenu* myPopup;
-  QSignal* mySignal;
-  bool myChangeItemAfterClick;
+  QMenu*   myPopup;
+//  QSignal* mySignal;
+  bool     myChangeItemAfterClick;
 
 };
 
 #endif
-
index 953de65d4f20c4ac8bcb5df183f2331e499c7b8c..11086a0d93de555583a87cb8c2ee8fc866a19796 100755 (executable)
@@ -18,7 +18,7 @@
 //
 #include "SUIT_Tools.h"
 
-#include <qdir.h>
+#include <QtCore/qdir.h>
 
 #include <stdio.h>
 #include <stdarg.h>
@@ -37,7 +37,7 @@ void SUIT_Tools::trace( const char* lpszLog, const char* lpszFormat, ... )
   tmpPath += QString( "Salome_trace" );
 
   FILE*        pStream;
-  pStream = fopen( lpszLog ? lpszLog : tmpPath.latin1(), "a" );
+  pStream = fopen( lpszLog ? lpszLog : (const char*)tmpPath.toLatin1(), "a" );
   if ( pStream ) 
   {    
     va_list argptr;
@@ -55,7 +55,7 @@ void SUIT_Tools::trace( const char* lpszLog, const char* lpszFormat, ... )
 */     
 QRect SUIT_Tools::makeRect( const int x1, const int y1, const int x2, const int y2 )
 {  
-  return QRect( QMIN( x1, x2 ), QMIN( y1, y2 ), QABS( x2 - x1 ), QABS( y2 - y1 ) );
+  return QRect( qMin( x1, x2 ), qMin( y1, y2 ), qAbs( x2 - x1 ), qAbs( y2 - y1 ) );
 }
 
 /*!
@@ -64,7 +64,7 @@ QRect SUIT_Tools::makeRect( const int x1, const int y1, const int x2, const int
 QFont SUIT_Tools::stringToFont( const QString& fontDescription )
 {
   QFont font;
-  if ( fontDescription.stripWhiteSpace().isEmpty() || !font.fromString( fontDescription ) )
+  if ( fontDescription.trimmed().isEmpty() || !font.fromString( fontDescription ) )
     font = QFont( "Courier", 11 );
   return font;
 }
index 62bc8d1633b08f7d94580b2f39337a19ce6eb100..53ebfe11d250c8219e2f314f48f238e586085c4c 100755 (executable)
 
 #include <Qtx.h>
 
-#include <qrect.h>
-#include <qfont.h>
-#include <qstring.h>
+#include <QtCore/qrect.h>
+#include <QtCore/qstring.h>
+
+#include <QtGui/qfont.h>
 
 /*!
   \class SUIT_Tools
index 9d2e7e18619cdd04f16bd00d33734716b7b91d20..0693ea0862d1053a36d66aa435caca1d9395a9d6 100755 (executable)
 #include "SUIT_ViewModel.h"
 #include "SUIT_Study.h"
 
-#include <qcursor.h>
-#include <qregexp.h>
-#include <qmessagebox.h>
+#include <QtCore/qregexp.h>
+#include <QtCore/qpointer.h>
 
-#ifdef WNT
+#include <QtGui/qcursor.h>
+#include <QtGui/qmessagebox.h>
+
+#ifdef WIN32
 #include <windows.h>
 #endif
 
@@ -104,8 +106,8 @@ void SUIT_ViewManager::setViewModel(SUIT_ViewModel* theViewModel)
 /*!Sets view name for view window \a theView.*/
 void SUIT_ViewManager::setViewName( SUIT_ViewWindow* theView )
 {
-  QString title = prepareTitle( getTitle(), myId + 1, myViews.find( theView ) + 1 );
-  theView->setCaption( title );
+  QString title = prepareTitle( getTitle(), myId + 1, myViews.indexOf( theView ) + 1 );
+  theView->setWindowTitle( title );
 }
 
 QString SUIT_ViewManager::prepareTitle( const QString& title, const int mId, const int vId )
@@ -113,7 +115,7 @@ QString SUIT_ViewManager::prepareTitle( const QString& title, const int mId, con
   QString res = title;
   QRegExp re( "%[%MV]" );
   int i = 0;
-  while ( ( i = re.search( res, i ) ) != -1 )
+  while ( ( i = re.indexIn( res, i ) ) != -1 )
   {
     QString rplc;
     QString str = res.mid( i, re.matchedLength() );
@@ -162,18 +164,28 @@ void SUIT_ViewManager::createView()
   createViewWindow();
 }
 
+QVector<SUIT_ViewWindow*> SUIT_ViewManager::getViews() const
+{
+  QVector<SUIT_ViewWindow*> res;
+  for ( int i = 0; i < myViews.count(); i++ )
+  {
+    if ( myViews[i] )
+      res.append( myViews[i] );
+  }
+
+  return res;
+}
+
 /*!Insert view window to view manager.
  *\retval false - if something wrong, else true.
  */
 bool SUIT_ViewManager::insertView(SUIT_ViewWindow* theView)
 {
   unsigned int aSize = myViews.size();
-  unsigned int aNbItems = myViews.count()+1;
-  if (aNbItems > aSize) {
-    if (!myViews.resize(aNbItems)) {
-      QMessageBox::critical(myDesktop, tr("Critical error"), tr("There is no memory for the new view!!!"));
-      return false;
-    }
+  unsigned int aNbItems = myViews.count() + 1;
+  if ( aNbItems > aSize )
+  {
+    myViews.resize( aNbItems );
     aSize = myViews.size();
   }
   
@@ -228,11 +240,11 @@ void SUIT_ViewManager::closeView( SUIT_ViewWindow* theView )
   if ( !theView )
     return;
 
-  QGuardedPtr<SUIT_ViewWindow> view( theView );
+  QPointer<SUIT_ViewWindow> view( theView );
 
   view->hide();
 
-  if ( !view->testWFlags( WDestructiveClose ) )
+  if ( !view->testAttribute( Qt::WA_DeleteOnClose ) )
     return;
 
   emit deleteView( view );
@@ -245,15 +257,14 @@ void SUIT_ViewManager::closeView( SUIT_ViewWindow* theView )
 /*!Remove view window \a theView from view manager.
  *And close the last view, if it has \a theView.
 */
-void SUIT_ViewManager::removeView(SUIT_ViewWindow* theView) 
+void SUIT_ViewManager::removeView( SUIT_ViewWindow* theView )
 {
-  theView->disconnect(this);
-  myViews.remove(myViews.find(theView));
-  if (myActiveView == theView)
+  theView->disconnect( this );
+  myViews.remove( myViews.indexOf( theView ) );
+  if ( myActiveView == theView )
     myActiveView = 0;
-  int aNumItems = myViews.count();
-  if (aNumItems == 0)
-    emit lastViewClosed(this);
+  if ( !myViews.count() )
+    emit lastViewClosed( this );
 }
 
 /*!
index 9fdd2ecd83f2341975db38d6bac413a884386654..4b3ea0f85d428ee4470f363a2828607224020e8a 100755 (executable)
@@ -23,8 +23,9 @@
 #include "SUIT_ViewWindow.h"
 #include "SUIT_PopupClient.h"
 
-#include <qobject.h>
-#include <qptrvector.h>
+#include <QtCore/qobject.h>
+#include <QtCore/qvector.h>
+#include <QtCore/qpointer.h>
 
 class SUIT_Study;
 class SUIT_Desktop;
@@ -57,7 +58,7 @@ public:
   SUIT_ViewWindow* getActiveView() { return myActiveView; }
   
   int              getViewsCount() { return myViews.count(); }
-  QPtrVector<SUIT_ViewWindow> getViews() { return myViews; }  
+  QVector<SUIT_ViewWindow*> getViews() const;
 
   QString          getTitle() const { return myTitle; }
   virtual void     setTitle( const QString& );
@@ -107,15 +108,18 @@ protected:
   virtual void     closeView(SUIT_ViewWindow* theView);
   
   /*! Used to set unique name for the view.*/
-  virtual void     setViewName(SUIT_ViewWindow* theView);
+  virtual void     setViewName(SUIT_ViewWindow* theView );
   QString          prepareTitle( const QString&, const int, const int );
 
   static int       useNewId( const QString& );
 
+protected:
+  typedef QPointer<SUIT_ViewWindow> ViewWindow;
+
 protected:
   SUIT_Desktop*               myDesktop;
   SUIT_ViewModel*             myViewModel;
-  QPtrVector<SUIT_ViewWindow> myViews;
+  QVector<ViewWindow>         myViews;
   SUIT_ViewWindow*            myActiveView;
 
   int                         myId;
index 86c0f00993990218304efa4dd2bd10f4e2342f5c..cba2af9fcae794fd7142bd1701f59f9f83bbad1f 100755 (executable)
@@ -29,19 +29,20 @@ static bool isInitialized = false;
 /*!Constructor.*/
 SUIT_ViewModel::SUIT_ViewModel()
 {
-  if (!isInitialized) {
+  if ( !isInitialized )
+  {
     isInitialized = true;
 
-    SUIT_ViewModel::myStateMap[ZOOM]  = Qt::ControlButton;
+    SUIT_ViewModel::myStateMap[ZOOM]  = Qt::ControlModifier;
     SUIT_ViewModel::myButtonMap[ZOOM] = Qt::LeftButton;
 
-    SUIT_ViewModel::myStateMap[PAN]   = Qt::ControlButton;
+    SUIT_ViewModel::myStateMap[PAN]   = Qt::ControlModifier;
     SUIT_ViewModel::myButtonMap[PAN]  = Qt::MidButton;
 
-    SUIT_ViewModel::myStateMap[ROTATE]  = Qt::ControlButton;
+    SUIT_ViewModel::myStateMap[ROTATE]  = Qt::ControlModifier;
     SUIT_ViewModel::myButtonMap[ROTATE] = Qt::RightButton;
 
-    SUIT_ViewModel::myStateMap[FIT_AREA]  = Qt::ControlButton;
+    SUIT_ViewModel::myStateMap[FIT_AREA]  = Qt::ControlModifier;
     SUIT_ViewModel::myButtonMap[FIT_AREA] = Qt::RightButton;
   }
   myViewManager = 0;
@@ -65,8 +66,7 @@ SUIT_ViewWindow* SUIT_ViewModel::createView(SUIT_Desktop* theDesktop)
  *\param theState - adding state to state map operations.
  *\param theButton - adding state to button map operations.
  */
-void SUIT_ViewModel::setHotButton(HotOperation theOper, Qt::ButtonState theState,
-                                 Qt::ButtonState theButton)
+void SUIT_ViewModel::setHotButton( HotOperation theOper, Qt::KeyboardModifier theState, Qt::MouseButton theButton )
 {
   myStateMap[theOper]  = theState;
   myButtonMap[theOper] = theButton;
@@ -77,8 +77,7 @@ void SUIT_ViewModel::setHotButton(HotOperation theOper, Qt::ButtonState theState
  *\param theState - output state from state map operations.
  *\param theButton - output state from button map operations.
 */
-void SUIT_ViewModel::getHotButton(HotOperation theOper, Qt::ButtonState& theState,
-                                 Qt::ButtonState& theButton)
+void SUIT_ViewModel::getHotButton( HotOperation theOper, Qt::KeyboardModifier& theState, Qt::MouseButton& theButton )
 {
   theState  = myStateMap[theOper];
   theButton = myButtonMap[theOper];
index 4be9fd777d9e65bacaeb11599a01c34047ead3cb..2cf1e6f47811a884962fc9d66b50059815e9b05b 100755 (executable)
@@ -24,8 +24,9 @@
 #include "SUIT_ViewWindow.h"
 #include "SUIT_ViewManager.h"
 
-#include <qobject.h>
-#include <qcursor.h>
+#include <QtCore/qobject.h>
+
+#include <QtGui/qcursor.h>
 
 #ifdef WIN32
 #pragma warning( disable:4251 )
@@ -42,8 +43,8 @@ class SUIT_EXPORT SUIT_ViewModel : public QObject
 public:
   enum HotOperation { PAN, ZOOM, ROTATE, FIT_AREA };
 
-  typedef QMap<HotOperation, Qt::ButtonState> StatesMap;
-  typedef QMap<HotOperation, Qt::ButtonState> ButtonsMap;
+  typedef QMap<HotOperation, Qt::KeyboardModifier> StatesMap;
+  typedef QMap<HotOperation, Qt::MouseButton>      ButtonsMap;
   
        SUIT_ViewModel();
        virtual ~SUIT_ViewModel();
@@ -57,10 +58,10 @@ public:
 
   virtual void      contextMenuPopup(QPopupMenu*) {}
 
-  static void       setHotButton(HotOperation theOper, Qt::ButtonState theState,
-                                                       Qt::ButtonState theButton);
-  static void       getHotButton(HotOperation theOper, Qt::ButtonState& theState,
-                                                       Qt::ButtonState& theButton);
+  static void       setHotButton( HotOperation theOper, Qt::KeyboardModifier theState,
+                                                        Qt::MouseButton theButton );
+  static void       getHotButton( HotOperation theOper, Qt::KeyboardModifier& theState,
+                                                        Qt::MouseButton& theButton );
 
 protected:
        SUIT_ViewManager* myViewManager;
index faf064fb51486b4cdbf093c3a33d3379263b1d38..4fb6c40c6f320555319da3e90b071269a46a61e9 100755 (executable)
 //
 
 #include "SUIT_ViewWindow.h"
+
+#include "SUIT_Tools.h"
+#include "SUIT_Study.h"
 #include "SUIT_Desktop.h"
+#include "SUIT_MessageBox.h"
 #include "SUIT_Application.h"
-#include "SUIT_Study.h"
 #include "SUIT_ViewManager.h"
-#include "SUIT_Tools.h"
-#include "SUIT_MessageBox.h"
-#include <qhbox.h>
-#include <qpopupmenu.h>
-#include <qapplication.h>
-#include <qimage.h>
+
+#include <QtGui/qmenu.h>
+#include <QtGui/qevent.h>
+#include <QtGui/qimage.h>
+#include <QtGui/qapplication.h>
 
 /*!\class SUIT_ViewWindow
  * Class provide view window.
 const int DUMP_EVENT = QEvent::User + 123;
 
 /*! Constructor.*/
-SUIT_ViewWindow::SUIT_ViewWindow(SUIT_Desktop* theDesktop)
-: QMainWindow( theDesktop, "SUIT_ViewWindow", Qt::WDestructiveClose )
+SUIT_ViewWindow::SUIT_ViewWindow( SUIT_Desktop* theDesktop )
+: QMainWindow( theDesktop )
 {
   myDesktop = theDesktop;
 
-  if ( myDesktop->icon() )
-    setIcon( *myDesktop->icon() );
+  setWindowIcon( myDesktop->windowIcon() );
+
+  setAttribute( Qt::WA_DeleteOnClose );
 }
 
 /*! Destructor.*/
@@ -95,8 +98,8 @@ bool SUIT_ViewWindow::dumpViewToFormat( const QImage& img, const QString& fileNa
   else if( fmt == "JPG" )
     fmt = "JPEG";
 
-  QApplication::setOverrideCursor( Qt::waitCursor );
-  bool res = img.save( fileName, fmt.latin1() );
+  QApplication::setOverrideCursor( Qt::WaitCursor );
+  bool res = img.save( fileName, fmt.toLatin1() );
   QApplication::restoreOverrideCursor();
   return res;
 }
@@ -116,10 +119,7 @@ bool SUIT_ViewWindow::dumpViewToFormat( const QString& fileName, const QString&
 */
 void SUIT_ViewWindow::setDestructiveClose( const bool on )
 {
-  if ( on )
-    setWFlags( WDestructiveClose );
-  else
-    clearWFlags( WDestructiveClose );
+  setAttribute( Qt::WA_DeleteOnClose, on );
 }
 
 /*! Close event \a theEvent.
@@ -142,8 +142,8 @@ void SUIT_ViewWindow::contextMenuEvent ( QContextMenuEvent * e )
 */
 void SUIT_ViewWindow::onDumpView()
 {
-  qApp->postEvent( this, new QPaintEvent( QRect( 0, 0, width(), height() ), TRUE ) );
-  qApp->postEvent( this, new QCustomEvent( DUMP_EVENT ) );
+  QApplication::postEvent( this, new QPaintEvent( QRect( 0, 0, width(), height() ) ) );
+  QApplication::postEvent( this, new QEvent( (QEvent::Type)DUMP_EVENT ) );
 }
 
 /*!
@@ -168,20 +168,18 @@ bool SUIT_ViewWindow::event( QEvent* e )
       // get file name
       SUIT_Application* app = myManager->study()->application();
       QString fileName = app->getFileName( false, QString::null, filter(), tr( "TLT_DUMP_VIEW" ), 0 );
-      if( !fileName.isEmpty() )
+      if ( !fileName.isEmpty() )
       {
-       QString fmt = SUIT_Tools::extension( fileName ).upper();
-       bOk = dumpViewToFormat( im, fileName, fmt );
+             QString fmt = SUIT_Tools::extension( fileName ).toUpper();
+             bOk = dumpViewToFormat( im, fileName, fmt );
       }
       else
-      {
-       bOk = true; // cancelled
-      }
+             bOk = true; // cancelled
     }
-    if ( !bOk ) {
+    if ( !bOk )
       SUIT_MessageBox::error1( this, tr( "ERROR" ), tr( "ERR_CANT_DUMP_VIEW" ), tr( "BUT_OK" ) );
-    }
-    return TRUE;
+
+    return true;
   }
   return QMainWindow::event( e );
 }
index 6a6a6f86920a840d25c2f6915f6b607141d9903f..8381c0a61d74faeca5140ead13a1de0e2614ceee 100755 (executable)
 // SUIT_ViewWindow.h: interface for the SUIT_ViewWindow class.
 //
 
-#if !defined(AFX_SUIT_VIEWWINDOW_H__82C3D51A_6F10_45B0_BCFE_3CB3EF596A4D__INCLUDED_)
-#define AFX_SUIT_VIEWWINDOW_H__82C3D51A_6F10_45B0_BCFE_3CB3EF596A4D__INCLUDED_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
+#ifndef SUIT_VIEWWINDOW_H
+#define SUIT_VIEWWINDOW_H
 
 #include "SUIT.h"
 
-#include <qmainwindow.h>
+#include <QtGui/qmainwindow.h>
 
+class QImage;
 class SUIT_Desktop;
 class SUIT_ViewManager;
-class QImage;
 
 class SUIT_EXPORT SUIT_ViewWindow: public QMainWindow 
 {
diff --git a/src/SUIT/utilities.h b/src/SUIT/utilities.h
deleted file mode 100755 (executable)
index a82d317..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-//  SALOME Utils : general SALOME's definitions and tools
-//
-//  Copyright (C) 2003  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. 
-// 
-//  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   : utilities.h
-//  Author : Antoine YESSAYAN, Paul RASCLE, EDF
-//  Module : SALOME
-//  $Header$
-
-/*! ---  Definition macros file to print informations if _DEBUG_ is defined --- */
-
-#ifndef UTILITIES_H
-#define UTILITIES_H
-
-#include <iostream>
-#include <sstream>
-#include <cstdlib>
-
-
-#include "LocalTraceBufferPool.hxx"
-
-/*! \file utilities.h
- * For each message to put in the trace, a specific ostingstream object is \n
- * created and destroyed automatically at the end of the message macro. \n
- * The insert function of LocalTraceBufferPool class gets a buffer in a \n
- * buffer pool (unique with the help of mutexes and semaphores) and copy the \n
- * message in the buffer.\n
- * This buffer is read later by a specific thread in charge of trace print.\n
- * Order of trace entries is globally respected. Nevertheless, if there are \n
- * several threads waiting for a free buffer to trace, the order of \n
- * thread waken up is not garanteed (no fifo or priority rules in Linux Kernel)
- */
-
-#define MESS_INIT(deb) std::ostringstream os; os<<deb
-#define MESS_BEGIN(deb) MESS_INIT(deb)<<__FILE__ <<" ["<<__LINE__<<"] : "
-#define MESS_END std::endl; LocalTraceBufferPool::instance()->insert(NORMAL_MESS, os.str().c_str());
-#define MESS_ABORT std::endl; LocalTraceBufferPool::instance()->insert(ABORT_MESS, os.str().c_str());
-
-// --- Some macros are always defined (without _DEBUG_): for use with release version
-
-#define INFOS(msg) {MESS_BEGIN("- Trace ") << msg << MESS_END}
-#define PYSCRIPT(msg) {MESS_INIT("---PYSCRIPT--- ") << msg << MESS_END}
-#define INTERRUPTION(msg) {MESS_BEGIN("- INTERRUPTION: ")<< msg << MESS_ABORT}
-#define IMMEDIATE_ABORT(code) {std::cout <<std::flush; \
-                               std::cerr << "- ABORT " << __FILE__ << " [" <<__LINE__<< "] : " << flush; \
-                               std::cerr << "ABORT return code= "<< code << std::endl; \
-                               std::exit(code);}
-
-/*! --- To print date and time of compilation of current source --- */
-
-#if defined ( __GNUC__ )
-#define COMPILER               "g++" 
-#elif defined ( __sun )
-#define COMPILER               "CC" 
-#elif defined ( __KCC )
-#define COMPILER               "KCC" 
-#elif defined ( __PGI )
-#define COMPILER               "pgCC" 
-#elif defined ( __alpha )
-#define COMPILER               "cxx" 
-#else
-#define COMPILER               "undefined" 
-#endif
-
-#ifdef INFOS_COMPILATION
-#error INFOS_COMPILATION already defined
-#endif
-
-#define INFOS_COMPILATION { MESS_BEGIN("COMPILED with ") << COMPILER \
-                                      << ", " << __DATE__ \
-                                      << " at " << __TIME__ << MESS_END }
-#ifdef _DEBUG_
-
-/*! @name the following MACROS are useful at debug time*/
-//@{
-#define MESSAGE(msg) {MESS_BEGIN("- Trace ") << msg << MESS_END}
-#define SCRUTE(var)  {MESS_BEGIN("- Trace ") << #var << "=" << var <<MESS_END}
-
-#define REPERE ("------- ")
-#define BEGIN_OF(msg) {MESS_BEGIN(REPERE) << "Begin of: "      << msg << MESS_END} 
-#define END_OF(msg)   {MESS_BEGIN(REPERE) << "Normal end of: " << msg << MESS_END} 
-
-#ifndef ASSERT
-#define ASSERT(condition) \
-        if (!(condition)){INTERRUPTION("CONDITION "<<#condition<<" NOT VERIFIED")}
-#endif /* ASSERT */
-//@}
-
-#else /* ifdef _DEBUG_*/
-
-#define MESSAGE(msg) {}
-#define SCRUTE(var) {}
-#define REPERE
-#define BEGIN_OF(msg) {}
-#define END_OF(msg) {}
-
-#ifndef ASSERT
-#define ASSERT(condition) {}
-#endif /* ASSERT */
-
-#endif /* ifdef _DEBUG_*/
-
-#endif /* ifndef UTILITIES_H */