X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FLightApp%2FLightApp_Application.h;h=54be0df781f7e9e4622c2fd155a5b4a1300b2fa7;hb=1c1e0526d452336651ccecf48deb5d8227ecdd47;hp=7f17879092ff70efc975cf05008fd2bc8c3ccaa9;hpb=1c889394b028b786898a995d38c07c8f3d564837;p=modules%2Fgui.git diff --git a/src/LightApp/LightApp_Application.h b/src/LightApp/LightApp_Application.h index 7f1787909..54be0df78 100644 --- a/src/LightApp/LightApp_Application.h +++ b/src/LightApp/LightApp_Application.h @@ -1,28 +1,29 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// Copyright (C) 2003-2007 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 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, or (at your option) any later version. // -// 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. +// 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 +// 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 +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // File: LightApp_Application.h // Created: 6/20/2005 18:39:25 PM // Author: OCC team -// + #ifndef LIGHTAPP_APPLICATION_H #define LIGHTAPP_APPLICATION_H @@ -31,27 +32,34 @@ #endif // _MSC_VER > 1000 #include "LightApp.h" +#include +#include #include #include +#include class LogWindow; #ifndef DISABLE_PYCONSOLE class PyConsole_Console; +class PyConsole_Interp; #endif class LightApp_WidgetContainer; class LightApp_Preferences; class LightApp_SelectionMgr; +class LightApp_FullScreenHelper; class LightApp_DataObject; class SUIT_DataBrowser; class SUIT_Study; class SUIT_Accel; +class SUIT_ViewModel; class CAM_Module; class QString; class QWidget; class QStringList; class QDockWidget; +class QTimer; #ifdef WIN32 #pragma warning( disable:4251 ) @@ -61,7 +69,7 @@ class QDockWidget; Description : Application containing only LightApp module */ -class LIGHTAPP_EXPORT LightApp_Application : public CAM_Application +class LIGHTAPP_EXPORT LightApp_Application : public CAM_Application, public SUIT_DataSearcher { Q_OBJECT @@ -77,15 +85,17 @@ public: enum { MenuWindowId = 6 }; enum { RenameId = CAM_Application::UserID, - CloseId, CloseAllId, GroupAllId, - PreferencesId, MRUId, ModulesListId, - NewGLViewId, NewPlot2dId, NewOCCViewId, NewVTKViewId, NewQxGraphViewId, - NewQxSceneViewId, StyleId, - UserID }; + CloseId, CloseAllId, GroupAllId, + PreferencesId, MRUId, ModulesListId, + NewGLViewId, NewPlot2dId, NewOCCViewId, NewVTKViewId, + NewQxSceneViewId, NewGraphicsViewId, NewPVViewId, StyleId, FullScreenId, + UserID }; protected: enum { NewStudyId = 1, OpenStudyId }; + enum BrowsePolicy { BP_Never = 0, BP_ApplyAndClose, BP_Always }; + public: LightApp_Application(); virtual ~LightApp_Application(); @@ -101,7 +111,7 @@ public: LogWindow* logWindow(); SUIT_DataBrowser* objectBrowser(); #ifndef DISABLE_PYCONSOLE - PyConsole_Console* pythonConsole(); + PyConsole_Console* pythonConsole(const bool force = false); #endif virtual void updateObjectBrowser( const bool = true ); @@ -111,10 +121,10 @@ public: virtual QString getFileFilter() const; virtual QString getFileName( bool open, const QString& initial, const QString& filters, - const QString& caption, QWidget* parent ); + const QString& caption, QWidget* parent ); virtual QString getDirectory( const QString& initial, const QString& caption, QWidget* parent ); virtual QStringList getOpenFileNames( const QString& initial, const QString& filters, - const QString& caption, QWidget* parent ); + const QString& caption, QWidget* parent ); void updateActions(); @@ -122,6 +132,8 @@ public: virtual void addViewManager( SUIT_ViewManager* ); virtual void removeViewManager( SUIT_ViewManager* ); virtual SUIT_ViewManager* createViewManager( const QString& vmType ); + virtual SUIT_ViewManager* createViewManager( const QString& vmType, QWidget* w ); + virtual SUIT_ViewManager* createViewManager( SUIT_ViewModel* ); QWidget* getWindow( const int, const int = -1 ); QWidget* dockWindow( const int ) const; @@ -135,6 +147,8 @@ public: virtual void createEmptyStudy(); + virtual void setDesktop( SUIT_Desktop* ); + SUIT_Accel* accel() const; void setDefaultStudyName( const QString& theName ); @@ -147,19 +161,51 @@ public: virtual void updateDesktopTitle(); + //! Returns list of view manager types which are supported by this application + QStringList viewManagersTypes() const; + + //! Removes ViewManagers only of known type + virtual void clearKnownViewManagers(); + + virtual QString browseObjects( const QStringList& theEntryList, + const bool theIsApplyAndClose = true, + const bool theIsOptimizedBrowsing = false ); + + virtual SUIT_DataObject* findObject( const QString& ) const; + + virtual bool renameAllowed( const QString& ) const; + virtual bool renameObject( const QString&, const QString& ); + + void emitOperationFinished( const QString&, const QString&, const QStringList& ); + + void updateVisibilityState( DataObjectList& theList, + SUIT_ViewModel* theViewModel ); + + virtual bool checkExistingDoc(); + +#ifndef DISABLE_PYCONSOLE + PyConsole_Interp* getPyInterp(); +#endif + signals: void studyOpened(); void studySaved(); void studyClosed(); void preferenceChanged( const QString&, const QString&, const QString& ); + void preferenceResetToDefaults(); + void operationFinished( const QString&, const QString&, const QStringList& ); public slots: virtual void onHelpContentsModule(); virtual void onHelpContextModule( const QString&, const QString&, const QString& = QString() ); virtual void onNewDoc(); virtual void onOpenDoc(); + virtual void onHelpAbout(); virtual bool onOpenDoc( const QString& ); + virtual void onCopy(); + virtual void onPaste(); + virtual void onSelectionChanged(); protected: virtual void createActions(); @@ -174,7 +220,6 @@ protected: virtual void setActiveStudy( SUIT_Study* ); virtual void updateCommandsStatus(); - virtual void onSelectionChanged(); virtual void beforeCloseDoc( SUIT_Study* ); virtual void afterCloseDoc(); @@ -191,27 +236,37 @@ protected: virtual QMap activateModuleActions() const; virtual void moduleActionSelected( const int ); +#ifndef DISABLE_PYCONSOLE + virtual PyConsole_Interp* createPyInterp(); +#endif + protected slots: virtual void onDesktopActivated(); + virtual void onViewManagerRemoved( SUIT_ViewManager* ); + virtual void onWindowActivated( SUIT_ViewWindow* theViewWindow ); void onNewWindow(); void onModuleActivation( const QString& ); void onCloseView( SUIT_ViewManager* ); - void onStudyCreated( SUIT_Study* ); - void onStudyOpened( SUIT_Study* ); - void onStudySaved( SUIT_Study* ); - void onStudyClosed( SUIT_Study* ); + virtual void onStudyCreated( SUIT_Study* ); + virtual void onStudyOpened( SUIT_Study* ); + virtual void onStudySaved( SUIT_Study* ); + virtual void onStudyClosed( SUIT_Study* ); void onWCDestroyed( QObject* ); void onMRUActivated( const QString& ); void onStylePreferences(); + void onFullScreen(); + + virtual void onDesktopMessage( const QString& ); private slots: void onSelection(); void onRefresh(); + void onDropped( const QList&, SUIT_DataObject*, int, Qt::DropAction ); void onPreferences(); void onPreferenceChanged( QString&, QString&, QString& ); void onRenameWindow(); @@ -223,17 +278,19 @@ protected: void updateWindows(); void updateViewManagers(); void updateModuleActions(); + void removeModuleAction( const QString& ); void loadDockWindowsState(); void saveDockWindowsState(); virtual void studyOpened( SUIT_Study* ); virtual void studyCreated( SUIT_Study* ); + virtual void studySaved( SUIT_Study* ); void updatePreference( const QString&, const QString&, const QString& ); QString defaultModule() const; - void currentWindows( QMap& ) const; + virtual void currentWindows( QMap& ) const; void currentViewManagers( QStringList& ) const; void moduleIconNames( QMap& ) const; @@ -250,6 +307,13 @@ protected: private: void emptyPreferences( const QString& ); + QList findToolBars( const QStringList& names = QStringList() ); + + QByteArray processState(QByteArray& input, + const bool processWin, + const bool processTb, + const bool isRestoring, + QByteArray defaultState = QByteArray()); protected: typedef QPointer WinPtr; @@ -263,15 +327,18 @@ protected: LightApp_Preferences* myPrefs; LightApp_SelectionMgr* mySelMgr; + LightApp_FullScreenHelper* myScreenHelper; + WinMap myWin; WinVis myWinVis; - WinGeom myWinGeom; SUIT_Accel* myAccel; + QTimer* myAutoSaveTimer; static LightApp_Preferences* _prefs_; static int lastStudyId; + QStringList myUserWmTypes; }; #ifdef WIN32