TaskSelectLinkProperty.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef GUI_TASKVIEW_TaskSelectLinkProperty_H
00025 #define GUI_TASKVIEW_TaskSelectLinkProperty_H
00026
00027 #include "TaskView.h"
00028 #include <Gui/Selection.h>
00029 #include <boost/signals.hpp>
00030 #include <App/PropertyLinks.h>
00031
00032
00033 class Ui_TaskSelectLinkProperty;
00034
00035 namespace App {
00036 class Property;
00037 }
00038
00039 namespace Gui {
00040 class ViewProvider;
00041 namespace TaskView {
00042
00055 class GuiExport TaskSelectLinkProperty : public TaskBox, public Gui::SelectionSingleton::ObserverType
00056 {
00057 Q_OBJECT
00058
00059 public:
00060 TaskSelectLinkProperty(const char *,App::Property *,QWidget *parent = 0);
00061 ~TaskSelectLinkProperty();
00063 void OnChange(Gui::SelectionSingleton::SubjectType &rCaller,
00064 Gui::SelectionSingleton::MessageType Reason);
00065
00067 bool setFilter(const char*);
00068
00070 void activate(void);
00071
00073 bool accept(void);
00075 bool reject(void);
00077 void sendSelection2Property(void);
00079 inline bool isSelectionValid(void) const {return Filter->match();}
00080
00081 private Q_SLOTS:
00082 void on_Remove_clicked(bool);
00083 void on_Add_clicked(bool);
00084 void on_Invert_clicked(bool);
00085 void on_Help_clicked(bool);
00086
00087 Q_SIGNALS:
00088 void emitSelectionFit(void);
00089 void emitSelectionMisfit(void);
00090
00091 protected:
00092 void changeEvent(QEvent *e);
00093
00094 private:
00095
00096 void checkSelectionStatus(void);
00097
00098 QWidget* proxy;
00099 Ui_TaskSelectLinkProperty* ui;
00100
00101
00102 Gui::SelectionFilter *Filter;
00103
00104
00105 App::PropertyLinkSub *LinkSub;
00106 App::PropertyLinkList *LinkList;
00107
00108
00109 std::vector<std::string> StartValueBuffer;
00110 App::DocumentObject *StartObject;
00111 };
00112
00113 }
00114 }
00115
00116 #endif // GUI_TASKVIEW_TASKAPPERANCE_H