-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 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
#include <SUIT_DataObject.h>
#include <CAM_Application.h>
+#include <QPixmap>
#include <QPointer>
#include <QStringList>
class LogWindow;
+class QtxInfoPanel;
#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 LightApp_ModuleAction;
class SUIT_DataBrowser;
class SUIT_Study;
class SUIT_Accel;
public:
typedef enum { WT_ObjectBrowser,
+ WT_InfoPanel,
#ifndef DISABLE_PYCONSOLE
WT_PyConsole,
#endif
CloseId, CloseAllId, GroupAllId,
PreferencesId, MRUId, ModulesListId,
NewGLViewId, NewPlot2dId, NewOCCViewId, NewVTKViewId,
- NewQxSceneViewId, NewGraphicsViewId, StyleId, FullScreenId,
+ NewQxSceneViewId, NewGraphicsViewId, NewPVViewId, NewPyViewerId, NewPV3DViewId, StyleId, FullScreenId,
+ WebSiteId, ForumId, VideosId, TutorialsId,
UserID };
protected:
LogWindow* logWindow();
SUIT_DataBrowser* objectBrowser();
+ QtxInfoPanel* infoPanel();
#ifndef DISABLE_PYCONSOLE
PyConsole_Console* pythonConsole(const bool force = false);
#endif
LightApp_Preferences* preferences() const;
- virtual QString getFileFilter() const;
+ virtual QString getFileFilter( bool ) const;
virtual QString getFileName( bool open, const QString& initial, const QString& filters,
const QString& caption, QWidget* parent );
SUIT_ViewManager* getViewManager( const QString&, const bool );
virtual void addViewManager( SUIT_ViewManager* );
virtual void removeViewManager( SUIT_ViewManager* );
- virtual SUIT_ViewManager* createViewManager( const QString& vmType );
+ virtual SUIT_ViewManager* createViewManager( const QString& vmType, bool detached = false );
virtual SUIT_ViewManager* createViewManager( const QString& vmType, QWidget* w );
virtual SUIT_ViewManager* createViewManager( SUIT_ViewModel* );
- QWidget* getWindow( const int, const int = -1 );
+ QWidget* getWindow( const int );
QWidget* dockWindow( const int ) const;
void removeDockWindow( const int );
void insertDockWindow( const int, QWidget* );
void placeDockWindow( const int, Qt::DockWidgetArea );
virtual void start();
+ virtual void closeApplication();
virtual void contextMenuPopup( const QString&, QMenu*, QString& );
void setDefaultStudyName( const QString& theName );
- static int studyId();
-
virtual bool event( QEvent* );
virtual bool checkDataObject( LightApp_DataObject* theObj );
void emitOperationFinished( const QString&, const QString&, const QStringList& );
void updateVisibilityState( DataObjectList& theList,
- SUIT_ViewModel* theViewModel );
+ SUIT_ViewModel* theViewModel );
+
+ void updatePresentations( const QString& theComponent,
+ const QStringList& theViewManagerTypes );
- virtual bool checkExistingDoc();
+ virtual bool checkExistingDoc( bool = true );
+
+#ifndef DISABLE_PYCONSOLE
+ PyConsole_Interp* getPyInterp();
+#endif
signals:
+ void moduleActivated( const QString& );
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 onCopy();
virtual void onPaste();
virtual void onSelectionChanged();
+ virtual void onDockWindowVisibilityChanged( bool );
protected:
+ void showHelp( const QString& );
virtual void createActions();
+ virtual void addExtensionsActions(LightApp_ModuleAction* moduleAction);
+ virtual void customize();
virtual void createActionForViewer( const int id,
const int parentId,
const QString& suffix,
virtual void setActiveStudy( SUIT_Study* );
virtual void updateCommandsStatus();
+ virtual bool canOpenDoc( const QString& );
+
virtual void beforeCloseDoc( SUIT_Study* );
virtual void afterCloseDoc();
virtual void moduleAdded( CAM_Module* );
+ virtual void moduleDeactivated( CAM_Module* );
virtual bool activateModule( CAM_Module* = 0 );
LightApp_Preferences* preferences( const bool ) const;
virtual QMap<int, QString> activateModuleActions() const;
virtual void moduleActionSelected( const int );
+#ifndef DISABLE_PYCONSOLE
+ virtual PyConsole_Interp* createPyInterp();
+#endif
+
+ virtual void addCatalogue( const QString&, const QString& ) {}
+
protected slots:
virtual void onDesktopActivated();
virtual void onViewManagerRemoved( SUIT_ViewManager* );
virtual void onWindowActivated( SUIT_ViewWindow* theViewWindow );
void onNewWindow();
- void onModuleActivation( const QString& );
+ virtual void onModuleActivation( const QString& );
+ void onExtAdding();
+ void onExtRemoving( const QString& );
+ void onShowExtInfo();
void onCloseView( SUIT_ViewManager* );
virtual void onStudyCreated( SUIT_Study* );
virtual void onDesktopMessage( const QString& );
+ virtual void onInfoPanelShown();
+
private slots:
void onSelection();
void onRefresh();
void onCloseWindow();
void onCloseAllWindow();
void onGroupAllWindow();
+ void onRenamed();
+ //void onMoved();
protected:
void updateWindows();
void updateViewManagers();
void updateModuleActions();
- void removeModuleAction( const QString& );
+
+ bool checkModule( const QString& );
void loadDockWindowsState();
void saveDockWindowsState();
QString defaultModule() const;
virtual void currentWindows( QMap<int, int>& ) const;
void currentViewManagers( QStringList& ) const;
- void moduleIconNames( QMap<QString, QString>& ) const;
-
- bool isLibExists( const QString& ) const;
+ QPixmap moduleIcon( const QString&, const int = -1 ) const;
QDockWidget* windowDock( QWidget* ) const;
QByteArray dockWindowsState( const QMap<QString, bool>&, const QMap<QString, bool>& ) const;
virtual bool openAction( const int, const QString& );
void showPreferences( const QString& = QString() );
+ void showPreferences( const QStringList& );
private:
+ bool addUserModule( const QString&, const QString&, bool = false );
+ void removeUserModule(const QString& moduleInnerName, LightApp_ModuleAction* moduleAction);
void emptyPreferences( const QString& );
QList<QToolBar*> findToolBars( const QStringList& names = QStringList() );
-
- QByteArray processState(QByteArray& input,
- const bool processWin,
- const bool processTb,
- const bool isRestoring,
- QByteArray defaultState = QByteArray());
+ void createHelpItems( const QString& );
+ void removeHelpItems( const QString& );
+
+ QByteArray processState(QByteArray& input,
+ const bool processWin,
+ const bool processTb,
+ const bool isRestoring,
+ QByteArray defaultState = QByteArray());
protected:
- typedef QPointer<QWidget> WinPtr;
- typedef QMap<int, WinPtr> WinMap;
- typedef QMap<QString, QByteArray> WinVis;
- typedef QMap<QString, QByteArray> WinGeom;
+ typedef QPointer<QWidget> WinPtr;
+ typedef QMap<int, WinPtr> WinMap;
+ typedef QMap<QString, QByteArray> WinVis;
+ typedef QMap<QString, QByteArray> WinGeom;
+ typedef QList<int> IdList;
+ typedef QMap<QString, IdList> IdMap;
enum { OpenReload = CAM_Application::OpenExist + 1 };
WinMap myWin;
WinVis myWinVis;
+ IdMap myHelpItems;
SUIT_Accel* myAccel;
QTimer* myAutoSaveTimer;
static LightApp_Preferences* _prefs_;
- static int lastStudyId;
QStringList myUserWmTypes;
+
+ friend void LightAppCleanUpAppResources();
};
#ifdef WIN32