Avogadro::QtGui::ToolPlugin#

class ToolPlugin : public QObject#

The base class for plugins that interact with QtOpenGL::GLWidget.

Author

Allison Vacanti

Unnamed Group

virtual QUndoCommand *mousePressEvent(QMouseEvent *e)#

Respond to user-input events.

Parameters:

e – The QEvent object.

Returns:

A QUndoCommand that can be used to undo any changes to the molecule. If no undoable change is made, the method may return nullptr.

virtual QUndoCommand *mouseReleaseEvent(QMouseEvent *e)#

Respond to user-input events.

Parameters:

e – The QEvent object.

Returns:

A QUndoCommand that can be used to undo any changes to the molecule. If no undoable change is made, the method may return nullptr.

virtual QUndoCommand *mouseMoveEvent(QMouseEvent *e)#

Respond to user-input events.

Parameters:

e – The QEvent object.

Returns:

A QUndoCommand that can be used to undo any changes to the molecule. If no undoable change is made, the method may return nullptr.

virtual QUndoCommand *mouseDoubleClickEvent(QMouseEvent *e)#

Respond to user-input events.

Parameters:

e – The QEvent object.

Returns:

A QUndoCommand that can be used to undo any changes to the molecule. If no undoable change is made, the method may return nullptr.

virtual QUndoCommand *wheelEvent(QWheelEvent *e)#

Respond to user-input events.

Parameters:

e – The QEvent object.

Returns:

A QUndoCommand that can be used to undo any changes to the molecule. If no undoable change is made, the method may return nullptr.

virtual QUndoCommand *keyPressEvent(QKeyEvent *e)#

Respond to user-input events.

Parameters:

e – The QEvent object.

Returns:

A QUndoCommand that can be used to undo any changes to the molecule. If no undoable change is made, the method may return nullptr.

virtual QUndoCommand *keyReleaseEvent(QKeyEvent *e)#

Respond to user-input events.

Parameters:

e – The QEvent object.

Returns:

A QUndoCommand that can be used to undo any changes to the molecule. If no undoable change is made, the method may return nullptr.

Public Functions

explicit ToolPlugin(QObject *parent = nullptr)#
~ToolPlugin() override#
virtual QString name() const = 0#

The name of the tool, will be displayed in the user interface.

virtual QString description() const = 0#

A description of the tool, may be displayed in the user interface.

virtual unsigned char priority() const = 0#

A priority of the tool for sorting in the user interface.

virtual QAction *activateAction() const = 0#
Returns:

The QAction that will cause this tool to become active.

virtual void setIcon(bool darkTheme = false) = 0#

Set the tool icon (based on dark / light theme).

virtual QWidget *toolWidget() const = 0#
Returns:

A QWidget that will be displayed to the user while this tool is active.

virtual void draw(Rendering::GroupNode &node)#

Override this method to add drawables to the scene graph.

virtual bool handleCommand(const QString &command, const QVariantMap &options)#

Called by the app to handle a command registered by the plugin. (e.g., “renderMovie” or “drawAtom”, etc.)

The app will turn the command into a string and pass it to the tool. and any options will go from a JSON dictionary to a QVariantMap.

Returns:

true if the command was handled, false otherwise.

inline virtual void registerCommands()#

Called by the app to tell the tool to register commands. If the tool has commands, it should emit the registerCommand signals.

Public Slots

virtual void setMolecule(QtGui::Molecule *mol) = 0#

Called when the current molecule changes.

inline virtual void setEditMolecule(QtGui::RWMolecule*)#
inline virtual void setGLWidget(QtOpenGL::GLWidget*)#

Set the GLWidget used by the tool.

inline virtual void setActiveWidget(QWidget*)#

Set the active widget used by the tool, this can be anything derived from QWidget.

inline virtual void setGLRenderer(Rendering::GLRenderer*)#

Set the GLRenderer used by the tool.

Signals

void drawablesChanged()#

Emitted when draw() needs to be called again due to updates.

void updateRequested()#

Emitted when something changed (camera, etc) and the molecule should be redrawn.

void registerCommand(QString command, QString description)#

Register a new command with the application. The command will be available through scripting (e.g., “renderMovie” or “generateSurface”, etc.)

See also

handleCommand

Parameters:
  • command – The name of the command to register.

  • description – A description of the command.

void requestActiveDisplayTypes(QStringList displayTypes)#

Request a specific display type (or types) are made active. This can be useful when loading a specific type of data that would be most readily viewed with a specialized view.