Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve WidgetInterface API #9

Merged
merged 9 commits into from
Apr 10, 2018
Prev Previous commit
Next Next commit
major refactoring:
- added signals and slots to base widget class
- replaced pt_clicked by mouse_clicked (moved/released)
- simplified connection/disconnection of slots in Mainwindow
- added todos
- biggest worry is currently: on_tissuenr_changed -> what is meaning of index passed to callback, how is it used (offset -1 all over the code makes things really confusing)
  • Loading branch information
Bryn Lloyd committed Apr 9, 2018
commit 4f85c9f9b0da2c7c975932b2321e2fe4db1d2e6f
12 changes: 5 additions & 7 deletions Plugin/WidgetInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ class ISEG_PLUGIN_API WidgetInterface : public QWidget
virtual std::string GetName() { return std::string(""); }
virtual QIcon GetIcon(QDir picdir) = 0;

virtual void on_tissuenr_changed(int i) {}
virtual void on_slicenr_changed() {}
virtual void on_tissuenr_changed(int i) {}//BL todo
virtual void on_slicenr_changed() {} //BL todo

virtual void on_mouse_clicked(Point p) {}
virtual void on_mouse_released(Point p) {}
Expand All @@ -67,17 +67,15 @@ class ISEG_PLUGIN_API WidgetInterface : public QWidget
void end_datachange(QWidget* sender = NULL,
iseg::EndUndoAction undoAction = iseg::EndUndo);

private slots:
private slots :
void tissuenr_changed(int i) { on_tissuenr_changed(i); }
//TODOvoid slicenr_changed() { on_slicenr_changed(); }
void slicenr_changed() { on_slicenr_changed(); }

// \todo duplicate slots (and connections) and pass argument source_or_target to callbacks
void mouse_clicked(Point p) { on_mouse_clicked(p); }
void mouse_released(Point p) { on_mouse_released(p); }
void mouse_moved(Point p) { on_mouse_moved(p); }

public slots:
virtual void slicenr_changed(){} // BL TODO

protected:
static bool hideparams;
};
Expand Down
6 changes: 0 additions & 6 deletions iSeg/EdgeWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,6 @@ class EdgeWidget : public WidgetInterface
QRadioButton* rb_laplacianzero;
QButtonGroup* modegroup;

signals:
void begin_datachange(iseg::DataSelection& dataSelection,
QWidget* sender = NULL, bool beginUndo = true);
void end_datachange(QWidget* sender = NULL,
iseg::EndUndoAction undoAction = iseg::EndUndo);

public slots:
void slicenr_changed();

Expand Down
6 changes: 3 additions & 3 deletions iSeg/FastmarchingFuzzyWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ void FastmarchingFuzzyWidget::getrange()
return;
}

void FastmarchingFuzzyWidget::mouse_clicked(Point p)
void FastmarchingFuzzyWidget::on_mouse_clicked(Point p)
{
if (rb_fastmarch->isOn())
{
Expand Down Expand Up @@ -355,7 +355,7 @@ void FastmarchingFuzzyWidget::mouse_clicked(Point p)
}
}

void FastmarchingFuzzyWidget::mouse_released(Point p)
void FastmarchingFuzzyWidget::on_mouse_released(Point p)
{
if (rb_drag->isOn())
{
Expand All @@ -377,7 +377,7 @@ void FastmarchingFuzzyWidget::mouse_released(Point p)
}
}

void FastmarchingFuzzyWidget::mouse_moved(Point p)
void FastmarchingFuzzyWidget::on_mouse_moved(Point p)
{
if (rb_drag->isOn())
{
Expand Down
19 changes: 10 additions & 9 deletions iSeg/FastmarchingFuzzyWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,16 @@ class FastmarchingFuzzyWidget : public WidgetInterface
FILE* SaveParams(FILE* fp, int version);
FILE* LoadParams(FILE* fp, int version);
void hideparams_changed();
std::string GetName() { return std::string("Fuzzy"); };
std::string GetName() { return std::string("Fuzzy"); }
virtual QIcon GetIcon(QDir picdir)
{
return QIcon(picdir.absFilePath(QString("fuzzy.png")).ascii());
};
}

protected:
virtual void on_mouse_clicked(Point p) override;
virtual void on_mouse_released(Point p) override;
virtual void on_mouse_moved(Point p) override;

private:
float* map;
Expand Down Expand Up @@ -105,19 +110,15 @@ class FastmarchingFuzzyWidget : public WidgetInterface

signals:
void vpdyn_changed(std::vector<Point>* vpdyn_arg);
void begin_datachange(iseg::DataSelection& dataSelection,
QWidget* sender = NULL, bool beginUndo = true);
void end_datachange(QWidget* sender = NULL,
iseg::EndUndoAction undoAction = iseg::EndUndo);

public slots:
void slicenr_changed();

private slots:
void bmphand_changed(bmphandler* bmph);
void mouse_clicked(Point p);
void mouse_released(Point p);
void mouse_moved(Point p);
//void mouse_clicked(Point p);
//void mouse_released(Point p);
//void mouse_moved(Point p);
void slextend_changed(int i);
void slextend_pressed();
void slextend_released();
Expand Down
6 changes: 3 additions & 3 deletions iSeg/HystereticGrowingWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ void HystereticGrowingWidget::bmphand_changed(bmphandler* bmph)
return;
}

