forked from Shazib/CometFTP
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAddressBar.cpp
More file actions
131 lines (103 loc) · 3.27 KB
/
AddressBar.cpp
File metadata and controls
131 lines (103 loc) · 3.27 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include "AddressBar.h"
AddressBar::AddressBar(QWidget *parent, bool _disconnectVisible, QString _defaultPath) :
QWidget(parent)
{
// Initial Setup
this->setFixedHeight(24);
disconnectVisible = _disconnectVisible;
defaultPath = _defaultPath;
setupView();
QObject::connect(backBtn, SIGNAL(clicked()),this, SLOT(backButtonClick()));
QObject::connect(forwardBtn, SIGNAL(clicked()),this,SLOT(forwardButtonClick()));
QObject::connect(addressEdit, SIGNAL(returnPressed()), this, SLOT(addressEditClick()));
QObject::connect(disconnectBtn, SIGNAL(clicked()), this, SLOT(disconnectClicked()));
}
void AddressBar::setupView()
{
// Setup Widget Views
QIcon backIcon = QIcon(":/images/left37.svg");
backBtn = new QPushButton("");
backBtn->setIcon(backIcon);
QIcon forwardIcon = QIcon(":/images/right33.svg");
forwardBtn = new QPushButton("");
forwardBtn->setIcon(forwardIcon);
QIcon disconnectIcon = QIcon(":/images/power26.svg");
disconnectBtn = new QPushButton("");
disconnectBtn->setIcon(disconnectIcon);
disconnectBtn->setToolTip("Disconnect From Site");
addressEdit = new QLineEdit();
addressEdit->setStyle(QStyleFactory::create("Fusion"));
addressEdit->setText(defaultPath);
// Layout
QHBoxLayout* mainLayout = new QHBoxLayout;
mainLayout->setContentsMargins(0,0,0,0);
mainLayout->addWidget(backBtn);
mainLayout->addWidget(forwardBtn);
mainLayout->addWidget(addressEdit);
if (disconnectVisible){
mainLayout->addWidget(disconnectBtn);
}
this->setLayout(mainLayout);
}
void AddressBar::disconnectClicked()
{
emit disconnect();
}
void AddressBar::updatePath(QString path)
{
// Add old path to back list
backList << defaultPath;
// Set new default path
defaultPath = path;
// Set Line Edit
addressEdit->setText(path);
}
void AddressBar::backButtonClick()
{
qDebug() << "Back Button Clicked";
if (backList.count() >= 1){
// Add to forward
forwardList << defaultPath;
// Set New Default
defaultPath = backList.last();
// Remove path from back
backList.removeLast();
//set Line edit
addressEdit->setText(defaultPath);
emit updatedPath(defaultPath);
}
}
void AddressBar::forwardButtonClick()
{
if (forwardList.count() >= 1){
backList << defaultPath;
defaultPath = forwardList.last();
forwardList.removeLast();
addressEdit->setText(defaultPath);
emit updatedPath(defaultPath);
}
}
void AddressBar::addressEditClick()
{
if (disconnectVisible) {
// SSH, send path
/********************************/
emit updatedPath(addressEdit->text());
} else {
QDir dir(addressEdit->text());
if (!dir.exists()){
// Does Not Exist
qDebug() << "does not exist";
addressEdit->setText(defaultPath);
// Do nothing
} else {
qDebug() << "adding default path " << defaultPath << " to list";
backList << defaultPath;
qDebug() << "setting new path " <<addressEdit->text();
defaultPath = addressEdit->text();
// Local, Send path
emit updatedPath(addressEdit->text());
qDebug() << "backlist last " << backList.last();
}
}
}