Vfs: Add option to hide socketapi pin actions

Because some plugins provide alternative ui.
This commit is contained in:
Christian Kamm 2019-02-06 10:17:35 +01:00 committed by Kevin Ottens
parent e6ee5d0f8a
commit e9cbe13598
No known key found for this signature in database
GPG key ID: 074BBBCB8DECC9E2
3 changed files with 12 additions and 1 deletions

View file

@ -127,6 +127,13 @@ public:
virtual void unregisterFolder() = 0;
/** Whether the socket api should show pin state options
*
* Some plugins might provide alternate shell integration, making the normal
* context menu actions redundant.
*/
virtual bool socketApiPinStateActionsShown() const = 0;
/** Return true when download of a file's data is currently ongoing.
*
* See also the beginHydrating() and doneHydrating() signals.
@ -251,6 +258,7 @@ public:
void stop() override {}
void unregisterFolder() override {}
bool socketApiPinStateActionsShown() const override { return false; }
bool isHydrating() const override { return false; }
bool updateMetadata(const QString &, time_t, quint64, const QByteArray &, QString *) override { return true; }

View file

@ -1011,7 +1011,9 @@ void SocketApi::command_GET_MENU_ITEMS(const QString &argument, OCC::SocketListe
}
// File availability actions
if (syncFolder && syncFolder->supportsVirtualFiles()) {
if (syncFolder
&& syncFolder->supportsVirtualFiles()
&& syncFolder->vfs().socketApiPinStateActionsShown()) {
bool hasAlwaysLocal = false;
bool hasOnlineOnly = false;
bool hasHydratedOnlineOnly = false;

View file

@ -35,6 +35,7 @@ public:
void stop() override;
void unregisterFolder() override;
bool socketApiPinStateActionsShown() const override { return true; }
bool isHydrating() const override;
bool updateMetadata(const QString &filePath, time_t modtime, quint64 size, const QByteArray &fileId, QString *error) override;