File indexing completed on 2025-03-09 03:49:43

0001 /*
0002     SPDX-FileCopyrightText: 1998 Anders Widell <d95-awi@nada.kth.se>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef MAINWINDOW_H
0008 #define MAINWINDOW_H
0009 
0010 #include "Bookmark.h"
0011 #include "InternalCollections.h"
0012 
0013 #include <KXmlGuiWindow>
0014 
0015 #include <QUrl>
0016 
0017 class PlayFieldView;
0018 class PlayField;
0019 class LevelCollection;
0020 class KSelectAction;
0021 class QAction;
0022 
0023 class MainWindow : public KXmlGuiWindow
0024 {
0025     Q_OBJECT
0026 
0027 public:
0028     MainWindow();
0029     ~MainWindow() override;
0030 
0031 public:
0032     void openURL(const QUrl &_url);
0033 
0034 public Q_SLOTS:
0035     void changeCollection(int id);
0036     void setBookmark(QAction *action);
0037     void goToBookmark(QAction *action);
0038 
0039     void loadLevels();
0040 
0041 public:
0042     QSize sizeHint() const override;
0043 
0044 protected:
0045     void focusInEvent(QFocusEvent *) override;
0046     void dragEnterEvent(QDragEnterEvent *) override;
0047     void dropEvent(QDropEvent *) override;
0048 
0049 private:
0050     void updateBookmark(int num);
0051     void handleAnimSpeedSelected(QAction *action);
0052     void setupActions();
0053     void createCollectionMenu();
0054 
0055 private:
0056     InternalCollections internalCollections_;
0057     LevelCollection *externalCollection_ = nullptr;
0058     PlayField *playField_;
0059     Bookmark *bookmarks_[10];
0060 
0061     PlayFieldView *playFieldView_;
0062     QAction *qa_slow;
0063     QAction *qa_medium;
0064     QAction *qa_fast;
0065     QAction *qa_off;
0066     QAction *setBM_act[10];
0067     QAction *goToBM_act[10];
0068     KSelectAction *collectionsAct_;
0069 };
0070 
0071 #endif /* MAINWINDOW_H */