qCInfo(lcPlugin) << "Created VFS instance from plugin" << pluginPath;
return vfs;
}
-
-QString OCC::vfsItemAvailabilityToString(VfsItemAvailability availability, bool forFolder)
-{
- switch(availability) {
- case VfsItemAvailability::AlwaysLocal:
- return Vfs::tr("Always available locally");
- case VfsItemAvailability::AllHydrated:
- return Vfs::tr("Available locally");
- case VfsItemAvailability::SomeDehydrated:
- if (forFolder) {
- return Vfs::tr("Some available online only");
- } else {
- return Vfs::tr("Available online only");
- }
- case VfsItemAvailability::OnlineOnly:
- return Vfs::tr("Available online only");
- }
- ENFORCE(false);
-}
/// Create a VFS instance for the mode, returns nullptr on failure.
OCSYNC_EXPORT std::unique_ptr<Vfs> createVfsFromPlugin(Vfs::Mode mode);
-/// Convert availability to translated string
-OCSYNC_EXPORT QString vfsItemAvailabilityToString(VfsItemAvailability availability, bool forFolder);
-
} // namespace OCC
#include "folderstatusmodel.h"
#include "folderstatusdelegate.h"
#include "common/utility.h"
+#include "guiutility.h"
#include "application.h"
#include "configfile.h"
#include "account.h"
auto availabilityMenu = menu->addMenu(tr("Availability"));
auto availability = folder->vfs().availability(QString());
if (availability) {
- ac = availabilityMenu->addAction(vfsItemAvailabilityToString(*availability, true));
+ ac = availabilityMenu->addAction(Utility::vfsCurrentAvailabilityText(*availability, true));
ac->setEnabled(false);
}
- ac = availabilityMenu->addAction(tr("Make always available locally"));
+ ac = availabilityMenu->addAction(Utility::vfsPinActionText());
ac->setEnabled(!availability || *availability != VfsItemAvailability::AlwaysLocal);
connect(ac, &QAction::triggered, this, [this]() { slotSetCurrentFolderAvailability(PinState::AlwaysLocal); });
- ac = availabilityMenu->addAction(tr("Free up local space"));
+ ac = availabilityMenu->addAction(Utility::vfsFreeSpaceActionText());
ac->setEnabled(!availability || *availability != VfsItemAvailability::OnlineOnly);
connect(ac, &QAction::triggered, this, [this]() { slotSetCurrentFolderAvailability(PinState::OnlineOnly); });
#include <QMessageBox>
#include <QUrlQuery>
+#include "common/asserts.h"
+
using namespace OCC;
Q_LOGGING_CATEGORY(lcUtility, "nextcloud.gui.utility", QtInfoMsg)
}
return true;
}
+
+QString Utility::vfsCurrentAvailabilityText(VfsItemAvailability availability, bool forFolder)
+{
+ switch(availability) {
+ case VfsItemAvailability::AlwaysLocal:
+ return QCoreApplication::translate("utility", "Currently always available locally");
+ case VfsItemAvailability::AllHydrated:
+ return QCoreApplication::translate("utility", "Currently available locally");
+ case VfsItemAvailability::SomeDehydrated:
+ if (forFolder) {
+ return QCoreApplication::translate("utility", "Currently some available online only");
+ } else {
+ return QCoreApplication::translate("utility", "Currently available online only");
+ }
+ case VfsItemAvailability::OnlineOnly:
+ return QCoreApplication::translate("utility", "Currently available online only");
+ }
+ ENFORCE(false);
+}
+
+QString Utility::vfsPinActionText()
+{
+ return QCoreApplication::translate("utility", "Make always available locally");
+}
+
+QString Utility::vfsFreeSpaceActionText()
+{
+ return QCoreApplication::translate("utility", "Free up local space");
+}
#include <QUrl>
#include <QWidget>
+#include "common/pinstate.h"
+
namespace OCC {
namespace Utility {
bool openEmailComposer(const QString &subject, const QString &body,
QWidget *errorWidgetParent);
+ /** Returns a translated string indicating the current availability.
+ *
+ * This will be used in context menus to describe the current state.
+ */
+ QString vfsCurrentAvailabilityText(VfsItemAvailability availability, bool forFolder);
+
+ /** Translated text for "making items always available locally" */
+ QString vfsPinActionText();
+
+ /** Translated text for "free up local space" (and unpinning the item) */
+ QString vfsFreeSpaceActionText();
+
} // namespace Utility
} // namespace OCC
// TODO: Should be a submenu, should use icons
auto makePinContextMenu = [&](bool makeAvailableLocally, bool freeSpace) {
listener->sendMessage(QLatin1String("MENU_ITEM:CURRENT_PIN:d:")
- + vfsItemAvailabilityToString(*combined, isFolderOrMultiple));
+ + Utility::vfsCurrentAvailabilityText(*combined, isFolderOrMultiple));
listener->sendMessage(QLatin1String("MENU_ITEM:MAKE_AVAILABLE_LOCALLY:")
+ (makeAvailableLocally ? QLatin1String(":") : QLatin1String("d:"))
- + tr("Make always available locally"));
+ + Utility::vfsPinActionText());
listener->sendMessage(QLatin1String("MENU_ITEM:MAKE_ONLINE_ONLY:")
+ (freeSpace ? QLatin1String(":") : QLatin1String("d:"))
- + tr("Free up local space"));
+ + Utility::vfsFreeSpaceActionText());
};
switch (*combined) {