Skip to content

RMainWindow

Class in Core Module
Header: #include <src/core/RMainWindow.h>
Inherits: RProgressHandler, RMessageHandler
Inherited by: RMainWindowQt

Base class for an MDI main application window.

Scriptable: This class is available in script environments.

RMainWindow()
virtual ~RMainWindow()
void addBlockListener(RBlockListener *l)
Adds a listener for block change / add / remove events.
void addCoordinateListener(RCoordinateListener *l)
Adds a listener for coordinate events.
void addEntityExportListener(REntityExportListener *l)
void addExportListener(RExportListener *l)
Adds a listener for export events.
void addFocusListener(RFocusListener *l)
Adds a listener for focus changes.
void addImportListener(RImportListener *l)
Adds a listener for import events.
void addInterTransactionListener(RInterTransactionListener *l)
Adds a listener for transaction in progress events.
void addKeyListener(RKeyListener *l)
Adds a listener for key changes.
void addLayerListener(RLayerListener *l)
Adds a listener for layer change / add / remove events.
void addNewDocumentListener(RNewDocumentListener *l)
Adds a listener for transaction in progress events.
void addPaletteListener(RPaletteListener *l)
Adds a listener for palette change events.
void addPenListener(RPenListener *l)
Adds a listener for pen change events.
void addPreferencesListener(RPreferencesListener *l)
Adds a listener for preferences changes.
void addPropertyListener(RPropertyListener *l)
Adds a listener for property events.
void addSelectionListener(RSelectionListener *l)
Adds a listener for selection events.
void addSnapListener(RSnapListener *l)
Adds a listener for snap mode changes.
void addTransactionListener(RTransactionListener *l)
Adds a listener for transaction events.
void addUcsListener(RUcsListener *l)
Adds a listener for UCS change / add / remove events.
void addViewFocusListener(RViewFocusListener *l)
Adds a listener for view focus changes.
void addViewListener(RViewListener *l)
Adds a listener for view change / add / remove events.
virtual void disable()
virtual void enable()
virtual void escapeEvent()=0 = 0
QVariant eval(const QString &ext, const QString &script)
virtual QWidget * getChildWidget(const QString &name)=0 = 0
virtual RDocument * getDocument()=0 = 0
virtual RDocumentInterface * getDocumentInterface()=0 = 0
virtual int getHeight()=0 = 0
virtual int getPositionX()=0 = 0
virtual int getPositionY()=0 = 0
virtual int getWidth()=0 = 0
virtual void handleUserCommand(const QString &message, bool escape=true)
virtual void handleUserInfo(const QString &message, bool escape=true)
virtual void handleUserMessage(const QString &message, bool escape=true)
virtual void handleUserWarning(const QString &message, bool messageBox=false, bool escape=true)
virtual void move(int x, int y)=0 = 0
Moves the application window to the given x / y position.
void notifyBlockListeners(RDocumentInterface *documentInterface)
Notifies all block listeners that at least one block object has changed.
void notifyBlockListenersCurrentBlock(RDocumentInterface *documentInterface)
void notifyBlockListenersXRef()
void notifyCoordinateListeners(RDocumentInterface *documentInterface)
Notifies all coordinate listeners that the coordinate has changed to position.
void notifyEntityExportListeners(RExporter *exporter, REntity *entity)
void notifyExportListenersEnd(RExporter *exporter)
Notifies all Export listeners about end of export event (in reverse order, see addExportListener).
void notifyExportListenersPost(RDocumentInterface *documentInterface)
Notifies all Export listeners about post export event (in reverse order, see addExportListener).
void notifyExportListenersPre(RDocumentInterface *documentInterface)
Notifies all Export listeners about pre export event.
void notifyFocusListeners(RDocumentInterface *documentInterface)
Notifies all focus listeners.
void notifyImportListenersPost(RDocumentInterface *documentInterface)
Notifies all import listeners about post import event.
void notifyImportListenersPre(RDocumentInterface *documentInterface)
Notifies all import listeners about pre import event.
void notifyInterTransactionListeners(RDocument *document, RTransaction *transaction=NULL)
Notifies all transaction in progress listeners.
void notifyKeyListeners(QKeyEvent *event)
Notifies all key listeners.
void notifyLayerListeners(RDocumentInterface *documentInterface, QList< RObject::Id > &layerIds)
Notifies all layer listeners that at least one layer object has changed.
void notifyLayerListenersCurrentLayer(RDocumentInterface *documentInterface, RObject::Id previousLayerId)
void notifyListeners(bool withNull=false)
void notifyNewDocumentListeners(RDocument *document, RTransaction *transaction, bool beforeLoad)
Notifies all transaction in progress listeners.
void notifyPaletteListeners()
Notifies all palette listeners that the current palette has changed.
void notifyPenListeners(RDocumentInterface *documentInterface)
Notifies all pen listeners that the current pen has changed.
void notifyPreferencesListeners(RDocumentInterface *documentInterface)
Notifies all preferences listeners.
void notifyPropertyListeners()
Notifies all property listeners that no properties are currently relevant.
void notifyPropertyListeners(RDocument &document, REntity &entity)
Notifies all property listeners that the current property is the given entity.
void notifyPropertyListeners(RDocument *document, bool onlyChanges=false, RS::EntityType entityTypeFilter=RS::EntityUnknown)
Notifies all property listeners that the current property has changed.
void notifySelectionListeners(RDocumentInterface *documentInterface)
Notifies all selection listeners that the current selection has changed.
void notifySnapListeners(RDocumentInterface *documentInterface)
Notifies all snap mode listeners.
void notifyTransactionListeners(RDocument *document, RTransaction *transaction=NULL)
Notifies all transaction listeners.
void notifyUcsListeners(RDocumentInterface *documentInterface)
Notifies all UCS listeners that at least one UCS object has changed.
void notifyViewFocusListeners(RGraphicsView *view)
Notifies all view focus listeners.
void notifyViewListeners(RDocumentInterface *documentInterface)
Notifies all view listeners that at least one view object has changed.
virtual void postCloseEvent()=0 = 0
virtual void postPropertyEvent(RPropertyTypeId propertyTypeId, const QVariant &value, RS::EntityType entityTypeFilter=RS::EntityAll)=0 = 0
virtual void postSelectionChangedEvent()=0 = 0
virtual void postTransactionEvent(RTransaction &t, bool onlyChanges=false, RS::EntityType entityTypeFilter=RS::EntityAll)=0 = 0
void prependExportListener(RExportListener *l)
Adds a listener for export events which is notified before all listeners added so far (pre export event) and after them (post export and end of export events), see addExportListener.
void propertyChangeEvent(RPropertyEvent &event)
virtual void quit()=0 = 0
Closes the application window.
virtual void reloadXRefs(RDocumentInterface *di, const QSet< QString > &dirtyXRefPaths)
void removeBlockListener(RBlockListener *l)
void removeCoordinateListener(RCoordinateListener *l)
void removeEntityExportListener(REntityExportListener *l)
void removeExportListener(RExportListener *l)
void removeFocusListener(RFocusListener *l)
void removeImportListener(RImportListener *l)
void removeInterTransactionListener(RInterTransactionListener *l)
void removeKeyListener(RKeyListener *l)
void removeLayerListener(RLayerListener *l)
void removeNewDocumentListener(RNewDocumentListener *l)
void removePaletteListener(RPaletteListener *l)
void removePenListener(RPenListener *l)
void removePreferencesListener(RPreferencesListener *l)
void removePropertyListener(RPropertyListener *l)
void removeSelectionListener(RSelectionListener *l)
void removeSnapListener(RSnapListener *l)
void removeTransactionListener(RTransactionListener *l)
void removeUcsListener(RUcsListener *l)
void removeViewFocusListener(RViewFocusListener *l)
void removeViewListener(RViewListener *l)
virtual void resize(int width, int height)=0 = 0
Resizes the application window to the given width and height.
virtual void setCommandPrompt(const QString &text=“”)=0 = 0
virtual void setGraphicsViewCursor(const QCursor &cursor)=0 = 0
Sets the cursor of all graphics views in all MDI children.
virtual void setLeftMouseTip(const QString &text=“”)=0 = 0
virtual void setRightMouseTip(const QString &text=“”)=0 = 0
void ucsSetEvent(const QString &ucsName)
Called immediately after the user has activated a new UCS to be used as current UCS.
static RDocumentInterface * getDocumentInterfaceStatic()
static RMainWindow * getMainWindow()
static RMainWindowProxy * getMainWindowProxy()
static bool hasMainWindow()
static bool hasProxy()
static void installMessageHandler()
static void messageHandler(QtMsgType type, const char *msg)
static void setMainWindowProxy(RMainWindowProxy *p)
virtual bool readSettings()
Restores the application window settings (size, position, …).
virtual void writeSettings()
Stores the application window settings (size, position, …).
QList< RBlockListener * > blockListeners
QList< RCoordinateListener * > coordinateListeners
QList< REntityExportListener * > entityExportListeners
QList< RExportListener * > exportListeners
QList< RFocusListener * > focusListeners
QList< RImportListener * > importListeners
QList< RInterTransactionListener * > interTransactionListeners
QList< RKeyListener * > keyListeners
QList< RLayerListener * > layerListeners
QMutex mutex
QList< RNewDocumentListener * > newDocumentListeners
QList< RPaletteListener * > paletteListeners
QList< RPenListener * > penListeners
QList< RPreferencesListener * > preferencesListeners
QList< RPropertyListener * > propertyListeners
QList< RSelectionListener * > selectionListeners
QList< RSnapListener * > snapListeners
QList< RTransactionListener * > transactionListeners
QList< RUcsListener * > ucsListeners
QList< RViewFocusListener * > viewFocusListeners
QList< RViewListener * > viewListeners
static RMainWindow * mainWindow
static RMainWindowProxy * mainWindowProxy

