This commit is contained in:
Ignacio Serantes
2026-04-14 20:59:13 +02:00
parent b253b6d6e7
commit 9d286112b6
5 changed files with 33 additions and 31 deletions

View File

@@ -14,7 +14,7 @@ Classes:
MainWindow: The main application window containing the thumbnail grid and docks. MainWindow: The main application window containing the thumbnail grid and docks.
""" """
__appname__ = "BagheeraView" __appname__ = "BagheeraView"
__version__ = "0.9.21" __version__ = "0.9.22"
__author__ = "Ignacio Serantes" __author__ = "Ignacio Serantes"
__email__ = "kde@aynoa.net" __email__ = "kde@aynoa.net"
__license__ = "LGPL" __license__ = "LGPL"
@@ -4453,10 +4453,9 @@ class MainWindow(QMainWindow):
self.proxy_model.data(selected_indexes[0], PATH_ROLE)) self.proxy_model.data(selected_indexes[0], PATH_ROLE))
self.populate_open_with_submenu(open_submenu, full_path) self.populate_open_with_submenu(open_submenu, full_path)
# New action: Open in Fullscreen Viewer action_open_fullscreen = menu.addAction(
action_open_fullscreen = open_submenu.addAction(
QIcon.fromTheme("view-fullscreen"), QIcon.fromTheme("view-fullscreen"),
UITexts.CONTEXT_MENU_OPEN_FULLSCREEN_VIEWER) UITexts.CONTEXT_MENU_FULLSCREEN_VIEWER)
action_open_fullscreen.triggered.connect( action_open_fullscreen.triggered.connect(
lambda: self.open_in_fullscreen_viewer(selected_indexes[0])) lambda: self.open_in_fullscreen_viewer(selected_indexes[0]))
@@ -4664,11 +4663,11 @@ class MainWindow(QMainWindow):
lambda checked=False, df=desktop_file_id_from_gio_mime: lambda checked=False, df=desktop_file_id_from_gio_mime:
subprocess.Popen(["gtk-launch", df, full_path])) subprocess.Popen(["gtk-launch", df, full_path]))
menu.addSeparator() # menu.addSeparator()
action_other = menu.addAction(QIcon.fromTheme("applications-other"), # action_other = menu.addAction(QIcon.fromTheme("applications-other"),
UITexts.OPEN_WITH_OTHER) # UITexts.OPEN_WITH_OTHER)
action_other.triggered.connect( # action_other.triggered.connect(
lambda: self.open_with_system_chooser(full_path)) # lambda: self.open_with_system_chooser(full_path))
except Exception: except Exception:
action = menu.addAction(UITexts.CONTEXT_MENU_ERROR_LISTING_APPS) action = menu.addAction(UITexts.CONTEXT_MENU_ERROR_LISTING_APPS)
action.setEnabled(False) action.setEnabled(False)

View File

