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