Implemented refresh after change of points spinboxes
This commit is contained in:
@@ -70,7 +70,6 @@ StripsGrid::StripsGrid(QWidget *parent) :
|
|||||||
Story story;
|
Story story;
|
||||||
story.widget = new StripWidget{StripWidget::Story};
|
story.widget = new StripWidget{StripWidget::Story};
|
||||||
story.widget->setTitle(QString("ATC-%0").arg(random.bounded(1000, 5000)));
|
story.widget->setTitle(QString("ATC-%0").arg(random.bounded(1000, 5000)));
|
||||||
story.widget->setOwner("RH");
|
|
||||||
|
|
||||||
for (int column = 0; column < 5; column++)
|
for (int column = 0; column < 5; column++)
|
||||||
{
|
{
|
||||||
@@ -93,6 +92,7 @@ StripsGrid::StripsGrid(QWidget *parent) :
|
|||||||
widget->setTitle(QString("ATC-%0").arg(random.bounded(1000, 5000)));
|
widget->setTitle(QString("ATC-%0").arg(random.bounded(1000, 5000)));
|
||||||
widget->setPoints(std::array<int, 5>{1,3,5,8,13}[random.bounded(5)]);
|
widget->setPoints(std::array<int, 5>{1,3,5,8,13}[random.bounded(5)]);
|
||||||
widget->setOwner(std::array<const char *, 5>{"DB", "KW", "BK", "MS", "AS"}[random.bounded(5)]);
|
widget->setOwner(std::array<const char *, 5>{"DB", "KW", "BK", "MS", "AS"}[random.bounded(5)]);
|
||||||
|
connect(widget, &StripWidget::pointsChanged, this, &StripsGrid::updatePoints);
|
||||||
test.layout->addWidget(widget);
|
test.layout->addWidget(widget);
|
||||||
test.widgets.push_back(widget);
|
test.widgets.push_back(widget);
|
||||||
});
|
});
|
||||||
@@ -122,17 +122,12 @@ void StripsGrid::mousePressEvent(QMouseEvent *event)
|
|||||||
{
|
{
|
||||||
for (auto *subtaskWidget : column.widgets)
|
for (auto *subtaskWidget : column.widgets)
|
||||||
{
|
{
|
||||||
if (subtaskWidget->startDragging(event->pos() - subtaskWidget->pos()))
|
if (subtaskWidget->isInDragArea(event->pos() - subtaskWidget->pos()))
|
||||||
{
|
{
|
||||||
m_draggedWidget = subtaskWidget;
|
m_draggedWidget = subtaskWidget;
|
||||||
m_draggedWidget->beginDrag();
|
m_draggedWidget->beginDrag();
|
||||||
|
|
||||||
m_dragWidget = new StripWidget{StripWidget::DraggedSubtask, this};
|
m_dragWidget = new StripWidget{StripWidget::DraggingSubtask, *m_draggedWidget, this};
|
||||||
m_dragWidget->setTitle(m_draggedWidget->title());
|
|
||||||
m_dragWidget->setDescription(m_draggedWidget->description());
|
|
||||||
m_dragWidget->setPoints(m_draggedWidget->points());
|
|
||||||
m_dragWidget->setOwner(m_draggedWidget->owner());
|
|
||||||
m_dragWidget->setStyleSheet(m_draggedWidget->styleSheet());
|
|
||||||
m_dragWidget->move(m_draggedWidget->pos());
|
m_dragWidget->move(m_draggedWidget->pos());
|
||||||
m_dragWidget->show();
|
m_dragWidget->show();
|
||||||
|
|
||||||
@@ -157,7 +152,7 @@ void StripsGrid::mouseReleaseEvent(QMouseEvent *event)
|
|||||||
m_draggedWidget->endDrag();
|
m_draggedWidget->endDrag();
|
||||||
m_draggedWidget = nullptr;
|
m_draggedWidget = nullptr;
|
||||||
|
|
||||||
m_dragWidget->deleteLater();
|
delete m_dragWidget;
|
||||||
m_dragWidget = nullptr;
|
m_dragWidget = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -13,6 +13,8 @@ StripWidget::StripWidget(QWidget *parent) :
|
|||||||
setMinimumSize(size());
|
setMinimumSize(size());
|
||||||
setMaximumSize(size());
|
setMaximumSize(size());
|
||||||
setFixedSize(size());
|
setFixedSize(size());
|
||||||
|
|
||||||
|
connect(m_ui->points, &QSpinBox::valueChanged, this, &StripWidget::pointsChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
StripWidget::StripWidget(StripWidget::Story_t, QWidget *parent) :
|
StripWidget::StripWidget(StripWidget::Story_t, QWidget *parent) :
|
||||||
@@ -21,6 +23,9 @@ StripWidget::StripWidget(StripWidget::Story_t, QWidget *parent) :
|
|||||||
m_ui->points->setReadOnly(true);
|
m_ui->points->setReadOnly(true);
|
||||||
m_ui->points->setMaximum(9999);
|
m_ui->points->setMaximum(9999);
|
||||||
|
|
||||||
|
delete m_ui->owner;
|
||||||
|
m_ui->owner = nullptr;
|
||||||
|
|
||||||
setStyleSheet("StripWidget { background-color: #AFA; }");
|
setStyleSheet("StripWidget { background-color: #AFA; }");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -30,15 +35,18 @@ StripWidget::StripWidget(StripWidget::Subtask_t, QWidget *parent) :
|
|||||||
setStyleSheet("StripWidget { background-color: #FCC; }");
|
setStyleSheet("StripWidget { background-color: #FCC; }");
|
||||||
}
|
}
|
||||||
|
|
||||||
StripWidget::StripWidget(StripWidget::DraggedSubtask_t, QWidget *parent) :
|
StripWidget::StripWidget(StripWidget::DraggingSubtask_t, const StripWidget &draggedSubtask, QWidget *parent) :
|
||||||
StripWidget{Subtask, parent}
|
StripWidget{Subtask, parent}
|
||||||
{
|
{
|
||||||
setGraphicsEffect(new QGraphicsDropShadowEffect);
|
setTitle(draggedSubtask.title());
|
||||||
|
setDescription(draggedSubtask.description());
|
||||||
|
setPoints(draggedSubtask.points());
|
||||||
|
setOwner(draggedSubtask.owner());
|
||||||
}
|
}
|
||||||
|
|
||||||
StripWidget::~StripWidget() = default;
|
StripWidget::~StripWidget() = default;
|
||||||
|
|
||||||
bool StripWidget::startDragging(const QPoint &pos) const
|
bool StripWidget::isInDragArea(const QPoint &pos) const
|
||||||
{
|
{
|
||||||
return m_ui->title->geometry().contains(pos);
|
return m_ui->title->geometry().contains(pos);
|
||||||
}
|
}
|
||||||
|
@@ -19,15 +19,15 @@ public:
|
|||||||
struct Subtask_t{};
|
struct Subtask_t{};
|
||||||
static constexpr const Subtask_t Subtask{};
|
static constexpr const Subtask_t Subtask{};
|
||||||
|
|
||||||
struct DraggedSubtask_t{};
|
struct DraggingSubtask_t{};
|
||||||
static constexpr const DraggedSubtask_t DraggedSubtask{};
|
static constexpr const DraggingSubtask_t DraggingSubtask{};
|
||||||
|
|
||||||
explicit StripWidget(Story_t, QWidget *parent = nullptr);
|
explicit StripWidget(Story_t, QWidget *parent = nullptr);
|
||||||
explicit StripWidget(Subtask_t, QWidget *parent = nullptr);
|
explicit StripWidget(Subtask_t, QWidget *parent = nullptr);
|
||||||
explicit StripWidget(DraggedSubtask_t, QWidget *parent = nullptr);
|
explicit StripWidget(DraggingSubtask_t, const StripWidget &draggedSubtask, QWidget *parent = nullptr);
|
||||||
~StripWidget() override;
|
~StripWidget() override;
|
||||||
|
|
||||||
bool startDragging(const QPoint &pos) const;
|
bool isInDragArea(const QPoint &pos) const;
|
||||||
|
|
||||||
QString title() const;
|
QString title() const;
|
||||||
void setTitle(const QString &title);
|
void setTitle(const QString &title);
|
||||||
@@ -44,6 +44,9 @@ public:
|
|||||||
void beginDrag();
|
void beginDrag();
|
||||||
void endDrag();
|
void endDrag();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void pointsChanged(int points);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<Ui::StripWidget> m_ui;
|
std::unique_ptr<Ui::StripWidget> m_ui;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user