Skip to content
Snippets Groups Projects
Commit b92e0452 authored by Tobias Schmidt's avatar Tobias Schmidt
Browse files

add button tool option

parent 90b45594
No related branches found
No related tags found
No related merge requests found
...@@ -59,5 +59,18 @@ void ToolOptionEnum::Add(const String& text, int tag) ...@@ -59,5 +59,18 @@ void ToolOptionEnum::Add(const String& text, int tag)
tuples_.back().tag=tag; tuples_.back().tag=tag;
} }
ToolOptionButton::ToolOptionButton(const String& key,
const String& verbose_name,
QObject* receiver,
const char *slot_method):
ToolOption(key, verbose_name, ToolOption::BUTTON), slot_method_(slot_method), receiver_(receiver)
{
}
void ToolOptionButton::RunMe()
{
std::cout << "TOOL RUN ME RUN ME" << std::endl;
}
}} }}
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <limits> #include <limits>
#include <vector> #include <vector>
#include <iostream>
#include <ost/gui/module_config.hh> #include <ost/gui/module_config.hh>
...@@ -37,7 +38,7 @@ class DLLEXPORT_OST_GUI ToolOption : public QObject { ...@@ -37,7 +38,7 @@ class DLLEXPORT_OST_GUI ToolOption : public QObject {
Q_OBJECT Q_OBJECT
public: public:
typedef enum { typedef enum {
INT, FLOAT, ENUM INT, FLOAT, ENUM, BUTTON
} Type; } Type;
protected: protected:
ToolOption(const String& key, const String& verbose_name, Type type); ToolOption(const String& key, const String& verbose_name, Type type);
...@@ -116,11 +117,29 @@ public: ...@@ -116,11 +117,29 @@ public:
ConstIterator Begin() const { return tuples_.begin(); } ConstIterator Begin() const { return tuples_.begin(); }
ConstIterator End() const { return tuples_.end(); } ConstIterator End() const { return tuples_.end(); }
size_t Size() { return tuples_.size(); } size_t Size() { return tuples_.size(); }
private: private:
std::vector<Tuple> tuples_; std::vector<Tuple> tuples_;
int index_; int index_;
}; };
class DLLEXPORT_OST_GUI ToolOptionButton : public ToolOption {
Q_OBJECT
public:
ToolOptionButton(const String& key,
const String& verbose_name,
QObject* receiver,
const char *slot_method);
const char* GetSlotMethod() const { return slot_method_; }
QObject* GetReceiver() const { return receiver_; }
public slots:
void RunMe();
private:
const char *slot_method_;
QObject* receiver_;
};
typedef std::vector<ToolOption*> ToolOptionList; typedef std::vector<ToolOption*> ToolOptionList;
}} }}
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <QIntValidator> #include <QIntValidator>
#include <QDoubleValidator> #include <QDoubleValidator>
#include <QSpacerItem> #include <QSpacerItem>
#include <QPushButton>
namespace ost { namespace gui { namespace ost { namespace gui {
...@@ -74,6 +75,14 @@ QWidget* ToolOptionsWidget::MakeFloatWidget(ToolOptionFloat* opts) ...@@ -74,6 +75,14 @@ QWidget* ToolOptionsWidget::MakeFloatWidget(ToolOptionFloat* opts)
return line; return line;
} }
QWidget* ToolOptionsWidget::MakeButtonWidget(ToolOptionButton* opts)
{
QPushButton* button=new QPushButton();
button->setText(QString(opts->GetVerboseName().c_str()));
connect(button, SIGNAL(released()), opts->GetReceiver(), opts->GetSlotMethod());
return button;
}
void ToolOptionsWidget::Populate() void ToolOptionsWidget::Populate()
{ {
QGridLayout* grid=new QGridLayout(this); QGridLayout* grid=new QGridLayout(this);
...@@ -105,6 +114,9 @@ void ToolOptionsWidget::Populate() ...@@ -105,6 +114,9 @@ void ToolOptionsWidget::Populate()
case ToolOption::ENUM: case ToolOption::ENUM:
widget=MakeEnumWidget(dynamic_cast<ToolOptionEnum*>(opt)); widget=MakeEnumWidget(dynamic_cast<ToolOptionEnum*>(opt));
break; break;
case ToolOption::BUTTON:
widget=MakeButtonWidget(dynamic_cast<ToolOptionButton*>(opt));
break;
} }
#if defined(__APPLE__) #if defined(__APPLE__)
opt_label->setAttribute(Qt::WA_MacSmallSize, true); opt_label->setAttribute(Qt::WA_MacSmallSize, true);
......
...@@ -87,6 +87,7 @@ private: ...@@ -87,6 +87,7 @@ private:
QWidget* MakeIntWidget(ToolOptionInt* opts); QWidget* MakeIntWidget(ToolOptionInt* opts);
QWidget* MakeEnumWidget(ToolOptionEnum* opts); QWidget* MakeEnumWidget(ToolOptionEnum* opts);
QWidget* MakeFloatWidget(ToolOptionFloat* opts); QWidget* MakeFloatWidget(ToolOptionFloat* opts);
QWidget* MakeButtonWidget(ToolOptionButton* opts);
ToolOptions* options_; ToolOptions* options_;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment