File indexing completed on 2025-04-27 04:04:21
0001 /* 0002 SPDX-FileCopyrightText: 2016, 2019 Kai Uwe Broulik <kde@privat.broulik.de> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QObject> 0010 #include <QPointer> 0011 #include <QQuickItem> 0012 #include <QUrl> 0013 0014 class QAction; 0015 0016 class FileMenu : public QObject 0017 { 0018 Q_OBJECT 0019 Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) 0020 Q_PROPERTY(QQuickItem *visualParent READ visualParent WRITE setVisualParent NOTIFY visualParentChanged) 0021 Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged) 0022 0023 public: 0024 explicit FileMenu(QObject *parent = nullptr); 0025 ~FileMenu() override; 0026 0027 QUrl url() const; 0028 void setUrl(const QUrl &url); 0029 0030 QQuickItem *visualParent() const; 0031 void setVisualParent(QQuickItem *visualParent); 0032 0033 bool visible() const; 0034 void setVisible(bool visible); 0035 0036 Q_INVOKABLE void open(int x, int y); 0037 0038 Q_SIGNALS: 0039 void actionTriggered(QAction *action); 0040 0041 void urlChanged(); 0042 void visualParentChanged(); 0043 void visibleChanged(); 0044 0045 private: 0046 QUrl m_url; 0047 QPointer<QQuickItem> m_visualParent; 0048 bool m_visible = false; 0049 };