summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/mirclient/qmirclientclipboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/mirclient/qmirclientclipboard.h')
-rw-r--r--src/plugins/platforms/mirclient/qmirclientclipboard.h37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/plugins/platforms/mirclient/qmirclientclipboard.h b/src/plugins/platforms/mirclient/qmirclientclipboard.h
index 1394498320..09e9bcdf38 100644
--- a/src/plugins/platforms/mirclient/qmirclientclipboard.h
+++ b/src/plugins/platforms/mirclient/qmirclientclipboard.h
@@ -45,7 +45,15 @@
#include <QMimeData>
#include <QPointer>
-class QDBusInterface;
+
+namespace com {
+ namespace ubuntu {
+ namespace content {
+ class Hub;
+ }
+ }
+}
+
class QDBusPendingCallWatcher;
class QMirClientClipboard : public QObject, public QPlatformClipboard
@@ -61,31 +69,24 @@ public:
bool supportsMode(QClipboard::Mode mode) const override;
bool ownsMode(QClipboard::Mode mode) const override;
- void requestDBusClipboardContents();
-
private Q_SLOTS:
- void onDBusClipboardGetContentsFinished(QDBusPendingCallWatcher*);
- void onDBusClipboardSetContentsFinished(QDBusPendingCallWatcher*);
- void updateMimeData(const QByteArray &serializedMimeData);
+ void onApplicationStateChanged(Qt::ApplicationState state);
private:
- void setupDBus();
-
- QByteArray serializeMimeData(QMimeData *mimeData) const;
- QMimeData *deserializeMimeData(const QByteArray &serializedMimeData) const;
-
- void setDBusClipboardContents(const QByteArray &clipboardContents);
+ void updateMimeData();
+ void requestMimeData();
QMimeData *mMimeData;
- bool mIsOutdated;
- QPointer<QDBusInterface> mDBusClipboard;
+ enum {
+ OutdatedClipboard, // Our mimeData is outdated, need to fetch latest from ContentHub
+ SyncingClipboard, // Our mimeData is outdated and we are waiting for ContentHub to reply with the latest paste
+ SyncedClipboard // Our mimeData is in sync with what ContentHub has
+ } mClipboardState{OutdatedClipboard};
- QPointer<QDBusPendingCallWatcher> mPendingGetContentsCall;
- QPointer<QDBusPendingCallWatcher> mPendingSetContentsCall;
+ com::ubuntu::content::Hub *mContentHub;
- bool mUpdatesDisabled;
- bool mDBusSetupDone;
+ QDBusPendingCallWatcher *mPasteReply{nullptr};
};
#endif // QMIRCLIENTCLIPBOARD_H