void HystereticGrowingWidget::pt_clicked(Point p)
void HystereticGrowingWidget::on_mouse_clicked(Point p)
{
if (limitdrawing)
{
Expand Down Expand Up @@ -461,7 +461,7 @@ void HystereticGrowingWidget::clean_up()
return;
}

void HystereticGrowingWidget::pt_moved(Point p)
void HystereticGrowingWidget::on_mouse_moved(Point p)
{
if (limitdrawing)
{
Expand All @@ -471,7 +471,7 @@ void HystereticGrowingWidget::pt_moved(Point p)
}
}

void HystereticGrowingWidget::pt_released(Point p)
void HystereticGrowingWidget::on_mouse_released(Point p)
{
if (limitdrawing)
{
Expand Down
15 changes: 6 additions & 9 deletions iSeg/HystereticGrowingWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,17 @@ class HystereticGrowingWidget : public WidgetInterface
FILE* SaveParams(FILE* fp, int version);
FILE* LoadParams(FILE* fp, int version);
void hideparams_changed();
std::string GetName() { return std::string("Growing"); };
std::string GetName() { return std::string("Growing"); }
virtual QIcon GetIcon(QDir picdir)
{
return QIcon(picdir.absFilePath(QString("growing.png")).ascii());
};
}

private:
virtual void on_mouse_clicked(Point p) override;
virtual void on_mouse_moved(Point p) override;
virtual void on_mouse_released(Point p) override;

void init1();
Point p1;
Point last_pt;
Expand Down Expand Up @@ -109,19 +113,12 @@ class HystereticGrowingWidget : public WidgetInterface
void vp1_changed(std::vector<Point>* vp1_arg);
void vp1dyn_changed(std::vector<Point>* vp1_arg,
std::vector<Point>* vpdyn_arg);
void begin_datachange(iseg::DataSelection& dataSelection,
QWidget* sender = NULL, bool beginUndo = true);
void end_datachange(QWidget* sender = NULL,
iseg::EndUndoAction undoAction = iseg::EndUndo);

public slots:
void slicenr_changed();

private slots:
void bmphand_changed(bmphandler* bmph);
void pt_clicked(Point p);
void pt_moved(Point p);
void pt_released(Point p);
void auto_toggled();
void update_visible();
void execute();
Expand Down
12 changes: 7 additions & 5 deletions iSeg/ImageForestingTransformRegionGrowingWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -179,13 +179,15 @@ void ImageForestingTransformRegionGrowingWidget::cleanup()
emit vm_changed(&vmempty);
}

void ImageForestingTransformRegionGrowingWidget::tissuenr_changed(int i)
void ImageForestingTransformRegionGrowingWidget::on_tissuenr_changed(int i)
{
// \todo B
cerr << "ImageForestingTransformRegionGrowingWidget: tissuenr = " << i << std::endl;
tissuenr = (unsigned)i + 1;
return;
}

void ImageForestingTransformRegionGrowingWidget::mouse_clicked(Point p)
void ImageForestingTransformRegionGrowingWidget::on_mouse_clicked(Point p)
{
last_pt = p;
if (pushremove->isOn())
Expand All @@ -194,7 +196,7 @@ void ImageForestingTransformRegionGrowingWidget::mouse_clicked(Point p)
}
}

void ImageForestingTransformRegionGrowingWidget::mouse_moved(Point p)
void ImageForestingTransformRegionGrowingWidget::on_mouse_moved(Point p)
{
if (!pushremove->isOn())
{
Expand All @@ -204,7 +206,7 @@ void ImageForestingTransformRegionGrowingWidget::mouse_moved(Point p)
}
}

