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
|
#include "kraddbookmarkdlg.h"
#include "../krusader.h"
#include "krbookmarkhandler.h"
#include <tdelocale.h>
#include <tqheader.h>
#include <tqlayout.h>
#include <tqlabel.h>
#include <kinputdialog.h>
#include <kiconloader.h>
#include <kdebug.h>
KrAddBookmarkDlg::KrAddBookmarkDlg(TQWidget *parent, KURL url):
KDialogBase(KDialogBase::Swallow, i18n("Add Bookmark"),
KDialogBase::User1 | KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, parent) {
// create the 'new folder' button
setButtonText(KDialogBase::User1, i18n("New Folder"));
showButton(KDialogBase::User1, false); // hide it until _createIn is shown
connect(this, TQT_SIGNAL(user1Clicked()), this, TQT_SLOT(newFolder()));
// create the main widget
TQWidget *page = new TQWidget(this);
setMainWidget(page);
TQGridLayout *layout = new TQGridLayout(page, 1, 1, 0, spacingHint()); // expanding
// name and url
TQLabel *lb1 = new TQLabel(i18n("Name:"), page);
_name = new KLineEdit(page);
_name->setText(url.prettyURL()); // default name is the url
_name->selectAll(); // make the text selected
layout->addWidget(lb1, 0, 0);
layout->addWidget(_name, 0, 1);
TQLabel *lb2 = new TQLabel(i18n("URL:"), page);
_url = new KLineEdit(page);
layout->addWidget(lb2, 1, 0);
layout->addWidget(_url, 1, 1);
_url->setText(url.prettyURL()); // set the url in the field
// create in linedit and button
TQLabel *lb3 = new TQLabel(i18n("Create in:"), page);
_folder = new KLineEdit(page);
layout->addWidget(lb3, 2, 0);
layout->addWidget(_folder, 2, 1);
_folder->setReadOnly(true);
_createInBtn = new TQToolButton(page);
_createInBtn->setPixmap(krLoader->loadIcon("go-down", TDEIcon::Small));
_createInBtn->setToggleButton(true);
connect(_createInBtn, TQT_SIGNAL(toggled(bool)), this, TQT_SLOT(toggleCreateIn(bool )));
layout->addWidget(_createInBtn, 2, 2);
setDetailsWidget(createInWidget());
_name->setFocus();
}
void KrAddBookmarkDlg::toggleCreateIn(bool show) {
_createInBtn->setPixmap(krLoader->loadIcon(show ? "go-up" :"go-down", TDEIcon::Small));
showButton(KDialogBase::User1, show);
setDetails(show);
}
// creates the widget that lets you decide where to put the new bookmark
TQWidget *KrAddBookmarkDlg::createInWidget() {
_createIn = new TDEListView(this);
_createIn->addColumn("Folders");
_createIn->header()->hide();
_createIn->setRootIsDecorated(true);
_createIn->setAlternateBackground(TQColor()); // disable alternate coloring
TDEListViewItem *item = new TDEListViewItem(_createIn, i18n("Bookmarks"));
item->setOpen(true);
item->setSelected(true);
_xr[item] = krBookMan->_root;
populateCreateInWidget(krBookMan->_root, item);
_createIn->setCurrentItem(item);
createInSelection(item);
connect(_createIn, TQT_SIGNAL(selectionChanged(TQListViewItem*)), this, TQT_SLOT(createInSelection(TQListViewItem*)));
return _createIn;
}
void KrAddBookmarkDlg::createInSelection(TQListViewItem *item) {
if (item) {
_folder->setText(_xr[static_cast<TDEListViewItem*>(item)]->text());
}
}
void KrAddBookmarkDlg::populateCreateInWidget(KrBookmark *root, TDEListViewItem *parent) {
for (KrBookmark *bm = root->children().first(); bm; bm = root->children().next()) {
if (bm->isFolder()) {
TDEListViewItem *item = new TDEListViewItem(parent, bm->text());
item->setOpen(true);
_xr[item] = bm;
populateCreateInWidget(bm, item);
}
}
}
void KrAddBookmarkDlg::newFolder() {
// get the name
TQString newFolder = KInputDialog::getText(i18n("New Folder"), i18n("Folder name:"), TQString(), 0, this);
if (newFolder == TQString())
return;
// add to the list in bookman
KrBookmark *bm = new KrBookmark(newFolder);
krBookMan->addBookmark(bm, _xr[static_cast<TDEListViewItem*>(_createIn->selectedItem())]);
// fix the gui
TDEListViewItem *item = new TDEListViewItem(_createIn->selectedItem(), bm->text());
_xr[item] = bm;
_createIn->setCurrentItem(item);
item->setSelected(true);
}
#include "kraddbookmarkdlg.moc"
|