-// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 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
// 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.
+// 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
#include "LightApp.h"
#include <SUIT_TreeModel.h>
+#include <SUIT_DataObject.h>
#include <CAM_Application.h>
#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 SUIT_DataBrowser;
class SUIT_Study;
class SUIT_Accel;
+class SUIT_ViewModel;
class CAM_Module;
class QString;
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, 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 );
+
+ virtual bool checkExistingDoc( bool = true );
+
+#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 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();
- virtual void onCloseDoc( bool ask = true);
+ virtual void onDockWindowVisibilityChanged( bool );
protected:
+ void showHelp( const QString& );
virtual void createActions();
virtual void createActionForViewer( const int id,
const int parentId,
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 QMap<int, QString> 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& );
+ virtual 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* );
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 updateModuleActions();
void removeModuleAction( const QString& );
+ bool checkModule( const QString& );
+
void loadDockWindowsState();
void saveDockWindowsState();
void currentViewManagers( QStringList& ) const;
void moduleIconNames( QMap<QString, QString>& ) const;
- bool isLibExists( const QString& ) const;
-
QDockWidget* windowDock( QWidget* ) const;
QByteArray dockWindowsState( const QMap<QString, bool>&, const QMap<QString, bool>& ) const;
void dockWindowsState( const QByteArray&, QMap<QString, bool>&, QMap<QString, bool>& ) const;
virtual bool openAction( const int, const QString& );
void showPreferences( const QString& = QString() );
+ void showPreferences( const QStringList& );
private:
void emptyPreferences( const QString& );
- QList<QToolBar*> findToolBars();
+ QList<QToolBar*> findToolBars( const QStringList& names = QStringList() );
- QByteArray processState(QByteArray& input, const bool processWin,const bool processTb, QByteArray defaultState = QByteArray());
+ QByteArray processState(QByteArray& input,
+ const bool processWin,
+ const bool processTb,
+ const bool isRestoring,
+ QByteArray defaultState = QByteArray());
protected:
typedef QPointer<QWidget> WinPtr;
static LightApp_Preferences* _prefs_;
- static int lastStudyId;
QStringList myUserWmTypes;
+
+ friend void LightAppCleanUpAppResources();
};
#ifdef WIN32