Version: 9.16.0
STD_Application.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23#ifndef STD_APPLICATION_H
24#define STD_APPLICATION_H
25
26#include "STD.h"
27
28#include <SUIT_Application.h>
29
30#include <QtxNotify.h>
31
32#include <QList>
33#include <QPointer>
34
35class QMenu;
36class QCloseEvent;
37class QContextMenuEvent;
38
39class QToolBar;
40class QtxAction;
41class SUIT_Operation;
42class SUIT_ViewWindow;
43class SUIT_ToolWindow;
44class SUIT_Desktop;
47
49
50#if defined WIN32
51#pragma warning( disable: 4251 )
52#endif
53
55{
56 Q_OBJECT
57
58public:
59 enum { MenuFileId, FileNewId, FileOpenId, FileReopenId, FileCloseId, FileSaveId, FileSaveAsId, FileExitId,
60 MenuViewId, ViewWindowsId, ViewToolBarsId, ViewStatusBarId, NewWindowId,
61 MenuEditId, EditCutId, EditCopyId, EditPasteId,
62 MenuHelpId, HelpAboutId,
63 UserID
64 };
65
66public:
68 virtual ~STD_Application();
69
70 virtual QString applicationName() const;
71
72 virtual bool isPossibleToClose( bool& );
73 virtual bool useFile( const QString& );
74
75 virtual void createEmptyStudy();
76
77 void setEditEnabled( const bool );
78 bool isEditEnabled() const { return myEditEnabled; }
79
80 void clearViewManagers();
81 virtual void addViewManager( SUIT_ViewManager* );
82 virtual void removeViewManager( SUIT_ViewManager* );
83
84 SUIT_ViewManager* activeViewManager() const;
85 SUIT_ViewManager* viewManager( const QString& ) const;
86
87 bool containsViewManager( SUIT_ViewManager* ) const;
88
90 void viewManagers( ViewManagerList& ) const;
91 void viewManagers( const QString&, ViewManagerList& ) const;
92 virtual int viewManagerId (const SUIT_ViewManager* ) const;
93
94 virtual QString getFileFilter( bool open ) const;
95 virtual QString getFileName( bool open, const QString& initial, const QString& filters,
96 const QString& caption, QWidget* parent );
97 QString getDirectory( const QString& initial, const QString& caption, QWidget* parent );
98
99 virtual void start();
100
101 virtual void closeApplication();
102
103 virtual void contextMenuPopup( const QString&, QMenu*, QString& ) {}
104
105 bool exitConfirmation() const;
106 void setExitConfirmation( const bool );
107
108 virtual void updateDesktopTitle();
109
110 int showNotification(const QString& message, const QString& title, int timeout = -1);
111 void hideNotification(const QString& message);
112 void hideNotification(int id);
113
114signals:
121 void appClosed();
122
123public slots:
124 virtual void onNewDoc();
125 virtual bool onNewDoc( const QString& );
126
127 virtual void onCloseDoc( bool ask = true );
128 virtual bool onSaveDoc();
129 virtual bool onSaveAsDoc();
130
131 virtual void onOpenDoc();
132 virtual bool onOpenDoc( const QString& );
133
134 virtual bool onReopenDoc();
135
136 virtual void onExit();
137
138 virtual void onCopy();
139 virtual void onPaste();
140
141 virtual void onViewStatusBar( bool );
142
143 virtual void onHelpAbout();
144
145 virtual void onDesktopClosing( SUIT_Desktop*, QCloseEvent* );
146 virtual void onConnectPopupRequest( SUIT_PopupClient*, QContextMenuEvent* );
147
148private slots:
149 virtual void onViewManagerActivated( SUIT_ViewManager* );
150
151protected:
152 enum { OpenCancel, OpenNew, OpenExist };
153 enum { CloseCancel, CloseSave, CloseDiscard };
154
155protected:
156 virtual void createActions();
157 virtual void customize();
158 virtual void updateCommandsStatus();
159
160 virtual void setDesktop( SUIT_Desktop* );
161
162 virtual void loadPreferences();
163 virtual void savePreferences();
164
165 virtual void studySaved( SUIT_Study* );
166 virtual void studyOpened( SUIT_Study* );
167 virtual void studyCreated( SUIT_Study* );
168
169 virtual void beforeCloseDoc( SUIT_Study* theDoc );
170 virtual void afterCloseDoc();
171
172 virtual void setActiveViewManager( SUIT_ViewManager* );
173
174 virtual int openChoice( const QString& );
175 virtual bool openAction( const int, const QString& );
176
177 virtual int closeChoice( const QString& );
178 virtual bool closeAction( const int, bool& );
179 virtual bool closeDoc( bool ask = true );
180 virtual bool closeActiveDoc( bool permanently = true );
181
182 virtual bool abortAllOperations();
183
184 private:
185 QtxNotify* notifyMgr();
186
187private:
190
191private:
192 QPointer<QtxNotify> myNotify;
195};
196
197#if defined WIN32
198#pragma warning( default: 4251 )
199#endif
200
201#endif
#define STD_EXPORT
Definition: STD.h:33
QList< SUIT_ViewManager * > ViewManagerList
Definition: STD_Application.h:48
Generic action class.
Definition: QtxAction.h:39
Definition: QtxNotify.h:36
Definition: STD_Application.h:55
virtual void contextMenuPopup(const QString &, QMenu *, QString &)
Definition: STD_Application.h:103
void viewManagerRemoved(SUIT_ViewManager *)
SUIT_ViewManager * myActiveViewMgr
Definition: STD_Application.h:189
@ OpenCancel
Definition: STD_Application.h:152
bool isEditEnabled() const
Definition: STD_Application.h:78
void viewManagerAdded(SUIT_ViewManager *)
ViewManagerList myViewMgrs
Definition: STD_Application.h:188
QPointer< QtxNotify > myNotify
Definition: STD_Application.h:192
@ EditCopyId
Definition: STD_Application.h:61
@ HelpAboutId
Definition: STD_Application.h:62
@ MenuViewId
Definition: STD_Application.h:60
@ FileCloseId
Definition: STD_Application.h:59
void viewManagerActivated(SUIT_ViewManager *)
@ CloseCancel
Definition: STD_Application.h:153
bool myExitConfirm
Definition: STD_Application.h:193
bool myEditEnabled
Definition: STD_Application.h:194
Definition: SUIT_Application.h:61
virtual QString applicationName() const =0
Returns Name of application. Using is not defined.
virtual void setDesktop(SUIT_Desktop *)
Definition: SUIT_Application.cxx:274
virtual void viewManagers(const QString &, QList< SUIT_ViewManager * > &) const =0
virtual void updateCommandsStatus()
Definition: SUIT_Application.cxx:241
virtual bool isPossibleToClose(bool &)
Definition: SUIT_Application.cxx:95
virtual QString getDirectory(const QString &initial, const QString &caption, QWidget *parent)=0
Invokes application-specific "Select Directory" dialog and returns the selected directory name.
virtual QString getFileName(bool open, const QString &initial, const QString &filters, const QString &caption, QWidget *parent)=0
Invokes application-specific "Open/Save File" dialog and returns the selected file name.
virtual bool useFile(const QString &theFileName)
Opens document <theFileName> into active Study. If Study is empty - creates it.
Definition: SUIT_Application.cxx:141
virtual void createEmptyStudy()
Creates new empty Study if active Study = 0.
Definition: SUIT_Application.cxx:160
virtual int viewManagerId(const SUIT_ViewManager *) const =0
virtual void closeApplication()
Definition: SUIT_Application.cxx:104
virtual void start()
Shows the application's main widget. For non GUI application must be redefined.
Definition: SUIT_Application.cxx:128
Definition: SUIT_Desktop.h:47
Base class for all operations.
Definition: SUIT_Operation.h:56
Definition: SUIT_PopupClient.h:37
Definition: SUIT_Study.h:41
Definition: SUIT_ViewManager.h:50
Definition: SUIT_ViewWindow.h:42