//---------------------------------------------------------------------------- // $Id: RplBlockDlg.hpp,v 1.25 2010/07/28 18:55:45 lynn Exp $ //---------------------------------------------------------------------------- #pragma once #ifndef RplBlockDlgINCLUDED #define RplBlockDlgINCLUDED #ifndef RplBaseDlgINCLUDED #include "RplBaseDlg.hpp" #endif #ifndef RplBlockINCLUDED #include "RplBlock.hpp" #endif class Ui_RplBlockDlgWidgets; class RplFrame; class RowOToggles; #include //-------------------------------------------------------------------------- //+class // // CLASS: // RplBlockDlg // // DESCRIPTION: // Editor dialogs for RplBlock objects. // //-------------------------------------------------------------------------- class RplBlockDlg : public RplBaseDlg { Q_OBJECT public: RplBlockDlg(BaseRWDlg *parent, RplBlock *); ~RplBlockDlg(); virtual bool update() override; virtual bool updateDescr() override; virtual bool updateNotes() override; virtual bool updateLoadStatus() override; virtual bool rebuild() override; virtual void selectRplStatement(RplStatement* statement) override; virtual void showDescription(bool) override; virtual void showNotes(bool) override; virtual void selectStringInDescription( const Rpl::SearchSpec& searchSpec) override; virtual void selectStringInNotes( const Rpl::SearchSpec& searchSpec) override; public slots: virtual void updateEditActions() override; virtual void scrollToDebugCursor() override; protected slots: // Dialog GUI elements void rplSetTypeIconButton_clicked(); void rplGroupTypeIconButton_clicked(); void preDmiHandler(); void postDmiHandler(); void togglePreDmiObj(); void togglePostDmiObj(); void showOptionalFrames(); void setBreakBeforeExec(bool doBreak); void setBreakAfterExec(bool doBreak); void stopOnNaNHandler(bool stop); void updateDescriptionToggleRelevance(); void updateNotesToggleRelevance(); void updateExecConstraintToggleRelevance(); void updateCommentsToggleRelevance(); void visibilityToggleChangedHandler(int toggleIndex, bool on); void setValueFlagChangedHandler(int index); protected: // Virtual RplBaseDlg methods virtual RplObj *getRplObj() const override { return _rplBlock; }; virtual QString nameEditorText() const override; protected: // Initialization and updates void initConnections(); void initWidgets(); void initVisibilityToggles(); void initForApplication(); void loadSettings(); void saveSettings() const; void updateDmiDisplay(); public: virtual void updateExternalDocButton() override; protected: // RPL elements RplBlock *_rplBlock; // GUI elements RplFrame *_bodyRplFrame; RplFrame *_constraintRplFrame; QUndoStack _undoStack; RowOToggles* _toggles; int _showDescriptionToggleIndex; int _showNotesToggleIndex; int _showExecConstraintToggleIndex; int _showCommentsToggleIndex; public slots: void aboutToShowEditMenu(); void aboutToShowViewMenu(); void aboutToShowRuleMenu(); void showCommentsChangedHandler(bool show); private: Ui_RplBlockDlgWidgets* _ui; }; #endif // RplBlockDlgINCLUDED //--- (end RplBlockDlg.hpp) ---