Files
SprintPlanningTool/stripwidget.cpp
2020-03-18 11:18:50 +01:00

106 lines
2.3 KiB
C++

#include "stripwidget.h"
#include "ui_stripwidget.h"
#include <QGraphicsDropShadowEffect>
#include <QGraphicsOpacityEffect>
StripWidget::StripWidget(QWidget *parent) :
QFrame{parent},
m_ui{std::make_unique<Ui::StripWidget>()}
{
m_ui->setupUi(this);
setMinimumSize(size());
setMaximumSize(size());
setFixedSize(size());
connect(m_ui->points, &QSpinBox::valueChanged, this, &StripWidget::pointsChanged);
connect(m_ui->owner, &QComboBox::currentText, this, &StripWidget::ownerChanged);
}
StripWidget::StripWidget(StripWidget::Story_t, QWidget *parent) :
StripWidget{parent}
{
m_ui->points->setReadOnly(true);
m_ui->points->setMaximum(9999);
delete m_ui->owner;
m_ui->owner = nullptr;
setStyleSheet("StripWidget { background-color: #AFA; }");
}
StripWidget::StripWidget(StripWidget::Subtask_t, QWidget *parent) :
StripWidget{parent}
{
setStyleSheet("StripWidget { background-color: #FCC; }");
}
StripWidget::StripWidget(StripWidget::DraggingSubtask_t, const StripWidget &draggedSubtask, QWidget *parent) :
StripWidget{Subtask, parent}
{
setTitle(draggedSubtask.title());
setDescription(draggedSubtask.description());
setPoints(draggedSubtask.points());
setOwner(draggedSubtask.owner());
}
StripWidget::~StripWidget() = default;
bool StripWidget::isInDragArea(const QPoint &pos) const
{
return m_ui->title->geometry().contains(pos);
}
QString StripWidget::title() const
{
return m_ui->title->text();
}
void StripWidget::setTitle(const QString &title)
{
m_ui->title->setText(title);
}
QString StripWidget::description() const
{
return m_ui->description->text();
}
void StripWidget::setDescription(const QString &description)
{
m_ui->description->setText(description);
}
int StripWidget::points() const
{
return m_ui->points->value();
}
void StripWidget::setPoints(int points)
{
m_ui->points->setValue(points);
}
QString StripWidget::owner() const
{
return m_ui->owner->currentText();
}
void StripWidget::setOwner(const QString &owner)
{
m_ui->owner->setCurrentIndex(m_ui->owner->findText(owner));
}
void StripWidget::beginDrag()
{
setGraphicsEffect(new QGraphicsOpacityEffect);
m_ui->title->setCursor(Qt::ClosedHandCursor);
}
void StripWidget::endDrag()
{
setGraphicsEffect(nullptr);
m_ui->title->setCursor(Qt::OpenHandCursor);
}