-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbackupsourcewidget.cpp
More file actions
86 lines (78 loc) · 3.03 KB
/
Copy pathbackupsourcewidget.cpp
File metadata and controls
86 lines (78 loc) · 3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include "backupsourcewidget.h"
#include "backupsource.h"
#include "widgetsettings.h"
#include <QVBoxLayout>
#include <QFileDialog>
#include "delegates/mousehoverable.h"
BackupSourceWidget::BackupSourceWidget(QSharedPointer<BackupSource> source,
QWidget *parent) :
QWidget(parent),
MouseHoverComposite(new MouseHoverable(this)),
m_source(source),
m_sourceLabel(WidgetSettings::newTextLabel(this)),
m_deleteButton(new PushButton(this, this)),
m_editButton(new PushButton(this, this)),
m_includeHiddenButton(new CheckButton(this, this))
{
m_sourceLabel->setText(m_source->directory().absolutePath());
QFont font = m_sourceLabel->font();
font.setBold(true);
m_sourceLabel->setFont(font);
this->setLayout(new QHBoxLayout(this));
m_deleteButton->setSVG(":/delete");
m_editButton->setSVG(":/edit");
m_deleteButton->setContentsMargins(0, 0, 0, 0);
m_editButton->setContentsMargins(0, 0, 0, 0);
m_deleteButton->setMouseHoverColor(WidgetSettings::iconButtonMouseOverColor());
m_editButton->setMouseHoverColor(WidgetSettings::iconButtonMouseOverColor());
connect(m_deleteButton,
SIGNAL(pressed()),
this,
SIGNAL(deleteButtonClicked()));
m_includeHiddenButton->setText(tr("hidden files"));
font = WidgetSettings::buttonFont();
font.setPointSize(font.pointSize() - 1);
m_includeHiddenButton->setFont(font);
m_deleteButton->setFont(font);
m_editButton->setFont(font);
m_includeHiddenButton->setContentsMargins(0, 0, 0, 0);
m_includeHiddenButton->setMouseHoverColor(WidgetSettings::iconButtonMouseOverColor());
layout()->setContentsMargins(8, 1, 8, 1);
layout()->addWidget(m_sourceLabel.data());
layout()->addWidget(m_includeHiddenButton);
layout()->addWidget(m_editButton);
layout()->addWidget(m_deleteButton);
((QHBoxLayout*)layout())->addSpacerItem(new QSpacerItem(0, 10, QSizePolicy::Expanding, QSizePolicy::Ignored));
int h = m_includeHiddenButton->minimumHeight();
connect(m_editButton,
SIGNAL(clicked()),
this,
SLOT(OnEditButtonPressed()));
setFixedHeight(h);
}
void BackupSourceWidget::paintEvent(QPaintEvent *e)
{
QPainter painter(this);
painter.setPen(QColor(150, 150, 150, 64));
painter.drawLine(rect().x(), rect().y(),
rect().right(), rect().y());
painter.drawLine(rect().x(), rect().bottom(),
rect().right(), rect().bottom());
DrawMouseHoverRect(painter);
QWidget::paintEvent(e);
}
QSharedPointer<BackupSource> BackupSourceWidget::source() const
{
return m_source;
}
void BackupSourceWidget::OnEditButtonPressed()
{
QString dir = QFileDialog::getExistingDirectory(this,
tr("Select a folder to add to the backup"),
m_source->directory().absolutePath());
if (!dir.isEmpty())
{
m_source->setDirectory(dir);
m_sourceLabel->setText(dir);
}
}