File: syncthingmenuaction.h

package info (click to toggle)
syncthingtray 2.0.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,124 kB
  • sloc: cpp: 34,081; xml: 1,705; java: 1,258; sh: 97; javascript: 54; makefile: 25
file content (41 lines) | stat: -rw-r--r-- 1,007 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef SYNCTHINGMENUACTION_H
#define SYNCTHINGMENUACTION_H

#include <syncthingconnector/syncthingnotifier.h>

#include <KFileItemListProperties>

#include <QAction>

QT_FORWARD_DECLARE_CLASS(QWidget)

namespace Data {
enum class SyncthingStatus;
}

/*!
 * \brief The SyncthingMenuAction class provides the top-level menu "Syncthing" entry for the context menu.
 */
class SyncthingMenuAction : public QAction {
    Q_OBJECT

public:
    explicit SyncthingMenuAction(const KFileItemListProperties &properties = KFileItemListProperties(),
        const QList<QAction *> &actions = QList<QAction *>(), QWidget *parentWidget = nullptr);
#ifdef CPP_UTILITIES_DEBUG_BUILD
    ~SyncthingMenuAction() override;
#endif

private Q_SLOTS:
    void handleConnectedChanged();
    void updateActionStatus();

private:
    void createMenu(const QList<QAction *> &actions);

    KFileItemListProperties m_properties;
    Data::SyncthingNotifier m_notifier;
    QWidget *m_parentWidget;
};

#endif // SYNCTHINGMENUACTION_H