Warning, /network/tokodon/src/content/ui/StatusDelegate/ImageMenu.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
0002 // SPDX-License-Identifier: GPL-3.0-or-later
0003 
0004 import QtCore
0005 import QtQuick
0006 import QtQuick.Controls 2 as QQC2
0007 import QtQuick.Dialogs
0008 import org.kde.tokodon
0009 
0010 import ".."
0011 
0012 QQC2.Menu {
0013     id: root
0014 
0015     property var attachment
0016 
0017     modal: true
0018 
0019     Component {
0020         id: saveAsDialog
0021         FileDialog {
0022             property var url
0023             fileMode: FileDialog.SaveFile
0024             currentFolder: StandardPaths.writableLocation(StandardPaths.DownloadLocation)
0025             onAccepted: {
0026                 if (!currentFile) {
0027                     return;
0028                 }
0029                 FileHelper.downloadFile(AccountManager.selectedAccount, url, currentFile);
0030             }
0031         }
0032     }
0033 
0034     QQC2.MenuItem {
0035         enabled: root.attachment !== null
0036 
0037         icon.name: "window"
0038         text: i18n("Save Image As…")
0039 
0040         onTriggered: {
0041             const dialog = saveAsDialog.createObject(applicationWindow().overlay, {
0042                 url: root.attachment.source,
0043             });
0044             dialog.selectedFile = dialog.currentFolder + "/" + FileHelper.fileName(root.attachment.source);
0045             dialog.open();
0046         }
0047     }
0048 
0049     QQC2.MenuItem {
0050         enabled: root.attachment !== null
0051 
0052         icon.name: "edit-copy"
0053         text: i18n("Copy Image")
0054         onTriggered: Clipboard.copyImage(root.attachment.source)
0055     }
0056 
0057     QQC2.MenuSeparator {}
0058 
0059     ShareMenu {
0060         enabled: root.attachment !== null
0061 
0062         url: root.attachment !== null && root.attachment !== undefined ? root.attachment.source : ""
0063     }
0064 }