summaryrefslogtreecommitdiffstats
path: root/umbrello/umbrello/uml.h
diff options
context:
space:
mode:
Diffstat (limited to 'umbrello/umbrello/uml.h')
-rw-r--r--umbrello/umbrello/uml.h1026
1 files changed, 1026 insertions, 0 deletions
diff --git a/umbrello/umbrello/uml.h b/umbrello/umbrello/uml.h
new file mode 100644
index 00000000..ee669d88
--- /dev/null
+++ b/umbrello/umbrello/uml.h
@@ -0,0 +1,1026 @@
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * copyright (C) 2002-2006 *
+ * Umbrello UML Modeller Authors <uml-devel@uml.sf.net> *
+ ***************************************************************************/
+
+#ifndef UML_H
+#define UML_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "umlnamespace.h"
+
+#include <qmap.h>
+#include <qdict.h>
+
+#include <kdockwidget.h>
+#include <kdeversion.h>
+#include <kurl.h>
+
+// forward declaration of the UML classes
+class AlignToolBar;
+class CodeDocument;
+class CodeGenerator;
+class CodeGenerationPolicy;
+class CodeGenPolicyExt;
+class DocWindow;
+class UMLClassifier;
+class UMLDoc;
+class UMLListView;
+class UMLView;
+class WorkToolBar;
+class SettingsDlg;
+class UMLViewImageExporterAll;
+class RefactoringAssistant;
+class KPlayerPopupSliderAction;
+class XhtmlGenerator;
+
+// KDE forward declarations
+class KActionMenu;
+class KRecentFilesAction;
+class KStatusBarLabel;
+class KToggleAction;
+class KDockWidget;
+class KTabWidget;
+class KToolBarButton;
+class KPopupMenu;
+
+// Qt forward declarations
+class QWidgetStack;
+class QMenuData;
+class QClipboard;
+class QToolButton;
+class QCustomEvent;
+
+/**
+ * The base class for UML application windows. It sets up the main
+ * window and reads the config file as well as providing a menubar, toolbar
+ * and statusbar. An instance of UMLView creates your center view, which is connected
+ * to the window's Doc object.
+ * UMLApp reimplements the methods that KMainWindow provides for main window handling and supports
+ * full session management as well as using KActions.
+ * @see KMainWindow
+ * @see KApplication
+ * @see KConfig
+ *
+ * @author Paul Hensgen <phensgen@techie.com>
+ * Bugs and comments to uml-devel@lists.sf.net or http://bugs.kde.org
+ */
+
+class UMLApp : public KDockMainWindow {
+ Q_OBJECT
+public:
+ /**
+ * Constructor. Calls all init functions to create the application.
+ */
+ UMLApp(QWidget* parent=0, const char* name=0);
+
+ /**
+ * Standard deconstructor.
+ */
+ ~UMLApp();
+
+ static UMLApp* app();
+
+ /**
+ * Opens a file specified by commandline option.
+ */
+ void openDocumentFile(const KURL& url=KURL());
+
+ /**
+ * Calls the UMLDoc method to create a new Document.
+ */
+ void newDocument();
+
+ /**
+ * Returns a pointer to the current document connected to the
+ * KMainWindow instance.
+ * Used by the View class to access the document object's methods.
+ */
+ UMLDoc *getDocument() const;
+
+ /**
+ * Returns a pointer to the list view.
+ *
+ * @return The listview being used.
+ */
+ UMLListView* getListView();
+
+ /**
+ * Returns the toolbar being used.
+ *
+ * @return The toolbar being used.
+ */
+ WorkToolBar* getWorkToolBar();
+
+ /**
+ * Sets whether the program has been modified.
+ * This will change how the program saves/exits.
+ *
+ * @param _m true - modified.
+ */
+ void setModified(bool _m);
+
+ /**
+ * Set whether to allow printing.
+ * It will enable/disable the menu/toolbar options.
+ *
+ * @param enable Set whether to allow printing.
+ */
+ void enablePrint(bool enable);
+
+ /**
+ * Set whether to allow printing.
+ * It will enable/disable the menu/toolbar options.
+ *
+ * @param enable Set whether to allow printing.
+ */
+ void enableUndo(bool enable);
+
+ /**
+ * Set whether to allow printing.
+ * It will enable/disable the menu/toolbar options.
+ *
+ * @param enable Set whether to allow printing.
+ */
+ void enableRedo(bool enable);
+
+ /**
+ * Returns a pointer to the documentation window.
+ *
+ * @return Pointer to the DocWindow.
+ */
+ DocWindow * getDocWindow() {
+ return m_pDocWindow;
+ }
+
+ /**
+ * Returns the undo state.
+ *
+ * @return True if Undo is enabled.
+ */
+ bool getUndoEnabled();
+
+ /**
+ * Returns the redo state.
+ *
+ * @return True if Redo is enabled.
+ */
+ bool getRedoEnabled();
+
+ /**
+ * Returns the paste state.
+ *
+ * @return True if Paste is enabled.
+ */
+ bool getPasteState();
+
+ /**
+ * Returns the state on Cut/Copy.
+ *
+ * @return True if Cut/Copy is enabled.
+ */
+ bool getCutCopyState();
+
+ /**
+ * Gets the appropriate CodeGenerator.
+ *
+ * @return Pointer to the CodeGenerator.
+ */
+ CodeGenerator* getGenerator();
+
+ /**
+ * Set the current generator for this app.
+ * If giveWarning is true, then a popup box warning that the
+ * code generation library is out-of-date will show if you
+ * attempt to set the generator to NULL.
+ *
+ * @param gen Pointer to the CodeGenerator to set.
+ * @param giveWarning True to enable out-of-date warning.
+ */
+ void setGenerator(CodeGenerator* gen, bool giveWarning = true);
+
+ /**
+ * Creates a new code generator for the given active language.
+ *
+ * @return Pointer to the CodeGenerator created.
+ */
+ CodeGenerator* createGenerator();
+
+ /**
+ * Auxiliary function for UMLDoc::loadExtensionsFromXMI():
+ * Return the code generator of the given language if it already
+ * exists; if it does not yet exist then create it and return
+ * the newly created generator. It is the caller's responsibility
+ * to load XMI into the newly created generator.
+ */
+ CodeGenerator *setGenerator(Uml::Programming_Language pl);
+
+ /**
+ * Call the refactoring assistant on a classifier.
+ *
+ * @param classifier Pointer to the classifier to refactor.
+ */
+ void refactor(UMLClassifier* classifier);
+
+ /**
+ * Call the code viewing assistant on a given UMLClassifier.
+ *
+ * @param classifier Pointer to the classifier to view.
+ */
+ void viewCodeDocument(UMLClassifier* classifier);
+
+ /**
+ * Sets the state of the view properties menu item.
+ *
+ * @param bState Boolean, true to enable the view properties item.
+ */
+ void setDiagramMenuItemsState(bool bState);
+
+ /**
+ * Returns the widget used as the parent for UMLViews.
+ * @return The main view widget.
+ */
+ QWidget* getMainViewWidget();
+
+ /**
+ * Puts this view to the top of the viewStack, i.e. makes it
+ * visible to the user.
+ *
+ * @param view Pointer to the UMLView to push.
+ */
+ void setCurrentView(UMLView* view);
+
+ /**
+ * Get the current view.
+ * This may return a null pointer (when no view was previously
+ * specified.)
+ *
+ */
+ UMLView* getCurrentView();
+
+ /**
+ * Sets the default mime type for all diagrams that are exported as
+ * images.
+ *
+ * @param mimeType The MIME type to set as the default.
+ */
+ void setImageMimeType(QString const & mimeType){m_imageMimeType=mimeType;};
+
+ /**
+ * Gets the default mime type for all diagrams that are exported as
+ * images.
+ *
+ * @return The default MIME type for images.
+ */
+ QString const & getImageMimeType()const{return m_imageMimeType;};
+
+ /**
+ * Carries out the cut/copy command with different action performed
+ * depending on if from view or list view.
+ * Cut/Copy are the same. It is up to the caller to delete/cut the selection..
+ *
+ * If the operation is successful, the signal sigCutSuccessful() is emitted.
+ *
+ * Callers should connect to this signal to know what to do next.
+ */
+ bool editCutCopy( bool bFromView );
+
+ /**
+ * Return the tab widget.
+ */
+ KTabWidget *tabWidget();
+
+ /**
+ * Returns the current text in the status bar.
+ *
+ * @return The text in the status bar.
+ */
+ QString getStatusBarMsg();
+
+ /**
+ * Returns the default code generation policy.
+ */
+ CodeGenerationPolicy *getCommonPolicy();
+
+ /**
+ * Sets the CodeGenPolicyExt object.
+ */
+ void setPolicyExt(CodeGenPolicyExt *policy);
+
+ /**
+ * Returns the CodeGenPolicyExt object.
+ */
+ CodeGenPolicyExt *getPolicyExt();
+
+protected:
+ virtual void keyPressEvent(QKeyEvent* e);
+ virtual void keyReleaseEvent(QKeyEvent* e);
+
+ /**
+ * Event handler to receive custom events.
+ * It handles events such as exporting all views from command line (in
+ * that case, it executes the exportAllViews method in the event).
+ */
+ virtual void customEvent(QCustomEvent* e);
+
+ /**
+ * Helper method for handling cursor key release events (refactoring).
+ */
+ void handleCursorKeyReleaseEvent(QKeyEvent* e);
+
+ /**
+ * Save general Options like all bar positions and status
+ * as well as the geometry and the recent file list to
+ * the configuration file.
+ */
+ void saveOptions();
+
+ /**
+ * Read general Options again and initialize all variables
+ * like the recent file list.
+ */
+ void readOptions();
+
+ /**
+ * Initializes the KActions of the application.
+ */
+ void initActions();
+
+ /**
+ * Sets up the statusbar for the main window by
+ * initialzing a statuslabel.
+ */
+ void initStatusBar();
+
+ /**
+ * Creates the centerwidget of the KMainWindow instance and
+ * sets it as the view.
+ */
+ void initView();
+
+ /**
+ * queryClose is called by KMainWindow on each closeEvent of a
+ * window. Counter to the default implementation (which only
+ * returns true), this calls saveModified() on the document object
+ * to ask if the document shall be saved if Modified; on cancel
+ * the closeEvent is rejected.
+ * @see KMainWindow#queryClose
+ * @see KMainWindow#closeEvent
+ *
+ * @return True if window may be closed.
+ */
+ virtual bool queryClose();
+
+ /**
+ * queryExit is called by KMainWindow when the last
+ * window of the application is going to be closed during
+ * the closeEvent(). In contrast to the default
+ * implementation that just returns true, this calls
+ * saveOptions() to save the settings of the last
+ * window's properties.
+ * @see KMainWindow#queryExit
+ * @see KMainWindow#closeEvent
+ *
+ * @return True if window may be closed.
+ */
+ virtual bool queryExit();
+
+ /**
+ * Saves the window properties for each open window
+ * during session end to the session config file,
+ * including saving the currently opened file by a
+ * temporary filename provided by KApplication.
+ * @see KMainWindow#saveProperties
+ */
+ virtual void saveProperties(KConfig *_cfg);
+
+ /**
+ * Reads the session config file and restores the
+ * application's state including the last opened files and
+ * documents by reading the temporary files saved by
+ * saveProperties()
+ * @see KMainWindow#readProperties
+ */
+ virtual void readProperties(KConfig *_cfg);
+
+ CodeGenerationPolicy * m_commoncodegenpolicy;
+
+ /**
+ * Updates the Menu for language selection and sets the
+ * active lanugage. If no active lanugage is found or if it is
+ * not one of the registered languages it tries to fall back
+ * to Cpp
+ */
+ void updateLangSelectMenu(Uml::Programming_Language activeLanguage);
+
+protected slots:
+
+ /**
+ * Show "Tip of the Day" dialog
+ */
+ void tipOfTheDay();
+
+public slots:
+
+ /**
+ * Reads the activeLanguage from the KConfig and calls updateLangSelectMenu()
+ */
+ void initGenerator();
+
+ /**
+ * Runs the code generation wizard.
+ */
+ void generationWizard();
+
+ /**
+ * Clears the document in the actual view to reuse it as the new
+ * document.
+ */
+ void slotFileNew();
+
+ /**
+ * Open a file and load it into the document.
+ */
+ void slotFileOpen();
+
+ /**
+ * Opens a file from the recent files menu.
+ */
+ void slotFileOpenRecent(const KURL& url);
+
+ /**
+ * Save a document.
+ */
+ void slotFileSave();
+
+ /**
+ * Save a document by a new filename.
+ */
+ bool slotFileSaveAs();
+
+ /**
+ * Asks for saving if the file is modified, then closes the current
+ * file and window.
+ */
+ void slotFileClose();
+
+ /**
+ * Print the current file.
+ */
+ void slotFilePrint();
+
+ /**
+ * Closes all open windows by calling close() on each
+ * memberList item until the list is empty, then quits the
+ * application. If queryClose() returns false because the
+ * user canceled the saveModified() dialog, the closing
+ * aborts.
+ */
+ void slotFileQuit();
+
+ /**
+ * Exports the current model to docbook in a subdir of the
+ * current model directory named from the model name.
+ * @todo Let the user chose the destination directory and
+ * name, using network transparency.
+ */
+ void slotFileExportDocbook();
+
+ /**
+ * Exports the current model to XHTML in a subdir of the
+ * current model directory named from the model name.
+ * @todo Let the user chose the destination directory and
+ * name, using network transparency.
+ */
+ void slotFileExportXhtml();
+
+ /**
+ * Put the marked text/object into the clipboard and remove
+ * it from the document.
+ */
+ void slotEditCut();
+
+ /**
+ * Put the marked text/object into the clipboard.
+ */
+ void slotEditCopy();
+
+ /**
+ * Paste the clipboard into the document.
+ */
+ void slotEditPaste();
+
+ /**
+ * Toggles the toolbar.
+ * Deprecated. For compatibility with KDE 3.1, remove if we stop supporting KDE 3.1
+ */
+ void slotViewToolBar();
+
+ /**
+ * Toggles the statusbar.
+ * Deprecated. For compatibility with KDE 3.1, remove if we stop supporting KDE 3.1
+ */
+ void slotViewStatusBar();
+
+ /**
+ * Autolayouts the current class diagram
+ */
+ void slotAutolayout();
+
+ /**
+ * Changes the statusbar contents for the standard label
+ * permanently, used to indicate current actions.
+ * @param text The text that is displayed in the statusbar
+ */
+ void slotStatusMsg(const QString &text);
+
+ /**
+ * Create this view.
+ */
+ void slotClassDiagram();
+
+ /**
+ * Create this view.
+ */
+ void slotSequenceDiagram();
+
+ /**
+ * Create this view.
+ */
+ void slotCollaborationDiagram();
+
+ /**
+ * Create this view.
+ */
+ void slotUseCaseDiagram();
+
+ /**
+ * Create this view.
+ */
+ void slotStateDiagram();
+
+ /**
+ * Create this view.
+ */
+ void slotActivityDiagram();
+
+ /**
+ * Create this view.
+ */
+ void slotComponentDiagram();
+
+ /**
+ * Create this view.
+ */
+ void slotDeploymentDiagram();
+ /**
+ * Create this view.
+ */
+ void slotEntityRelationshipDiagram();
+
+ /**
+ * Notification of changed clipboard data.
+ */
+ void slotClipDataChanged();
+
+ /**
+ *
+ */
+ void slotCopyChanged();
+
+ /**
+ * Shows the global preferences dialog.
+ */
+ void slotPrefs();
+
+ /**
+ * Commits the changes from the global preferences dialog.
+ */
+ void slotApplyPrefs();
+
+ /**
+ * Register new views (aka diagram) with the GUI so they show up
+ * in the menu.
+ */
+ void slotUpdateViews();
+
+ /**
+ * Generate code for all classes.
+ */
+ void generateAllCode();
+
+ /**
+ * Set the language for which code will be generated.
+ *
+ * @param menuID the ID of the langSelect menu item for
+ * the relevant language.
+ */
+ void setActiveLanguage(int menuID);
+
+ /**
+ * Set the language for which code will be generated.
+ *
+ * @param activeLanguage The name of the language to set
+ */
+ void setActiveLanguage( const QString &activeLanguage );
+
+ /**
+ * Get the language for import and code generation.
+ */
+ Uml::Programming_Language getActiveLanguage();
+
+ /**
+ * Return true if the active language is case sensitive.
+ */
+ bool activeLanguageIsCaseSensitive();
+
+ /**
+ * Return the target language depedent scope separator.
+ */
+ QString activeLanguageScopeSeparator();
+
+ /**
+ * Return the default code generation language as configured by KConfig.
+ * If the activeLanguage is not found in the KConfig then use Uml::pl_Cpp
+ * as the default.
+ */
+ Uml::Programming_Language getDefaultLanguage();
+
+ /**
+ * Menu selection for clear current view.
+ */
+ void slotCurrentViewClearDiagram();
+
+ /**
+ * Menu selection for current view snap to grid property.
+ */
+ void slotCurrentViewToggleSnapToGrid();
+
+ /**
+ * Menu selection for current view show grid property.
+ */
+ void slotCurrentViewToggleShowGrid();
+
+ /**
+ * Menu selection for exporting current view as an image.
+ */
+ void slotCurrentViewExportImage();
+
+ /**
+ * Menu selection for exporting all views as images.
+ */
+ void slotAllViewsExportImage();
+
+ /**
+ * Menu selection for current view properties.
+ */
+ void slotCurrentViewProperties();
+
+ /**
+ * Import classes menu selection.
+ */
+ void slotImportClasses();
+
+ /**
+ * Class wizard menu selection.
+ */
+ void slotClassWizard();
+
+ /**
+ * Calls the active code generator to add its default datatypes
+ */
+ void slotAddDefaultDatatypes();
+
+ /**
+ * The displayed diagram has changed.
+ */
+ void slotCurrentViewChanged();
+
+ /**
+ * The snap to grid value has been changed.
+ */
+ void slotSnapToGridToggled(bool gridOn);
+
+ /**
+ * The show grid value has been changed.
+ */
+ void slotShowGridToggled(bool gridOn);
+
+ /**
+ * Select all widgets on the current diagram.
+ */
+ void slotSelectAll();
+
+ /**
+ * Deletes the selected widget.
+ */
+ void slotDeleteSelectedWidget();
+
+ /**
+ * Deletes the current diagram.
+ */
+ void slotDeleteDiagram();
+
+ /**
+ * Set the zoom factor of the current diagram.
+ *
+ * @param zoom Zoom factor in percentage.
+ */
+ void setZoom(int zoom);
+
+ /**
+ * Connected to by the KPlayerSliderAction zoomAction, a value of between 300
+ * and 2200 is scaled to zoom to between 9% and 525%.
+ * The min and max values of the slider are hard coded in KPlayerSliderAction for now.
+ * @param value Zoom factor before scaleing
+ */
+ void slotZoomSliderMoved(int value);
+
+ /**
+ * Set zoom to 100%
+ */
+ void slotZoom100();
+
+ /**
+ * Prepares the zoom menu for display.
+ */
+ void setupZoomMenu();
+
+ /**
+ * Reverts the document back to the state it was prior to the
+ * last action performed by the user.
+ */
+ void slotEditUndo();
+
+ /**
+ * Reverts the document back to the state it was prior to the
+ * last undo.
+ */
+ void slotEditRedo();
+
+ /**
+ * Searches for a menu with the given name
+ *
+ * @param menu The QPopupMenu or QMenuBar to search through.
+ * @param name The name of the menu to search for (name, not text)
+ */
+ QPopupMenu* findMenu(QMenuData* menu, const QString &name);
+
+ /**
+ * called when the tab has changed
+ */
+ void slotTabChanged(QWidget* view);
+
+ /**
+ * make the tab on the left of the current one the active one
+ */
+ void slotChangeTabLeft();
+
+ /**
+ * make the tab on the right of the current one the active one
+ */
+ void slotChangeTabRight();
+
+ /**
+ * Move the current tab left, not implemented
+ */
+ void slotMoveTabLeft();
+
+ /**
+ * Move the current tab right, not implemented
+ */
+ void slotMoveTabRight();
+
+ KConfig *getConfig() { return m_config; }
+
+ /**
+ * This slot deletes the current XHTML documentation generator as soon as
+ * this one signals that it has finished.
+ */
+ void slotXhtmlDocGenerationFinished();
+
+private:
+ static UMLApp* s_instance;
+
+ /**
+ * For selecting the active language.
+ */
+ QPopupMenu *m_langSelect;
+
+ /**
+ * Popup menu for zoom selection.
+ */
+ QPopupMenu *m_zoomSelect;
+
+ /**
+ * Active language.
+ */
+ Uml::Programming_Language m_activeLanguage;
+
+ /**
+ * Active code generator.
+ */
+ CodeGenerator *m_codegen;
+
+ /**
+ * Active policy extension.
+ * Only used for new code generators ({Cpp,Java,Ruby}CodeGenerator)
+ */
+ CodeGenPolicyExt *m_policyext;
+
+ /**
+ * Returns whether we can decode the given mimesource
+ */
+ static bool canDecode(const QMimeSource* mimeSource);
+
+ /**
+ * Reads from the config file the options state.
+ * Not in @ref readOptions as it needs to be read earlier than some
+ * of the other options, before some items are created.
+ */
+ void readOptionState();
+
+ /**
+ * Initialize Qt's global clipboard support for the application.
+ */
+ void initClip();
+
+ /**
+ * Initialize code generators at startup.
+ * Why is this important? Because IF we don't do this, then changes
+ * to the UML may not be synced with the saved code generation params
+ * for those languages which arent currently active.
+ */
+ void initSavedCodeGenerators();
+
+ /**
+ * The configuration object of the application.
+ */
+ KConfig* m_config;
+
+ /**
+ * View is the main widget which represents your working area.
+ * The View class should handle all events of the view widget.
+ * It is kept empty so you can create your view according to your
+ * application's needs by changing the view class.
+ */
+ UMLView* m_view;
+
+ /**
+ * doc represents your actual document and is created only once.
+ * It keeps information such as filename and does the loading and
+ * saving of your files.
+ */
+ UMLDoc* m_doc;
+
+ /**
+ * Listview shows the current open file.
+ */
+ UMLListView* m_listView;
+
+ /**
+ * The widget which shows the diagrams.
+ */
+ KDockWidget* m_mainDock;
+
+ /**
+ * Contains the UMLListView tree view.
+ */
+ KDockWidget* m_listDock;
+
+ /**
+ * Contains the documentation DocWindow widget.
+ */
+ KDockWidget* m_documentationDock;
+
+ /**
+ * Documentation window.
+ */
+ DocWindow* m_pDocWindow;
+
+ /** Refactoring assistant. */
+ RefactoringAssistant* m_refactoringAssist;
+
+ //KAction pointers to enable/disable actions
+ KAction* fileNew;
+ KAction* fileOpen;
+ KRecentFilesAction* fileOpenRecent;
+ KAction* fileSave;
+ KAction* fileSaveAs;
+ KAction* fileClose;
+ KAction* filePrint;
+ KAction* fileQuit;
+ KAction* fileExportDocbook;
+ KAction* fileExportXhtml;
+
+ KAction* editCut;
+ KAction* editCopy;
+ KAction* editPaste;
+ KAction* editUndo;
+ KAction* editRedo;
+ KAction* selectAll;
+ KAction* preferences;
+
+ KActionMenu* newDiagram;
+ KAction* classDiagram;
+ KAction* sequenceDiagram;
+ KAction* collaborationDiagram;
+ KAction* useCaseDiagram;
+ KAction* stateDiagram;
+ KAction* activityDiagram;
+ KAction* componentDiagram;
+ KAction* deploymentDiagram;
+ KAction* entityRelationshipDiagram;
+ KAction* viewClearDiagram;
+
+ KToggleAction* viewSnapToGrid;
+ KToggleAction* viewShowGrid;
+ KAction* viewExportImage;
+ KAction* viewExportImageAll;
+ KAction* viewProperties;
+
+ KAction* zoom100Action;
+ KPlayerPopupSliderAction* zoomAction;
+
+ KAction* genAll;
+ KAction* genWizard;
+ KAction* importClasses;
+ KAction* classWizard;
+ KAction* deleteSelectedWidget;
+ KAction* deleteDiagram;
+#ifdef HAVE_DOT
+ KAction* autolayout;
+#endif
+
+ KAction* changeTabLeft;
+ KAction* changeTabRight;
+ KAction* moveTabLeft;
+ KAction* moveTabRight;
+ KToolBarButton* m_newSessionButton;
+ KPopupMenu* m_diagramMenu;
+ QToolButton* m_closeDiagramButton;
+ KToggleAction* viewToolBar;
+ KToggleAction* viewStatusBar;
+ WorkToolBar* toolsbar;
+ QTimer* m_clipTimer;
+ QTimer* m_copyTimer;
+ AlignToolBar* m_alignToolBar;
+
+ KStatusBarLabel* m_statusLabel;
+
+ /**
+ * True if the application is opening an existing document
+ */
+ bool m_loading;
+
+ /**
+ * Shows, and is parent of, all the UMLViews (diagrams)
+ * if tabbed diagrams are not enabled.
+ */
+ QWidgetStack* m_viewStack;
+
+ /**
+ * Shows, and is parent of, all the UMLViews (diagrams)
+ * if tabbed diagrams are enabled.
+ */
+ KTabWidget* m_tabWidget;
+
+ /**
+ * Default mime type to use for image export.
+ */
+ QString m_imageMimeType;
+
+ /**
+ * the global UML settings dialog
+ */
+ SettingsDlg* m_dlg;
+
+ /**
+ * The UMLViewImageExporterAll used to export all the views.
+ */
+ UMLViewImageExporterAll* m_imageExporterAll;
+
+ /**
+ * The running XHTML documentation generator. null when no generation is
+ * running
+ */
+ XhtmlGenerator* m_xhtmlGenerator;
+
+signals:
+
+ /**
+ * Emitted when a cut operation is successful.
+ */
+ void sigCutSuccessful();
+};
+
+#endif // UML_H