File indexing completed on 2024-06-09 05:30:03
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 <QAction> 0010 #include <QObject> 0011 #include <QPointer> 0012 #include <QQuickItem> 0013 #include <QUrl> 0014 #include <qqmlregistration.h> 0015 0016 class NotificationFileMenu : public QObject 0017 { 0018 Q_OBJECT 0019 QML_ELEMENT 0020 Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) 0021 Q_PROPERTY(QQuickItem *visualParent READ visualParent WRITE setVisualParent NOTIFY visualParentChanged) 0022 Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged) 0023 0024 public: 0025 explicit NotificationFileMenu(QObject *parent = nullptr); 0026 ~NotificationFileMenu() override; 0027 0028 QUrl url() const; 0029 void setUrl(const QUrl &url); 0030 0031 QQuickItem *visualParent() const; 0032 void setVisualParent(QQuickItem *visualParent); 0033 0034 bool visible() const; 0035 void setVisible(bool visible); 0036 0037 Q_INVOKABLE void open(int x, int y); 0038 0039 Q_SIGNALS: 0040 void actionTriggered(QAction *action); 0041 0042 void urlChanged(); 0043 void visualParentChanged(); 0044 void visibleChanged(); 0045 0046 private: 0047 QUrl m_url; 0048 QPointer<QQuickItem> m_visualParent; 0049 bool m_visible = false; 0050 };