File indexing completed on 2024-04-14 15:52:16

0001 /*
0002     SPDX-FileCopyrightText: 2010 Jan Lepper <dehtris@yahoo.de>
0003     SPDX-FileCopyrightText: 2010-2022 Krusader Krew <https://krusader.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef KRMAINWINDOW_H
0009 #define KRMAINWINDOW_H
0010 
0011 #include <QAction>
0012 #include <QWidget>
0013 
0014 #include "abstractpanelmanager.h"
0015 
0016 class KActionCollection;
0017 class KrPanel;
0018 class KrActions;
0019 class KrView;
0020 class ListPanelActions;
0021 class PopularUrls;
0022 class TabActions;
0023 class ViewActions;
0024 
0025 /**
0026  * @brief Abstract file manager main window
0027  */
0028 class KrMainWindow
0029 {
0030 public:
0031     virtual ~KrMainWindow()
0032     {
0033     }
0034     virtual QWidget *widget() = 0;
0035     virtual KrView *activeView() = 0;
0036     virtual ViewActions *viewActions() = 0;
0037     virtual KActionCollection *actions() = 0;
0038     virtual AbstractPanelManager *activeManager() = 0;
0039     virtual AbstractPanelManager *leftManager() = 0;
0040     virtual AbstractPanelManager *rightManager() = 0;
0041     virtual PopularUrls *popularUrls() = 0;
0042     virtual KrActions *krActions() = 0;
0043     virtual ListPanelActions *listPanelActions() = 0;
0044     virtual TabActions *tabActions() = 0;
0045     virtual void plugActionList(const char *name, QList<QAction *> &list) = 0;
0046 
0047     KrPanel *activePanel()
0048     {
0049         return activeManager()->currentPanel();
0050     }
0051     KrPanel *leftPanel()
0052     {
0053         return leftManager()->currentPanel();
0054     }
0055     KrPanel *rightPanel()
0056     {
0057         return rightManager()->currentPanel();
0058     }
0059 };
0060 
0061 #endif // KRMAINWINDOW_H