Skip to content

Commit 1107d22

Browse files
committed
Made ISolver* solver() const a pure virtual method.
This change allows the OptimisationWidget to call the interface (AbstractSpliceModel) instead of the implementation (SpliceCalculator).
1 parent 3529168 commit 1107d22

File tree

4 files changed

+9
-8
lines changed

4 files changed

+9
-8
lines changed

src/core/abstractsplicemodel.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
class DesignSpace;
2929
class Fastener;
3030
class Tensor;
31+
class ISolver;
3132
enum class SolverParameters;
3233

3334
class AbstractSpliceModel : public QObject
@@ -52,6 +53,7 @@ class AbstractSpliceModel : public QObject
5253
Q_INVOKABLE virtual Tensor resultAt(const int index) const = 0;
5354
Q_INVOKABLE virtual SolverParameters solverParameters() const = 0;
5455

56+
virtual ISolver* solver() const = 0;
5557

5658
Q_SIGNALS:
5759

src/core/splicecalculator.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class SpliceCalculator : public AbstractSpliceModel
6767
virtual QSet<int> selectedDesignSpaceIndexes() const Q_DECL_OVERRIDE;
6868

6969

70-
ISolver* solver() const { return m_solver; } /// \todo This is a hack!
70+
virtual ISolver* solver() const Q_DECL_OVERRIDE { return m_solver; }
7171

7272
Q_SIGNALS:
7373
void changed();

src/widgets/optimisationwidget.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
#include <Core/AbstractSpliceModel>
2121
#include <Core/Splice>
22-
#include <Core/SpliceCalculator>
2322
#include <Core/Optimizer/Controller>
2423
#include <Core/Optimizer/OptimisationSolver>
2524

@@ -97,12 +96,12 @@ OptimisationWidget::~OptimisationWidget()
9796

9897
/******************************************************************************
9998
******************************************************************************/
100-
SpliceCalculator *OptimisationWidget::spliceCalculator() const
99+
AbstractSpliceModel *OptimisationWidget::model() const
101100
{
102101
return m_calculator;
103102
}
104103

105-
void OptimisationWidget::setSpliceCalculator(SpliceCalculator *calculator)
104+
void OptimisationWidget::setModel(AbstractSpliceModel *calculator)
106105
{
107106
m_calculator = calculator;
108107
}

src/widgets/optimisationwidget.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include <Core/Optimizer/OptimisationSolver>
2525

2626
class Splice;
27-
class SpliceCalculator;
27+
class AbstractSpliceModel;
2828
class OptimisationSolver;
2929

3030
namespace Ui {
@@ -40,8 +40,8 @@ class OptimisationWidget : public QWidget
4040
explicit OptimisationWidget(QWidget *parent = Q_NULLPTR);
4141
virtual ~OptimisationWidget();
4242

43-
SpliceCalculator *spliceCalculator() const;
44-
void setSpliceCalculator(SpliceCalculator *calculator);
43+
AbstractSpliceModel *model() const;
44+
void setModel(AbstractSpliceModel *calculator);
4545

4646
private Q_SLOTS:
4747
void onControllerStarted();
@@ -60,7 +60,7 @@ private Q_SLOTS:
6060
private:
6161
Ui::OptimisationWidget *ui;
6262
Controller *m_controller;
63-
SpliceCalculator *m_calculator;
63+
AbstractSpliceModel *m_calculator;
6464

6565
void log(int type, qint64 timestamp, const QString &message);
6666
};

0 commit comments

Comments
 (0)