1
#include "konqsidebar_tree.h"
2
#include "konqsidebar_tree.moc"
3
#include "konq_sidebartree.h"
5
#include <kstandarddirs.h>
6
#include <ksimpleconfig.h>
7
#include <kinputdialog.h>
8
#include <kiconloader.h>
9
#include <klistviewsearchline.h>
11
#include <qclipboard.h>
12
#include <qdragobject.h>
13
#include <qtoolbutton.h>
16
KonqSidebar_Tree::KonqSidebar_Tree(KInstance *instance,QObject *parent,QWidget *widgetParent, QString &desktopName_, const char* name):
17
KonqSidebarPlugin(instance,parent,widgetParent,desktopName_,name)
19
KSimpleConfig ksc(desktopName_);
20
ksc.setGroup("Desktop Entry");
21
int virt= ( (ksc.readEntry("X-KDE-TreeModule","")=="Virtual") ?VIRT_Folder:VIRT_Link);
22
if (virt==1) desktopName_=ksc.readEntry("X-KDE-RelURL","");
24
widget = new QVBox(widgetParent);
26
if (ksc.readBoolEntry("X-KDE-SearchableTreeModule",false)) {
27
QHBox* searchline = new QHBox(widget);
28
searchline->setSpacing(KDialog::spacingHint());
29
tree=new KonqSidebarTree(this,widget,virt,desktopName_);
30
QToolButton *clearSearch = new QToolButton(searchline);
31
clearSearch->setTextLabel(i18n("Clear Search"), true);
32
clearSearch->setIconSet(SmallIconSet(QApplication::reverseLayout() ? "clear_left" : "locationbar_erase"));
33
QLabel* slbl = new QLabel(i18n("Se&arch:"), searchline);
34
KListViewSearchLine* listViewSearch = new KListViewSearchLine(searchline,tree);
35
slbl->setBuddy(listViewSearch);
36
connect(clearSearch, SIGNAL(pressed()), listViewSearch, SLOT(clear()));
39
tree=new KonqSidebarTree(this,widget,virt,desktopName_);
41
connect(tree, SIGNAL( openURLRequest( const KURL &, const KParts::URLArgs &)),
42
this,SIGNAL( openURLRequest( const KURL &, const KParts::URLArgs &)));
44
connect(tree,SIGNAL(createNewWindow( const KURL &, const KParts::URLArgs &)),
45
this,SIGNAL(createNewWindow( const KURL &, const KParts::URLArgs &)));
47
connect(tree,SIGNAL(popupMenu( const QPoint &, const KURL &, const QString &, mode_t )),
48
this,SIGNAL(popupMenu( const QPoint &, const KURL &, const QString &, mode_t )));
50
connect(tree,SIGNAL(popupMenu( const QPoint &, const KFileItemList & )),
51
this,SIGNAL(popupMenu( const QPoint &, const KFileItemList & )));
53
connect(tree,SIGNAL(enableAction( const char *, bool )),
54
this,SIGNAL(enableAction( const char *, bool)));
59
KonqSidebar_Tree::~KonqSidebar_Tree(){;}
61
void* KonqSidebar_Tree::provides(const QString &) {return 0;}
63
//void KonqSidebar_Tree::emitStatusBarText (const QString &) {;}
65
QWidget *KonqSidebar_Tree::getWidget(){return widget;}
67
void KonqSidebar_Tree::handleURL(const KURL &url)
70
tree->followURL( url );
74
void KonqSidebar_Tree::cut()
76
QDragObject * drag = static_cast<KonqSidebarTreeItem*>(tree->selectedItem())->dragObject( 0L, true );
78
QApplication::clipboard()->setData( drag );
81
void KonqSidebar_Tree::copy()
83
QDragObject * drag = static_cast<KonqSidebarTreeItem*>(tree->selectedItem())->dragObject( 0L );
85
QApplication::clipboard()->setData( drag );
88
void KonqSidebar_Tree::paste()
90
if (tree->currentItem())
91
tree->currentItem()->paste();
94
void KonqSidebar_Tree::trash()
96
if (tree->currentItem())
97
tree->currentItem()->trash();
100
void KonqSidebar_Tree::del()
102
if (tree->currentItem())
103
tree->currentItem()->del();
106
void KonqSidebar_Tree::shred()
108
if (tree->currentItem())
109
tree->currentItem()->shred();
112
void KonqSidebar_Tree::rename()
114
Q_ASSERT( tree->currentItem() );
115
if (tree->currentItem())
116
tree->currentItem()->rename();
126
KDE_EXPORT void* create_konqsidebar_tree(KInstance *inst,QObject *par,QWidget *widp,QString &desktopname,const char *name)
128
return new KonqSidebar_Tree(inst,par,widp,desktopname,name);
134
KDE_EXPORT bool add_konqsidebar_tree(QString* fn, QString*, QMap<QString,QString> *map)
136
KStandardDirs *dirs=KGlobal::dirs();
137
QStringList list=dirs->findAllResources("data","konqsidebartng/dirtree/*.desktop",false,true);
139
for (QStringList::ConstIterator it=list.begin();it!=list.end();++it)
141
KSimpleConfig sc(*it);
142
sc.setGroup("Desktop Entry");
143
names<<sc.readEntry("Name");
146
QString item = KInputDialog::getItem( i18n( "Select Type" ),
147
i18n( "Select type:" ), names );
150
int id=names.findIndex( item );
151
if (id==-1) return false;
152
KSimpleConfig ksc2(*list.at(id));
153
ksc2.setGroup("Desktop Entry");
154
map->insert("Type","Link");
155
map->insert("Icon",ksc2.readEntry("Icon"));
156
map->insert("Name",ksc2.readEntry("Name"));
157
map->insert("Open","false");
158
map->insert("URL",ksc2.readEntry("X-KDE-Default-URL"));
159
map->insert("X-KDE-KonqSidebarModule","konqsidebar_tree");
160
map->insert("X-KDE-TreeModule",ksc2.readEntry("X-KDE-TreeModule"));
161
map->insert("X-KDE-TreeModule-ShowHidden",ksc2.readEntry("X-KDE-TreeModule-ShowHidden"));
162
fn->setLatin1("dirtree%1.desktop");