diff options
| author | frosty <frostinator33@airmail.cc> | 2026-10-26 10:21:57 -0400 |
|---|---|---|
| committer | frosty <frostinator33@airmail.cc> | 2026-10-26 10:21:57 -0400 |
| commit | 74aecd8b0986d07b50b7ce310d64e645b8b54e38 (patch) | |
| tree | 560e6434f183eb54cd779936f3a4c9575146a066 /libdino/src/application.vala | |
| parent | 3d7e90d401da02d430a87db0ec7e1db3a6f1a68f (diff) | |
| parent | 4436001bb361ad4f9e4e05819214ecf0ea77c063 (diff) | |
Merge 'upstream/master'
Diffstat (limited to 'libdino/src/application.vala')
| -rw-r--r-- | libdino/src/application.vala | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/libdino/src/application.vala b/libdino/src/application.vala index 536ca949..13bcd471 100644 --- a/libdino/src/application.vala +++ b/libdino/src/application.vala @@ -2,10 +2,12 @@ using Dino.Entities; namespace Dino { -public string get_version() { return VERSION; } +public extern unowned string get_version(); + public string get_short_version() { - if (!VERSION.contains("~")) return VERSION; - return VERSION.split("~")[0] + "+"; + string version = get_version(); + if (!version.contains("~")) return version; + return version.split("~")[0] + "+"; } public interface Application : GLib.Application { @@ -48,6 +50,7 @@ public interface Application : GLib.Application { AvatarManager.start(stream_interactor, db); RosterManager.start(stream_interactor, db); FileManager.start(stream_interactor, db); + FileManager2.start(stream_interactor, db); CallStore.start(stream_interactor, db); ContentItemStore.start(stream_interactor, db); ChatInteraction.start(stream_interactor); @@ -133,6 +136,36 @@ public interface Application : GLib.Application { stream_interactor.get_module(PresenceManager.IDENTITY).request_subscription(conversation.account, conversation.counterpart); }); add_action(accept_subscription_action); + + SimpleAction open_file_action = new SimpleAction("file_open_externally", VariantType.INT32); + open_file_action.activate.connect((variant) => { + int file_transfer_id = variant.get_int32(); + FileTransfer file_transfer = stream_interactor.get_module(FileTransferStorage.IDENTITY).get_file_by_id(file_transfer_id, null); + + try{ + AppInfo.launch_default_for_uri(file_transfer.get_file().get_uri(), null); + } catch (Error err) { + warning("Failed to open %s - %s", file_transfer.get_file().get_uri(), err.message); + } + }); + add_action(open_file_action); + + SimpleAction download_file_action = new SimpleAction("file_start_download", VariantType.INT32); + download_file_action.activate.connect((variant) => { + int file_transfer_id = variant.get_int32(); + FileTransfer file_transfer = stream_interactor.get_module(FileTransferStorage.IDENTITY).get_file_by_id(file_transfer_id, null); + + stream_interactor.get_module(FileManager.IDENTITY).download_file.begin(file_transfer); + }); + add_action(download_file_action); + + SimpleAction cancel_file_action = new SimpleAction("file_cancel_download", VariantType.INT32); + cancel_file_action.activate.connect((variant) => { + int file_transfer_id = variant.get_int32(); + FileTransfer file_transfer = stream_interactor.get_module(FileTransferStorage.IDENTITY).get_file_by_id(file_transfer_id, null); + file_transfer.cancellable.cancel(); + }); + add_action(cancel_file_action); } protected void add_connection(Account account) { |
