File indexing completed on 2024-05-12 05:00:20

0001 /* This file is part of the KDE project
0002     SPDX-FileCopyrightText: 2000 David Faure <faure@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-only
0005 */
0006 
0007 #ifndef dirtree_module_h
0008 #define dirtree_module_h
0009 
0010 #include <konq_sidebartreemodule.h>
0011 #include <kfileitem.h>
0012 #include <Qt3Support/Q3Dict>
0013 #include <Qt3Support/Q3PtrDict>
0014 
0015 class KDirLister;
0016 class KonqSidebarTree;
0017 class KonqSidebarTreeItem;
0018 class KonqSidebarDirTreeItem;
0019 
0020 class KonqSidebarDirTreeModule : public QObject, public KonqSidebarTreeModule
0021 {
0022     Q_OBJECT
0023 public:
0024     KonqSidebarDirTreeModule(KonqSidebarTree *parentTree, bool);
0025     virtual ~KonqSidebarDirTreeModule();
0026 
0027     virtual void addTopLevelItem(KonqSidebarTreeTopLevelItem *item);
0028 
0029     virtual void openTopLevelItem(KonqSidebarTreeTopLevelItem *item);
0030 
0031     virtual void followURL(const QUrl &url);
0032 
0033     // Called by KonqSidebarDirTreeItem
0034     void openSubFolder(KonqSidebarTreeItem *item);
0035     void addSubDir(KonqSidebarTreeItem *item);
0036     void removeSubDir(KonqSidebarTreeItem *item, bool childrenonly = false);
0037 
0038 private Q_SLOTS:
0039     void slotNewItems(const KFileItemList &);
0040     void slotRefreshItems(const QList<QPair<KFileItem, KFileItem> > &);
0041     void slotDeleteItem(const KFileItem &item);
0042     void slotRedirection(const QUrl &oldUrl, const QUrl &newUrl);
0043     void slotListingStopped(const QUrl &url);
0044 
0045 private:
0046     //KonqSidebarTreeItem * findDir( const QUrl &_url );
0047     void listDirectory(KonqSidebarTreeItem *item);
0048     QList<QUrl> selectedUrls();
0049 
0050     // URL -> item
0051     // Each KonqSidebarDirTreeItem is indexed on item->id() and
0052     // all item->alias'es
0053     Q3Dict<KonqSidebarTreeItem> m_dictSubDirs;
0054 
0055     // KFileItem -> item
0056     QHash<KFileItem, KonqSidebarTreeItem *> m_ptrdictSubDirs;
0057 
0058     KDirLister *m_dirLister;
0059 
0060     QUrl m_selectAfterOpening;
0061 
0062     KonqSidebarTreeTopLevelItem *m_topLevelItem;
0063 
0064     bool m_showArchivesAsFolders;
0065 };
0066 
0067 #endif