RMainWindow::RMainWindow()

virtual RMainWindow::~RMainWindow()

virtual

void RMainWindow::addBlockListener(RBlockListener *l)

Adds a listener for block change / add / remove events.

void RMainWindow::addCoordinateListener(RCoordinateListener *l)

Adds a listener for coordinate events.

This can for example be a widget that displays the current coordinate.

void RMainWindow::addEntityExportListener(REntityExportListener *l)

void RMainWindow::addExportListener(RExportListener *l)

Adds a listener for export events.

Listeners are notified about pre export events in the order in which they were added and about post export and end of export events in reverse order, so that a listener which prepares the document before another listener (see prependExportListener) restores it after that listener has restored its own changes.

void RMainWindow::addFocusListener(RFocusListener *l)

Adds a listener for focus changes.

void RMainWindow::addImportListener(RImportListener *l)

Adds a listener for import events.

void RMainWindow::addInterTransactionListener(RInterTransactionListener *l)

Adds a listener for transaction in progress events.

void RMainWindow::addKeyListener(RKeyListener *l)

Adds a listener for key changes.

void RMainWindow::addLayerListener(RLayerListener *l)

Adds a listener for layer change / add / remove events.

void RMainWindow::addNewDocumentListener(RNewDocumentListener *l)

Adds a listener for transaction in progress events.

