mirror of
https://github.com/johrpan/musicus.git
synced 2025-10-25 20:37:24 +02:00
window: Inhibit system suspend during playback
This commit is contained in:
parent
8903ce7d2c
commit
1252ca0a1b
3 changed files with 44 additions and 13 deletions
16
po/de.po
16
po/de.po
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-04-27 17:54+0200\n"
|
||||
"POT-Creation-Date: 2025-05-30 15:27+0200\n"
|
||||
"PO-Revision-Date: 2025-04-27 18:23+0200\n"
|
||||
"Last-Translator: elias@johrpan.de\n"
|
||||
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
|
||||
|
|
@ -818,7 +818,7 @@ msgstr "Bibliothek exportieren"
|
|||
msgid "Exporting music library to {}"
|
||||
msgstr "Bibliothek wird nach {} exportiert"
|
||||
|
||||
#: src/library_manager.rs:234 src/window.rs:282
|
||||
#: src/library_manager.rs:234 src/window.rs:305
|
||||
msgid "Updating metadata"
|
||||
msgstr "Metadaten werden aktualisiert"
|
||||
|
||||
|
|
@ -826,19 +826,23 @@ msgstr "Metadaten werden aktualisiert"
|
|||
msgid "Updating music library"
|
||||
msgstr "Musikbibliothek wird aktualisiert"
|
||||
|
||||
#: src/window.rs:167
|
||||
#: src/window.rs:166
|
||||
msgid "Currently playing music"
|
||||
msgstr "Musik wird abgespielt"
|
||||
|
||||
#: src/window.rs:190
|
||||
msgid "Close window?"
|
||||
msgstr "Fenster schließen?"
|
||||
|
||||
#: src/window.rs:169
|
||||
#: src/window.rs:192
|
||||
msgid "There are ongoing processes that will be canceled."
|
||||
msgstr "Es gibt laufende Prozesse, die abgebrochen werden."
|
||||
|
||||
#: src/window.rs:174
|
||||
#: src/window.rs:197
|
||||
msgid "Keep open"
|
||||
msgstr "Nicht schließen"
|
||||
|
||||
#: src/window.rs:175
|
||||
#: src/window.rs:198
|
||||
msgid "Close window"
|
||||
msgstr "Fenster schließen"
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-04-27 17:54+0200\n"
|
||||
"POT-Creation-Date: 2025-05-30 15:27+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
@ -784,7 +784,7 @@ msgstr ""
|
|||
msgid "Exporting music library to {}"
|
||||
msgstr ""
|
||||
|
||||
#: src/library_manager.rs:234 src/window.rs:282
|
||||
#: src/library_manager.rs:234 src/window.rs:305
|
||||
msgid "Updating metadata"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -792,18 +792,22 @@ msgstr ""
|
|||
msgid "Updating music library"
|
||||
msgstr ""
|
||||
|
||||
#: src/window.rs:167
|
||||
#: src/window.rs:166
|
||||
msgid "Currently playing music"
|
||||
msgstr ""
|
||||
|
||||
#: src/window.rs:190
|
||||
msgid "Close window?"
|
||||
msgstr ""
|
||||
|
||||
#: src/window.rs:169
|
||||
#: src/window.rs:192
|
||||
msgid "There are ongoing processes that will be canceled."
|
||||
msgstr ""
|
||||
|
||||
#: src/window.rs:174
|
||||
#: src/window.rs:197
|
||||
msgid "Keep open"
|
||||
msgstr ""
|
||||
|
||||
#: src/window.rs:175
|
||||
#: src/window.rs:198
|
||||
msgid "Close window"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -1,4 +1,7 @@
|
|||
use std::{cell::RefCell, path::Path};
|
||||
use std::{
|
||||
cell::{Cell, RefCell},
|
||||
path::Path,
|
||||
};
|
||||
|
||||
use adw::{prelude::*, subclass::prelude::*};
|
||||
use anyhow::{anyhow, Result};
|
||||
|
|
@ -31,6 +34,7 @@ mod imp {
|
|||
pub library: RefCell<Option<Library>>,
|
||||
pub player: Player,
|
||||
pub process_manager: ProcessManager,
|
||||
pub inhibitor_cookie: Cell<Option<u32>>,
|
||||
|
||||
#[template_child]
|
||||
pub toast_overlay: TemplateChild<adw::ToastOverlay>,
|
||||
|
|
@ -148,6 +152,25 @@ mod imp {
|
|||
let obj = self.obj().to_owned();
|
||||
self.player.connect_raise(move |_| obj.present());
|
||||
|
||||
let obj = self.obj().to_owned();
|
||||
self.player.connect_playing_notify(move |player| {
|
||||
if let Some(app) = obj.application() {
|
||||
if let Some(cookie) = obj.imp().inhibitor_cookie.take() {
|
||||
app.uninhibit(cookie);
|
||||
};
|
||||
|
||||
if player.playing() {
|
||||
let cookie = app.inhibit(
|
||||
Some(&obj),
|
||||
gtk::ApplicationInhibitFlags::SUSPEND,
|
||||
Some(&gettext("Currently playing music")),
|
||||
);
|
||||
|
||||
obj.imp().inhibitor_cookie.set(Some(cookie));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
let settings = gio::Settings::new(config::APP_ID);
|
||||
let library_path = settings.string("library-path").to_string();
|
||||
if !library_path.is_empty() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue