File indexing completed on 2024-05-19 11:21:40

0001 /*
0002     SPDX-License-Identifier: GPL-2.0-or-later
0003     SPDX-FileCopyrightText: 2020 Sirgienko Nikita <warquark@gmail.com>
0004 */
0005 
0006 #ifndef _FILEBROWSERPANELPLUGIN_H
0007 #define _FILEBROWSERPANELPLUGIN_H
0008 
0009 #include <QStringListModel>
0010 
0011 #include <QPointer>
0012 
0013 #include "panelplugin.h"
0014 
0015 class QWidget;
0016 class QModelIndex;
0017 class QPushButton;
0018 class QLineEdit;
0019 class QComboBox;
0020 
0021 class TableOfContentPanelPlugin : public Cantor::PanelPlugin
0022 {
0023   Q_OBJECT
0024   public:
0025     TableOfContentPanelPlugin (QObject* parent, const QList<QVariant>& args);
0026     ~TableOfContentPanelPlugin() override;
0027 
0028     QWidget* widget() override;
0029 
0030     bool showOnStartup() override;
0031 
0032     void connectToShell(QObject * cantorShell) override;
0033 
0034     State saveState() override;
0035 
0036     void restoreState(const State& state) override;
0037 
0038 
0039   Q_SIGNALS:
0040     void requestScrollToHierarchyEntry(QString);
0041 
0042   private Q_SLOTS:
0043     void handleDoubleClicked(const QModelIndex&);
0044     void handleHierarchyChanges(QStringList names, QStringList searchStrings, QList<int> depths);
0045     void handleHierarhyEntryNameChange(QString name, QString searchString, int deapth);
0046 
0047   private:
0048     void constructMainWidget();
0049 
0050   private:
0051     QPointer<QWidget> m_mainWidget;
0052     QStringListModel m_model;
0053     QStringList m_hierarchyPositionStringList;
0054 };
0055 
0056 #endif /* _FILEBROWSERPANELPLUGIN_H */