void RMainWindow::addPaletteListener(RPaletteListener *l)

Adds a listener for palette change events.

void RMainWindow::addPenListener(RPenListener *l)

Adds a listener for pen change events.

void RMainWindow::addPreferencesListener(RPreferencesListener *l)

Adds a listener for preferences changes.

void RMainWindow::addPropertyListener(RPropertyListener *l)

Adds a listener for property events.

This can for example be a widget that displays the properties of selected entities or the current action.

void RMainWindow::addSelectionListener(RSelectionListener *l)

Adds a listener for selection events.

This can for example be a widget that displays the number of selected entities.

void RMainWindow::addSnapListener(RSnapListener *l)

Adds a listener for snap mode changes.

This can for example be a snap status widget.

void RMainWindow::addTransactionListener(RTransactionListener *l)

Adds a listener for transaction events.

This can for example be an undo or redo button.

void RMainWindow::addUcsListener(RUcsListener *l)

Adds a listener for UCS change / add / remove events.

This can for example be a widget that displays all UCS objects.

void RMainWindow::addViewFocusListener(RViewFocusListener *l)

Adds a listener for view focus changes.

void RMainWindow::addViewListener(RViewListener *l)

Adds a listener for view change / add / remove events.

virtual void RMainWindow::disable()

virtual inline

Reimplemented in disable.

virtual void RMainWindow::enable()

virtual inline

Reimplemented in enable.

virtual void RMainWindow::escapeEvent()=0 = 0

pure virtual

Reimplemented in escapeEvent.

QVariant RMainWindow::eval(const QString &ext, const QString &script)

virtual QWidget * RMainWindow::getChildWidget(const QString &name)=0 = 0

pure virtual

Reimplemented in getChildWidget.

virtual RDocument * RMainWindow::getDocument()=0 = 0

pure virtual

Returns: Pointer to the document that is currently open and has the focus or NULL if no document is open.

Reimplemented in getDocument.

virtual RDocumentInterface * RMainWindow::getDocumentInterface()=0 = 0

pure virtual

Returns: Pointer to the document interface of the document that is currently open and has the focus or NULL if no document is open.

Reimplemented in getDocumentInterface.

virtual int RMainWindow::getHeight()=0 = 0

pure virtual

Returns: Height of the main application window.

Reimplemented in getHeight.

virtual int RMainWindow::getPositionX()=0 = 0

pure virtual

Returns: X position of the main application window (distance from left of screen).

Reimplemented in getPositionX.

virtual int RMainWindow::getPositionY()=0 = 0

pure virtual

Returns: Y position of the main application window (distance from top of screen).

Reimplemented in getPositionY.

virtual int RMainWindow::getWidth()=0 = 0

pure virtual

Returns: Width of the main application window.

Reimplemented in getWidth.

virtual void RMainWindow::handleUserCommand(const QString &message, bool escape=true)

virtual inline

Reimplemented from handleUserCommand.

Reimplemented in handleUserCommand.

virtual void RMainWindow::handleUserInfo(const QString &message, bool escape=true)

virtual inline

Reimplemented from handleUserInfo.

Reimplemented in handleUserInfo.

virtual void RMainWindow::handleUserMessage(const QString &message, bool escape=true)

virtual inline

Reimplemented from handleUserMessage.

Reimplemented in handleUserMessage.

virtual void RMainWindow::handleUserWarning(const QString &message, bool messageBox=false, bool escape=true)

virtual inline

Reimplemented from handleUserWarning.

Reimplemented in handleUserWarning.

virtual void RMainWindow::move(int x, int y)=0 = 0

pure virtual

Moves the application window to the given x / y position.

Reimplemented in move.

void RMainWindow::notifyBlockListeners(RDocumentInterface *documentInterface)

Notifies all block listeners that at least one block object has changed.

void RMainWindow::notifyBlockListenersCurrentBlock(RDocumentInterface *documentInterface)

void RMainWindow::notifyBlockListenersXRef()

void RMainWindow::notifyCoordinateListeners(RDocumentInterface *documentInterface)

Notifies all coordinate listeners that the coordinate has changed to position.

void RMainWindow::notifyEntityExportListeners(RExporter *exporter, REntity *entity)

void RMainWindow::notifyExportListenersEnd(RExporter *exporter)

Notifies all Export listeners about end of export event (in reverse order, see addExportListener).

void RMainWindow::notifyExportListenersPost(RDocumentInterface *documentInterface)

Notifies all Export listeners about post export event (in reverse order, see addExportListener).

void RMainWindow::notifyExportListenersPre(RDocumentInterface *documentInterface)

Notifies all Export listeners about pre export event.

void RMainWindow::notifyFocusListeners(RDocumentInterface *documentInterface)

Notifies all focus listeners.

void RMainWindow::notifyImportListenersPost(RDocumentInterface *documentInterface)

Notifies all import listeners about post import event.

void RMainWindow::notifyImportListenersPre(RDocumentInterface *documentInterface)

Notifies all import listeners about pre import event.

void RMainWindow::notifyInterTransactionListeners(RDocument *document, RTransaction *transaction=NULL)

Notifies all transaction in progress listeners.

void RMainWindow::notifyKeyListeners(QKeyEvent *event)

Notifies all key listeners.

void RMainWindow::notifyLayerListeners(RDocumentInterface *documentInterface, QList< RObject::Id > &layerIds)

Notifies all layer listeners that at least one layer object has changed.

void RMainWindow::notifyLayerListenersCurrentLayer(RDocumentInterface *documentInterface, RObject::Id previousLayerId)

void RMainWindow::notifyListeners(bool withNull=false)

void RMainWindow::notifyNewDocumentListeners(RDocument *document, RTransaction *transaction, bool beforeLoad)

Notifies all transaction in progress listeners.

void RMainWindow::notifyPaletteListeners()

Notifies all palette listeners that the current palette has changed.

void RMainWindow::notifyPenListeners(RDocumentInterface *documentInterface)

Notifies all pen listeners that the current pen has changed.

void RMainWindow::notifyPreferencesListeners(RDocumentInterface *documentInterface)

Notifies all preferences listeners.

void RMainWindow::notifyPropertyListeners()

Notifies all property listeners that no properties are currently relevant.

void RMainWindow::notifyPropertyListeners(RDocument &document, REntity &entity)

Notifies all property listeners that the current property is the given entity.

void RMainWindow::notifyPropertyListeners(RDocument *document, bool onlyChanges=false, RS::EntityType entityTypeFilter=RS::EntityUnknown)

Notifies all property listeners that the current property has changed.

void RMainWindow::notifySelectionListeners(RDocumentInterface *documentInterface)

Notifies all selection listeners that the current selection has changed.

void RMainWindow::notifySnapListeners(RDocumentInterface *documentInterface)

Notifies all snap mode listeners.

void RMainWindow::notifyTransactionListeners(RDocument *document, RTransaction *transaction=NULL)

Notifies all transaction listeners.

void RMainWindow::notifyUcsListeners(RDocumentInterface *documentInterface)

Notifies all UCS listeners that at least one UCS object has changed.

void RMainWindow::notifyViewFocusListeners(RGraphicsView *view)

Notifies all view focus listeners.

void RMainWindow::notifyViewListeners(RDocumentInterface *documentInterface)

Notifies all view listeners that at least one view object has changed.

virtual void RMainWindow::postCloseEvent()=0 = 0

pure virtual

Reimplemented in postCloseEvent.

virtual void RMainWindow::postPropertyEvent(RPropertyTypeId propertyTypeId, const QVariant &value, RS::EntityType entityTypeFilter=RS::EntityAll)=0 = 0

pure virtual

Reimplemented in postPropertyEvent.

virtual void RMainWindow::postSelectionChangedEvent()=0 = 0

pure virtual

Reimplemented in postSelectionChangedEvent.

virtual void RMainWindow::postTransactionEvent(RTransaction &t, bool onlyChanges=false, RS::EntityType entityTypeFilter=RS::EntityAll)=0 = 0

pure virtual

Reimplemented in postTransactionEvent.

void RMainWindow::prependExportListener(RExportListener *l)

Adds a listener for export events which is notified before all listeners added so far (pre export event) and after them (post export and end of export events), see addExportListener.

void RMainWindow::propertyChangeEvent(RPropertyEvent &event)

virtual void RMainWindow::quit()=0 = 0

pure virtual

Closes the application window.

virtual void RMainWindow::reloadXRefs(RDocumentInterface *di, const QSet< QString > &dirtyXRefPaths)

virtual inline

Reimplemented in reloadXRefs.

void RMainWindow::removeBlockListener(RBlockListener *l)

void RMainWindow::removeCoordinateListener(RCoordinateListener *l)

void RMainWindow::removeEntityExportListener(REntityExportListener *l)

void RMainWindow::removeExportListener(RExportListener *l)

void RMainWindow::removeFocusListener(RFocusListener *l)

void RMainWindow::removeImportListener(RImportListener *l)

void RMainWindow::removeInterTransactionListener(RInterTransactionListener *l)

void RMainWindow::removeKeyListener(RKeyListener *l)

void RMainWindow::removeLayerListener(RLayerListener *l)

void RMainWindow::removeNewDocumentListener(RNewDocumentListener *l)

void RMainWindow::removePaletteListener(RPaletteListener *l)

void RMainWindow::removePenListener(RPenListener *l)

void RMainWindow::removePreferencesListener(RPreferencesListener *l)

void RMainWindow::removePropertyListener(RPropertyListener *l)

void RMainWindow::removeSelectionListener(RSelectionListener *l)

void RMainWindow::removeSnapListener(RSnapListener *l)

void RMainWindow::removeTransactionListener(RTransactionListener *l)

void RMainWindow::removeUcsListener(RUcsListener *l)

void RMainWindow::removeViewFocusListener(RViewFocusListener *l)

void RMainWindow::removeViewListener(RViewListener *l)

virtual void RMainWindow::resize(int width, int height)=0 = 0

pure virtual

Resizes the application window to the given width and height.

Reimplemented in resize.

virtual void RMainWindow::setCommandPrompt(const QString &text="")=0 = 0

pure virtual

Reimplemented in setCommandPrompt.

virtual void RMainWindow::setGraphicsViewCursor(const QCursor &cursor)=0 = 0

pure virtual

Sets the cursor of all graphics views in all MDI children.

Necessary as workaround for Qt cursor bug (cursor inconsistent with multiple widgets on top of each other in MDI area).

Reimplemented in setGraphicsViewCursor.

virtual void RMainWindow::setLeftMouseTip(const QString &text="")=0 = 0

pure virtual

Reimplemented in setLeftMouseTip.

virtual void RMainWindow::setRightMouseTip(const QString &text="")=0 = 0

pure virtual

Reimplemented in setRightMouseTip.

void RMainWindow::ucsSetEvent(const QString &ucsName)

Called immediately after the user has activated a new UCS to be used as current UCS.

static RDocumentInterface * RMainWindow::getDocumentInterfaceStatic()

static

Returns: Pointer to the document interface of the current document (e.g. the active MDI window) or NULL if no document is open.

static RMainWindow * RMainWindow::getMainWindow()

static

static RMainWindowProxy * RMainWindow::getMainWindowProxy()

static inline

Non-Scriptable: This function is not available in script environments.

static bool RMainWindow::hasMainWindow()

static

static bool RMainWindow::hasProxy()

static inline

static void RMainWindow::installMessageHandler()

static

static void RMainWindow::messageHandler(QtMsgType type, const char *msg)

static

Non-Scriptable: This function is not available in script environments.

static void RMainWindow::setMainWindowProxy(RMainWindowProxy *p)

static inline

Non-Scriptable: This function is not available in script environments.

virtual bool RMainWindow::readSettings()

virtual protected

Restores the application window settings (size, position, …).

Reimplemented in readSettings.

virtual void RMainWindow::writeSettings()

virtual protected

Stores the application window settings (size, position, …).

Reimplemented in writeSettings.

QList<RBlockListener*> RMainWindow::blockListeners

protected

QList<RCoordinateListener*> RMainWindow::coordinateListeners

protected

QList<REntityExportListener*> RMainWindow::entityExportListeners

protected

QList<RExportListener*> RMainWindow::exportListeners

protected

QList<RFocusListener*> RMainWindow::focusListeners

protected

QList<RImportListener*> RMainWindow::importListeners

protected

QList<RInterTransactionListener*> RMainWindow::interTransactionListeners

protected

QList<RKeyListener*> RMainWindow::keyListeners

protected

QList<RLayerListener*> RMainWindow::layerListeners

protected

QMutex RMainWindow::mutex

protected

QList<RNewDocumentListener*> RMainWindow::newDocumentListeners

protected

QList<RPaletteListener*> RMainWindow::paletteListeners

protected

QList<RPenListener*> RMainWindow::penListeners

protected

QList<RPreferencesListener*> RMainWindow::preferencesListeners

protected

QList<RPropertyListener*> RMainWindow::propertyListeners

protected

QList<RSelectionListener*> RMainWindow::selectionListeners

protected

QList<RSnapListener*> RMainWindow::snapListeners

protected

QList<RTransactionListener*> RMainWindow::transactionListeners

protected

QList<RUcsListener*> RMainWindow::ucsListeners

protected

QList<RViewFocusListener*> RMainWindow::viewFocusListeners

protected

QList<RViewListener*> RMainWindow::viewListeners

protected

static RMainWindow * RMainWindow::mainWindow = NULL

static protected

All rights reserved.

This file is part of the QCAD project.

QCAD 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 3 of the License, or (at your option) any later version.

QCAD 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 General Public License for more details.

You should have received a copy of the GNU General Public License along with QCAD.

static RMainWindowProxy * RMainWindow::mainWindowProxy = NULL

static protected