@@ -29,7 +29,7 @@ if FORCE_X11:
# --- CONFIGURATION --- # --- CONFIGURATION ---
PROG_NAME = "Bagheera Image Viewer" PROG_NAME = "Bagheera Image Viewer"
PROG_ID = "bagheeraview" PROG_ID = "bagheeraview"
PROG_VERSION = "0.9.21" PROG_VERSION = "0.9.22"
PROG_AUTHOR = "Ignacio Serantes" PROG_AUTHOR = "Ignacio Serantes"
# --- CACHE SETTINGS --- # --- CACHE SETTINGS ---
@@ -904,7 +904,7 @@ _UI_TEXTS = {
"CONTEXT_MENU_OPEN": "Open", "CONTEXT_MENU_OPEN": "Open",
"CONTEXT_MENU_OPEN_SEARCH_LOCATION": "Open and search location", "CONTEXT_MENU_OPEN_SEARCH_LOCATION": "Open and search location",
"CONTEXT_MENU_OPEN_DEFAULT_APP": "Open location with default application", "CONTEXT_MENU_OPEN_DEFAULT_APP": "Open location with default application",
"CONTEXT_MENU_OPEN_FULLSCREEN_VIEWER": "Open in Fullscreen Viewer", "CONTEXT_MENU_FULLSCREEN_VIEWER": "Open in Fullscreen Viewer",
"CONTEXT_MENU_MOVE_TO": "Move to...", "CONTEXT_MENU_MOVE_TO": "Move to...",
"CONTEXT_MENU_COPY_TO": "Copy to...", "CONTEXT_MENU_COPY_TO": "Copy to...",
"CONTEXT_MENU_ROTATE": "Rotate", "CONTEXT_MENU_ROTATE": "Rotate",
@@ -1455,7 +1455,7 @@ _UI_TEXTS = {
"CONTEXT_MENU_OPEN": "Abrir", "CONTEXT_MENU_OPEN": "Abrir",
"CONTEXT_MENU_OPEN_SEARCH_LOCATION": "Abrir y buscar en ubicación", "CONTEXT_MENU_OPEN_SEARCH_LOCATION": "Abrir y buscar en ubicación",
"CONTEXT_MENU_OPEN_DEFAULT_APP": "Abrir ubicación con aplicación por defecto", "CONTEXT_MENU_OPEN_DEFAULT_APP": "Abrir ubicación con aplicación por defecto",
"CONTEXT_MENU_OPEN_FULLSCREEN_VIEWER": "Abrir con Visor a Pantalla Completa", "CONTEXT_MENU_FULLSCREEN_VIEWER": "Abrir con Visor a Pantalla Completa",
"CONTEXT_MENU_MOVE_TO": "Mover a...", "CONTEXT_MENU_MOVE_TO": "Mover a...",
"CONTEXT_MENU_COPY_TO": "Copiar a...", "CONTEXT_MENU_COPY_TO": "Copiar a...",
"CONTEXT_MENU_ROTATE": "Girar", "CONTEXT_MENU_ROTATE": "Girar",
@@ -2017,7 +2017,7 @@ _UI_TEXTS = {
"CONTEXT_MENU_COPY_FILE": "Copiar URL do Ficheiro", "CONTEXT_MENU_COPY_FILE": "Copiar URL do Ficheiro",
"CONTEXT_MENU_COPY_DIR": "Copiar Ruta do Directorio", "CONTEXT_MENU_COPY_DIR": "Copiar Ruta do Directorio",
"CONTEXT_MENU_PROPERTIES": "Propiedades", "CONTEXT_MENU_PROPERTIES": "Propiedades",
"CONTEXT_MENU_OPEN_FULLSCREEN_VIEWER": "Abrir con Visor a Pantalla Completa", "CONTEXT_MENU_FULLSCREEN_VIEWER": "Abrir con Visor a Pantalla Completa",
"CONTEXT_MENU_NO_APPS_FOUND": "Non se atoparon aplicacións", "CONTEXT_MENU_NO_APPS_FOUND": "Non se atoparon aplicacións",
"CONTEXT_MENU_REGENERATE": "Rexenerar Miniatura", "CONTEXT_MENU_REGENERATE": "Rexenerar Miniatura",
"CONTEXT_MENU_ERROR_LISTING_APPS": "Erro listando aplicacións", "CONTEXT_MENU_ERROR_LISTING_APPS": "Erro listando aplicacións",

View File

@@ -26,6 +26,7 @@ from PySide6.QtCore import (
Signal, QPoint, QSize, Qt, QMimeData, QUrl, QTimer, QEvent, QRect, Slot, QRectF, Signal, QPoint, QSize, Qt, QMimeData, QUrl, QTimer, QEvent, QRect, Slot, QRectF,
QThread, QObject QThread, QObject
) )
from PySide6.QtDBus import QDBusConnection, QDBusMessage, QDBus
from constants import ( from constants import (
APP_CONFIG, DEFAULT_FACE_BOX_COLOR, DEFAULT_PET_BOX_COLOR, DEFAULT_VIEWER_SHORTCUTS, APP_CONFIG, DEFAULT_FACE_BOX_COLOR, DEFAULT_PET_BOX_COLOR, DEFAULT_VIEWER_SHORTCUTS,
@@ -3437,17 +3438,18 @@ class ImageViewer(QWidget):
service, which is common on Linux desktops. service, which is common on Linux desktops.
""" """
try: try:
cmd = [ msg = QDBusMessage.createMethodCall(
"dbus-send", "--session", "--print-reply", "org.freedesktop.ScreenSaver",
"--dest=org.freedesktop.ScreenSaver",
"/org/freedesktop/ScreenSaver", "/org/freedesktop/ScreenSaver",
"org.freedesktop.ScreenSaver.Inhibit", "org.freedesktop.ScreenSaver",
"string:bagheeraview", # Application name "Inhibit"
"string:Viewing images" # Reason for inhibition )
] msg.setArguments(["bagheeraview", "Viewing images"])
output = subprocess.check_output(cmd, text=True) reply = QDBusConnection.sessionBus().call(msg)
# Extract the cookie from the output (e.g., "uint32 12345") if reply.type() == QDBusMessage.ReplyMessage:
self.inhibit_cookie = int(output.split()[-1]) self.inhibit_cookie = reply.arguments()[0]
else:
self.inhibit_cookie = None
except Exception as e: except Exception as e:
print(f"{UITexts.ERROR} inhibiting power management: {e}") print(f"{UITexts.ERROR} inhibiting power management: {e}")
self.inhibit_cookie = None self.inhibit_cookie = None
@@ -3461,13 +3463,14 @@ class ImageViewer(QWidget):
""" """
if hasattr(self, 'inhibit_cookie') and self.inhibit_cookie is not None: if hasattr(self, 'inhibit_cookie') and self.inhibit_cookie is not None:
try: try:
subprocess.Popen([ msg = QDBusMessage.createMethodCall(
"dbus-send", "--session", "org.freedesktop.ScreenSaver",
"--dest=org.freedesktop.ScreenSaver",
"/org/freedesktop/ScreenSaver", "/org/freedesktop/ScreenSaver",
"org.freedesktop.ScreenSaver.UnInhibit", "org.freedesktop.ScreenSaver",
f"uint32:{self.inhibit_cookie}" "UnInhibit"
]) )
msg.setArguments([self.inhibit_cookie])
QDBusConnection.sessionBus().call(msg, QDBus.NoBlock)
self.inhibit_cookie = None self.inhibit_cookie = None
except Exception as e: except Exception as e:
print(f"{UITexts.ERROR} uninhibiting: {e}") print(f"{UITexts.ERROR} uninhibiting: {e}")

View File

@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "bagheeraview" name = "bagheeraview"
version = "0.9.21" version = "0.9.22"
authors = [ authors = [
{ name = "Ignacio Serantes" } { name = "Ignacio Serantes" }
] ]

View File

@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup( setup(
name="bagheeraview", name="bagheeraview",
version="0.9.21", version="0.9.22",
author="Ignacio Serantes", author="Ignacio Serantes",
description="Bagheera Image Viewer - An image viewer for KDE with Baloo in mind", description="Bagheera Image Viewer - An image viewer for KDE with Baloo in mind",
long_description="A fast image viewer built with PySide6, featuring search and " long_description="A fast image viewer built with PySide6, featuring search and "