connect(_tray.data(), &Systray::shutdown,
this, &ownCloudGui::slotShutdown);
+ connect(_tray.data(), &Systray::openShareDialog,
+ this, [=](const QString &sharePath, const QString &localPath, const bool publicLink = false)
+ {
+
+ if (publicLink) {
+ this->slotShowShareDialog(sharePath,localPath, ShareDialogStartPage::PublicLinks);
+ } else {
+ this->slotShowShareDialog(sharePath,localPath, ShareDialogStartPage::UsersAndGroups);
+ }
+ });
ProgressDispatcher *pd = ProgressDispatcher::instance();
connect(pd, &ProgressDispatcher::progressInfo, this,
this, &ownCloudGui::slotShowOptionalTrayMessage);
connect(Logger::instance(), &Logger::guiMessage,
this, &ownCloudGui::slotShowGuiMessage);
-
}
void ownCloudGui::createTray()
QHash<int, QByteArray> roles;
roles[DisplayPathRole] = "displaypath";
roles[PathRole] = "path";
+ roles[AbsolutePathRole] = "abspath";
roles[LinkRole] = "link";
roles[MessageRole] = "message";
roles[ActionRole] = "type";
}
}
return QString();
+ case AbsolutePathRole: {
+ auto folder = FolderMan::instance()->folder(a._folder);
+ QString relPath(a._file);
+ if (!a._file.isEmpty()) {
+ if (folder) {
+ relPath.prepend(folder->remotePath());
+ }
+ list = FolderMan::instance()->findFileInLocalFolders(relPath, ast->account());
+ if (list.count() > 0) {
+ return QString(list.at(0));
+ } else {
+ qWarning("File not local folders while processing absolute path request.");
+ return QString();
+ }
+ } else {
+ qWarning("Received an absolute path request for an activity without a file path.");
+ return QString();
+ }
+ }
case ActionsLinksRole: {
QList<QVariant> customList;
foreach (ActivityLink customItem, a._links) {
height: Style.trayWindowHeaderHeight\r
spacing: 0\r
\r
+ MouseArea {\r
+ enabled: (path !== "") ? true : false\r
+ anchors.left: activityItem.left\r
+ anchors.right: ((shareButton.visible) ? shareButton.left : activityItem.right)\r
+ height: parent.height\r
+ anchors.margins: 2\r
+ hoverEnabled: true\r
+ onClicked: Qt.openUrlExternally(path)\r
+ ToolTip.visible: hovered\r
+ ToolTip.delay: 1000\r
+ ToolTip.text: qsTr("Open sync item locally")\r
+ Rectangle {\r
+ anchors.fill: parent\r
+ color: (parent.containsMouse ? Style.lightHover : "transparent")\r
+ }\r
+ }\r
+\r
Image {\r
id: activityIcon\r
-\r
- Layout.leftMargin: 8\r
- Layout.rightMargin: 8\r
- Layout.preferredWidth: activityButton1.icon.width\r
- Layout.preferredHeight: activityButton1.icon.height\r
+ anchors.left: activityItem.left\r
+ anchors.leftMargin: 8\r
+ anchors.rightMargin: 8\r
+ Layout.preferredWidth: shareButton.icon.width\r
+ Layout.preferredHeight: shareButton.icon.height\r
verticalAlignment: Qt.AlignCenter\r
cache: true\r
source: icon\r
sourceSize.height: 64\r
sourceSize.width: 64\r
}\r
+\r
Column {\r
id: activityTextColumn\r
-\r
+ anchors.left: activityIcon.right\r
+ anchors.leftMargin: 8\r
spacing: 4\r
Layout.alignment: Qt.AlignLeft\r
Text {\r
\r
Text {\r
id: activityTextInfo\r
- text: (type === "Activity" || type === "File" || type === "Sync") ? displaypath : message\r
+ text: (type === "Activity" || type === "Sync") ? displaypath : ((type === "File") ? subject : message)\r
height: (text === "") ? 0 : activityTextTitle.height\r
width: Style.activityLabelBaseWidth + ((path === "") ? activityItem.height : 0) + ((link === "") ? activityItem.height : 0) - 8\r
elide: Text.ElideRight\r
color: "#808080"\r
}\r
}\r
- Item {\r
- id: activityItemFiller\r
- Layout.fillWidth: true\r
- }\r
Button {\r
- id: activityButton1\r
+ id: shareButton\r
+ anchors.right: activityItem.right\r
\r
Layout.preferredWidth: (path === "") ? 0 : parent.height\r
Layout.preferredHeight: parent.height\r
Layout.alignment: Qt.AlignRight\r
flat: true\r
- hoverEnabled: false\r
+ hoverEnabled: true\r
visible: (path === "") ? false : true\r
display: AbstractButton.IconOnly\r
- icon.source: "qrc:///client/theme/files.svg"\r
- icon.color: "transparent"\r
-\r
- onClicked: {\r
- Qt.openUrlExternally(path)\r
- }\r
- }\r
- Button {\r
- id: activityButton2\r
-\r
- Layout.preferredWidth: (link === "") ? 0 : parent.height\r
- Layout.preferredHeight: parent.height\r
- Layout.alignment: Qt.AlignRight\r
- flat: true\r
- hoverEnabled: false\r
- visible: (link === "") ? false : true\r
- display: AbstractButton.IconOnly\r
icon.source: "qrc:///client/theme/public.svg"\r
icon.color: "transparent"\r
-\r
- onClicked: {\r
- Qt.openUrlExternally(link)\r
+ background: Rectangle {\r
+ color: parent.hovered ? Style.lightHover : "transparent"\r
}\r
+ ToolTip.visible: hovered\r
+ ToolTip.delay: 1000\r
+ ToolTip.text: qsTr("Open share dialog")\r
+ onClicked: systrayBackend.openShareDialog(displaypath,abspath)\r
}\r
}\r
\r