~ubuntu-branches/ubuntu/lucid/kdebase/lucid

« back to all changes in this revision

Viewing changes to konqueror/sidebar/trees/konqsidebar_tree.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Ana Beatriz Guerrero Lopez
  • Date: 2009-04-05 05:22:13 UTC
  • mfrom: (0.4.2 experimental) (0.2.2 upstream)
  • mto: This revision was merged to the branch mainline in revision 235.
  • Revision ID: james.westby@ubuntu.com-20090405052213-39thr4l6p2ss07uj
Tags: 4:4.2.2-1
* New upstream release:
  - khtml fixes. (Closes: #290285, #359680)
  - Default konsole sessions can be deleted. (Closes: #286342)
  - Tag widget uses standard application palette. (Closes: #444800)
  - ... and surely many more but we have lost track...

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include "konqsidebar_tree.h"
2
 
#include "konqsidebar_tree.moc"
3
 
#include "konq_sidebartree.h"
4
 
#include <kdebug.h>
5
 
#include <kstandarddirs.h>
6
 
#include <ksimpleconfig.h>
7
 
#include <kinputdialog.h>
8
 
#include <kiconloader.h>
9
 
#include <klistviewsearchline.h>
10
 
 
11
 
#include <qclipboard.h>
12
 
#include <qdragobject.h>
13
 
#include <qtoolbutton.h>
14
 
#include <qvbox.h>
15
 
 
16
 
KonqSidebar_Tree::KonqSidebar_Tree(KInstance *instance,QObject *parent,QWidget *widgetParent, QString &desktopName_, const char* name):
17
 
                   KonqSidebarPlugin(instance,parent,widgetParent,desktopName_,name)
18
 
        {
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","");
23
 
 
24
 
                widget = new QVBox(widgetParent);
25
 
 
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()));
37
 
                }
38
 
                else
39
 
                        tree=new KonqSidebarTree(this,widget,virt,desktopName_);
40
 
 
41
 
                connect(tree, SIGNAL( openURLRequest( const KURL &, const KParts::URLArgs &)),
42
 
                        this,SIGNAL( openURLRequest( const KURL &, const KParts::URLArgs &)));
43
 
 
44
 
                connect(tree,SIGNAL(createNewWindow( const KURL &, const KParts::URLArgs &)),
45
 
                        this,SIGNAL(createNewWindow( const KURL &, const KParts::URLArgs &)));
46
 
 
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 )));
49
 
 
50
 
                connect(tree,SIGNAL(popupMenu( const QPoint &, const KFileItemList & )),
51
 
                        this,SIGNAL(popupMenu( const QPoint &, const KFileItemList & )));
52
 
 
53
 
                connect(tree,SIGNAL(enableAction( const char *, bool )),
54
 
                        this,SIGNAL(enableAction( const char *, bool)));
55
 
 
56
 
        }
57
 
 
58
 
 
59
 
KonqSidebar_Tree::~KonqSidebar_Tree(){;}
60
 
 
61
 
void* KonqSidebar_Tree::provides(const QString &) {return 0;}
62
 
 
63
 
//void KonqSidebar_Tree::emitStatusBarText (const QString &) {;}
64
 
 
65
 
QWidget *KonqSidebar_Tree::getWidget(){return widget;}
66
 
 
67
 
void KonqSidebar_Tree::handleURL(const KURL &url)
68
 
    {
69
 
        emit started( 0 );
70
 
        tree->followURL( url );
71
 
        emit completed();
72
 
    }
73
 
 
74
 
void KonqSidebar_Tree::cut()
75
 
{
76
 
    QDragObject * drag = static_cast<KonqSidebarTreeItem*>(tree->selectedItem())->dragObject( 0L, true );
77
 
    if (drag)
78
 
        QApplication::clipboard()->setData( drag );
79
 
}
80
 
 
81
 
void KonqSidebar_Tree::copy()
82
 
{
83
 
    QDragObject * drag = static_cast<KonqSidebarTreeItem*>(tree->selectedItem())->dragObject( 0L );
84
 
    if (drag)
85
 
        QApplication::clipboard()->setData( drag );
86
 
}
87
 
 
88
 
void KonqSidebar_Tree::paste()
89
 
{
90
 
    if (tree->currentItem())
91
 
        tree->currentItem()->paste();
92
 
}
93
 
 
94
 
void KonqSidebar_Tree::trash()
95
 
{
96
 
    if (tree->currentItem())
97
 
        tree->currentItem()->trash();
98
 
}
99
 
 
100
 
void KonqSidebar_Tree::del()
101
 
{
102
 
    if (tree->currentItem())
103
 
        tree->currentItem()->del();
104
 
}
105
 
 
106
 
void KonqSidebar_Tree::shred()
107
 
{
108
 
    if (tree->currentItem())
109
 
        tree->currentItem()->shred();
110
 
}
111
 
 
112
 
void KonqSidebar_Tree::rename()
113
 
{
114
 
    Q_ASSERT( tree->currentItem() );
115
 
    if (tree->currentItem())
116
 
        tree->currentItem()->rename();
117
 
}
118
 
 
119
 
 
120
 
 
121
 
 
122
 
 
123
 
 
124
 
extern "C"
125
 
{
126
 
    KDE_EXPORT void*  create_konqsidebar_tree(KInstance *inst,QObject *par,QWidget *widp,QString &desktopname,const char *name)
127
 
    {
128
 
        return new KonqSidebar_Tree(inst,par,widp,desktopname,name);
129
 
    }
130
 
}
131
 
 
132
 
extern "C"
133
 
{
134
 
   KDE_EXPORT bool add_konqsidebar_tree(QString* fn, QString*, QMap<QString,QString> *map)
135
 
   {
136
 
          KStandardDirs *dirs=KGlobal::dirs();
137
 
          QStringList list=dirs->findAllResources("data","konqsidebartng/dirtree/*.desktop",false,true);
138
 
          QStringList names;
139
 
          for (QStringList::ConstIterator it=list.begin();it!=list.end();++it)
140
 
          {
141
 
                KSimpleConfig sc(*it);
142
 
                sc.setGroup("Desktop Entry");
143
 
                names<<sc.readEntry("Name");
144
 
          }
145
 
 
146
 
        QString item = KInputDialog::getItem( i18n( "Select Type" ),
147
 
                i18n( "Select type:" ), names );
148
 
        if (!item.isEmpty())
149
 
                {
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");
163
 
                        return true;
164
 
                }
165
 
        return false;
166
 
   }
167
 
}