summaryrefslogtreecommitdiffstats
path: root/konqueror/sidebar/trees/konq_sidebartreemodule.h
blob: 9f9863311745dedc8686d1ff780b91d11ba65481 (plain)
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
/* This file is part of the KDE project
   Copyright (C) 2000 David Faure <[email protected]>

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public
   License version 2 as published by the Free Software Foundation.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public License
   along with this library; see the file COPYING.LIB.  If not, write to
   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.
*/

#ifndef konq_treemodule_h
#define konq_treemodule_h

#include <qobject.h>
#include "konq_sidebartree.h"
class QDragObject;
class KonqSidebarTreeItem;
class KonqSidebarTreeTopLevelItem;
class KonqSidebarTree;

/**
 * The base class for KonqSidebarTree Modules. It defines the interface
 * between the generic KonqSidebarTree and the particular modules
 * (directory tree, history, bookmarks, ...)
 */
class KonqSidebarTreeModule
{
public:
    KonqSidebarTreeModule( KonqSidebarTree * parentTree , bool showHidden=false)
        : m_pTree( parentTree ), m_showHidden(showHidden) {}
    virtual ~KonqSidebarTreeModule() {}

    // Handle this new toplevel item [can only be called once currently]
    virtual void addTopLevelItem( KonqSidebarTreeTopLevelItem * item ) = 0;

    // Open this toplevel item - you don't need to reimplement if
    // you create the item's children right away
    virtual void openTopLevelItem( KonqSidebarTreeTopLevelItem * ) {}

    // Follow a URL opened in another view - only implement if the module
    // has anything to do with URLs
    virtual void followURL( const KURL & ) {}

    KonqSidebarTree *tree() const { return m_pTree; }
    bool showHidden() { return m_showHidden;}
    virtual void setShowHidden(bool showhidden) {m_showHidden=showhidden;}

    virtual bool handleTopLevelContextMenu( KonqSidebarTreeTopLevelItem *, const QPoint& ) { return false; }

protected:
    KonqSidebarTree * m_pTree;
    bool m_showHidden;
};



#endif