| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | #ifndef TASKFEATUREPARAMETERS_H_NAHKE2YZ
|
| | #define TASKFEATUREPARAMETERS_H_NAHKE2YZ
|
| |
|
| |
|
| | #include <type_traits>
|
| | #include <Gui/TaskView/TaskDialog.h>
|
| | #include <Gui/TaskView/TaskView.h>
|
| | #include <Gui/DocumentObserver.h>
|
| |
|
| | #include "ViewProvider.h"
|
| |
|
| | namespace PartDesignGui
|
| | {
|
| |
|
| | class Ui_TaskPreviewParameters;
|
| |
|
| | class TaskPreviewParameters: public Gui::TaskView::TaskBox
|
| | {
|
| | Q_OBJECT
|
| |
|
| | public:
|
| | explicit TaskPreviewParameters(ViewProvider* vp, QWidget* parent = nullptr);
|
| | ~TaskPreviewParameters() override;
|
| |
|
| | public Q_SLOTS:
|
| | void onShowPreviewChanged(bool show);
|
| | void onShowFinalChanged(bool show);
|
| |
|
| | private:
|
| | ViewProvider* vp;
|
| | std::unique_ptr<Ui_TaskPreviewParameters> ui;
|
| |
|
| | ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath(
|
| | "User parameter:BaseApp/Preferences/Mod/PartDesign/Preview"
|
| | );
|
| | };
|
| |
|
| |
|
| | class TaskFeatureParameters: public Gui::TaskView::TaskBox, public Gui::DocumentObserver
|
| | {
|
| | Q_OBJECT
|
| |
|
| | public:
|
| | TaskFeatureParameters(
|
| | PartDesignGui::ViewProvider* vp,
|
| | QWidget* parent,
|
| | const std::string& pixmapname,
|
| | const QString& parname
|
| | );
|
| | ~TaskFeatureParameters() override = default;
|
| |
|
| |
|
| | virtual void saveHistory()
|
| | {}
|
| |
|
| | virtual void apply()
|
| | {}
|
| |
|
| | void recomputeFeature();
|
| |
|
| | bool isUpdateBlocked() const
|
| | {
|
| | return blockUpdate;
|
| | }
|
| |
|
| | protected Q_SLOTS:
|
| |
|
| | void onUpdateView(bool on);
|
| |
|
| | private:
|
| |
|
| | void slotDeletedObject(const Gui::ViewProviderDocumentObject& Obj) override;
|
| |
|
| | protected:
|
| | template<typename T = PartDesignGui::ViewProvider>
|
| | T* getViewObject() const
|
| | {
|
| | static_assert(std::is_base_of<PartDesignGui::ViewProvider, T>::value, "Wrong template argument");
|
| | return freecad_cast<T*>(vp);
|
| | }
|
| |
|
| | template<typename T = App::DocumentObject>
|
| | T* getObject() const
|
| | {
|
| | static_assert(std::is_base_of<App::DocumentObject, T>::value, "Wrong template argument");
|
| |
|
| | if (vp) {
|
| | return vp->getObject<T>();
|
| | }
|
| |
|
| | return nullptr;
|
| | }
|
| |
|
| | Gui::Document* getGuiDocument() const
|
| | {
|
| | return vp ? vp->getDocument() : nullptr;
|
| | }
|
| |
|
| | App::Document* getAppDocument() const
|
| | {
|
| | auto obj = getObject();
|
| | return obj ? obj->getDocument() : nullptr;
|
| | }
|
| |
|
| | bool& getUpdateBlockRef()
|
| | {
|
| | return blockUpdate;
|
| | }
|
| |
|
| | void setUpdateBlocked(bool value)
|
| | {
|
| | blockUpdate = value;
|
| | }
|
| |
|
| | protected:
|
| | PartDesignGui::ViewProvider* vp;
|
| |
|
| | private:
|
| | bool blockUpdate;
|
| | };
|
| |
|
| |
|
| | class TaskDlgFeatureParameters: public Gui::TaskView::TaskDialog
|
| | {
|
| | Q_OBJECT
|
| |
|
| | public:
|
| | explicit TaskDlgFeatureParameters(PartDesignGui::ViewProvider* vp);
|
| | ~TaskDlgFeatureParameters() override;
|
| |
|
| | public:
|
| |
|
| | bool accept() override;
|
| |
|
| | bool reject() override;
|
| |
|
| | template<typename T = PartDesignGui::ViewProvider>
|
| | T* getViewObject() const
|
| | {
|
| | static_assert(std::is_base_of<PartDesignGui::ViewProvider, T>::value, "Wrong template argument");
|
| | return freecad_cast<T*>(vp);
|
| | }
|
| |
|
| | template<typename T = App::DocumentObject>
|
| | T* getObject() const
|
| | {
|
| | static_assert(std::is_base_of<App::DocumentObject, T>::value, "Wrong template argument");
|
| | if (vp) {
|
| | return vp->getObject<T>();
|
| | }
|
| |
|
| | return nullptr;
|
| | }
|
| |
|
| | protected:
|
| | PartDesignGui::TaskPreviewParameters* preview;
|
| |
|
| | private:
|
| | PartDesignGui::ViewProvider* vp;
|
| | };
|
| |
|
| | }
|
| |
|
| |
|
| | #endif
|
| |
|