-
Notifications
You must be signed in to change notification settings - Fork 0
/
bookmarks.cpp
114 lines (101 loc) · 3.23 KB
/
bookmarks.cpp
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
#include "bookmarks.h"
#include "ui_addBookmarkDialog.h"
#include "ui_editBookmarksDialog.h"
#include "ui_addBookmarksFolderDialog.h"
#include "ui_editBookmarksFolderDialog.h"
bookmarks::bookmarks(QWidget *parent, QTreeWidget *ptree, QPushButton *pneu,QPushButton *pedit, QPushButton *pnewFolder) :
QWidget(parent), tree(ptree), neu(pneu), bedit(pedit), newOrdner(pnewFolder)
{
QFile file(QCoreApplication::applicationDirPath() + tr("//bookmarks.xbel"));
file.open(QFile::ReadOnly);
XbelReader reader(tree);
reader.read(&file);
connect(neu, SIGNAL(clicked()), this, SLOT(addBookmark()));
connect(newOrdner, SIGNAL(clicked()), this, SLOT(addFolder()));
connect(bedit, SIGNAL(clicked()), this, SLOT(edit()));
}
bookmarks::~bookmarks()
{
QFile file(QCoreApplication::applicationDirPath() + tr("//bookmarks.xbel"));
file.open(QFile::ReadWrite);
XbelWriter writer(tree);
writer.writeFile(&file);
}
void bookmarks::addBookmark()
{
QDialog dialog(this);
Ui::addBookmarksDialog ui;
ui.setupUi(&dialog);
ui.lineAdress->setText(curAdress);
ui.lineName->setText(curTitel);
QList<QTreeWidgetItem *> list = tree->findItems(tr("folder"), Qt::MatchExactly, 0);
int count = list.count();
for(int i = 0; i <= count; i++)
{
ui.comboFolder->addItem(list.at(i)->text(0));
}
if(dialog.exec() == QDialog::Accepted)
{
QTreeWidgetItem *item;
list.at(ui.comboFolder->currentIndex())->addChild(item);
item->setData(0, Qt::UserRole, tr("bookmark"));
item->setText(0, ui.lineName->text());
item->setText(1, ui.lineAdress->text());
}
}
void bookmarks::addFolder()
{
QDialog dialog(this);
Ui::addBookmarksFolderDialog ui;
ui.setupUi(&dialog);
ui.lineName->setText(tr("Neuer Ordner"));
QList<QTreeWidgetItem *> list = tree->findItems(tr("folder"), Qt::MatchExactly, 0);
int count = list.count();
for(int i = 0; i <= count; i++)
{
ui.comboFolder->addItem(list.at(i)->text(0));
}
if(dialog.exec() == QDialog::Accepted)
{
QTreeWidgetItem *folder;
list.at(ui.comboFolder->currentIndex())->addChild(folder);
folder->setData(0, Qt::UserRole, tr("folder"));
folder->setText(0, ui.lineName->text());
}
}
void bookmarks::remove()
{
tree->takeTopLevelItem(tree->currentIndex().row());
}
void bookmarks::edit()
{
QTreeWidgetItem *selected = tree->currentItem();
if(tree->currentItem()->data(0,Qt::UserRole) == "folder")
editFolder(selected);
else
editBookmark(selected);
}
void bookmarks::editFolder(QTreeWidgetItem *selected)
{
QDialog dialog(this);
Ui::editBookmarksFolderDialog ui;
ui.setupUi(&dialog);
ui.lineName->setText(selected->text(0));
if(dialog.exec() == QDialog::Accepted)
{
selected->setText(0, ui.lineName->text());
}
}
void bookmarks::editBookmark(QTreeWidgetItem *selected)
{
QDialog dialog(this);
Ui::editBookmarksDialog ui;
ui.setupUi(&dialog);
ui.lineName->setText(selected->text(0));
ui.lineAdresse->setText(selected->text(1));
if(dialog.exec() == QDialog::Accepted)
{
selected->setText(0, ui.lineName->text());
selected->setText(1, ui.lineAdresse->text());
}
}