void ImageForestingTransformRegionGrowingWidget::mouse_released(Point p)
void ImageForestingTransformRegionGrowingWidget::on_mouse_released(Point p)
{
if (!pushremove->isOn())
{
Expand Down Expand Up @@ -309,7 +311,7 @@ void ImageForestingTransformRegionGrowingWidget::bmp_changed()
init1();
}

void ImageForestingTransformRegionGrowingWidget::slicenr_changed()
void ImageForestingTransformRegionGrowingWidget::on_slicenr_changed()
{
// if(activeslice!=handler3D->get_activeslice()){
activeslice = handler3D->get_activeslice();
Expand Down
26 changes: 10 additions & 16 deletions iSeg/ImageForestingTransformRegionGrowingWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,19 @@ class ImageForestingTransformRegionGrowingWidget : public WidgetInterface
return QIcon(picdir.absFilePath(QString("iftrg.png")).ascii());
}

protected:
virtual void on_tissuenr_changed(int i) override;
virtual void on_slicenr_changed() override;

virtual void on_mouse_clicked(Point p) override;
virtual void on_mouse_released(Point p) override;
virtual void on_mouse_moved(Point p) override;

private:
void init1();
void removemarks(Point p);
void getrange();

float* lbmap;
ImageForestingTransformRegionGrowing* IFTrg;
Point last_pt;
Expand All @@ -66,38 +76,22 @@ class ImageForestingTransformRegionGrowingWidget : public WidgetInterface
QPushButton* pushexec;
QPushButton* pushclear;
QPushButton* pushremove;
void getrange();
unsigned tissuenr;
// unsigned maxim;
float thresh;
float maxthresh;
std::vector<Mark> vm;
std::vector<Mark> vmempty;
std::vector<Point> vmdyn;
// std::vector<vector<mark> > vvm;
unsigned area;

signals:
void vm_changed(std::vector<Mark>* vm1);
void vmdyn_changed(std::vector<Point>* vmdyn1);
void begin_datachange(iseg::DataSelection& dataSelection,
QWidget* sender = NULL, bool beginUndo = true);
void end_datachange(QWidget* sender = NULL,
iseg::EndUndoAction undoAction = iseg::EndUndo);

public slots:
void tissuenr_changed(int i);
void slicenr_changed();

private slots:
void bmphand_changed(bmphandler* bmph);
// void tissuenr_changed(int i);
void mouse_clicked(Point p);
void mouse_released(Point p);
void mouse_moved(Point p);
void execute();
void clearmarks();
// void removepressed();
void slider_changed(int i);
void slider_pressed();
void slider_released();
Expand Down
4 changes: 2 additions & 2 deletions iSeg/InterpolationWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,9 @@ void InterpolationWidget::init()

void InterpolationWidget::newloaded() {}

void InterpolationWidget::slicenr_changed() {}
void InterpolationWidget::on_slicenr_changed() {}

void InterpolationWidget::tissuenr_changed(int tissuetype)
void InterpolationWidget::on_tissuenr_changed(int tissuetype)
{
tissuenr = (tissues_size_t)tissuetype + 1;
}
Expand Down
15 changes: 5 additions & 10 deletions iSeg/InterpolationWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,16 @@ class InterpolationWidget : public WidgetInterface
void newloaded();
FILE* SaveParams(FILE* fp, int version);
FILE* LoadParams(FILE* fp, int version);
std::string GetName() { return std::string("Interpol"); };
std::string GetName() { return std::string("Interpol"); }
virtual QIcon GetIcon(QDir picdir)
{
return QIcon(picdir.absFilePath(QString("interpolate.png")).ascii());
};
}

private:
virtual void on_tissuenr_changed(int i) override;
virtual void on_slicenr_changed() override;

SlicesHandler* handler3D;
Q3HBox* hboxoverall;
Q3VBox* vboxmethods;
Expand Down Expand Up @@ -85,15 +88,7 @@ class InterpolationWidget : public WidgetInterface
unsigned short nrslices;
unsigned short tissuenr;

signals:
void begin_datachange(iseg::DataSelection& dataSelection,
QWidget* sender = NULL, bool beginUndo = true);
void end_datachange(QWidget* sender = NULL,
iseg::EndUndoAction undoAction = iseg::EndUndo);

public slots:
void slicenr_changed();
void tissuenr_changed(int tissuetype);
void handler3D_changed();

private slots:
Expand Down
Loading