diff --git a/setup.iss b/setup.iss index 0a2f0e8..cae7539 100644 --- a/setup.iss +++ b/setup.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "RevPi Commander" -#define MyAppVersion "0.9.10rc5" +#define MyAppVersion "0.9.10rc6" #define MyAppPublisher "Sven Sager" #define MyAppURL "https://revpimodio.org/" #define MyAppICO "data\revpicommander.ico" diff --git a/src/revpicommander/__init__.py b/src/revpicommander/__init__.py index 8cdae28..99ccaf2 100644 --- a/src/revpicommander/__init__.py +++ b/src/revpicommander/__init__.py @@ -4,4 +4,4 @@ __author__ = "Sven Sager" __copyright__ = "Copyright (C) 2023 Sven Sager" __license__ = "GPLv3" __package__ = "revpicommander" -__version__ = "0.9.10rc5" +__version__ = "0.9.10rc6" diff --git a/src/revpicommander/avahisearch.py b/src/revpicommander/avahisearch.py index 9304e7b..1ebecb2 100644 --- a/src/revpicommander/avahisearch.py +++ b/src/revpicommander/avahisearch.py @@ -130,7 +130,7 @@ class AvahiSearch(QtWidgets.QDialog, Ui_diag_search): self.act_connect_xmlrpc.setVisible(True) @staticmethod - def _find_settings(address: str) -> list[RevPiSettings]: + def _find_settings(address: str): """Find all settings with known avahi_id.""" return [ revpi_setting @@ -258,8 +258,11 @@ class AvahiSearch(QtWidgets.QDialog, Ui_diag_search): return item = selected_items[0] - # Till we could not choose https / http we are using the ip address - webbrowser.open("http://{0}/".format(item.data(WidgetData.address))) + # We should use the hostname on macOS to let safari connect in link local mode (for linux nice too) + webbrowser.open("http://{0}/".format(item.data( + WidgetData.address if platform == "win32" + else WidgetData.host_name_full + ))) @QtCore.pyqtSlot(str, str, int, str, str) def on_avahi_added(self, avahi_id: str, server: str, port: int, conf_type: str, ip: str) -> None: diff --git a/src/revpicommander/helper.py b/src/revpicommander/helper.py index c556221..7ee0b66 100644 --- a/src/revpicommander/helper.py +++ b/src/revpicommander/helper.py @@ -11,6 +11,7 @@ from http.client import CannotSendRequest from os import environ, remove from os.path import exists from queue import Queue +from re import search from threading import Lock from uuid import uuid4 from xmlrpc.client import Binary, ServerProxy @@ -232,6 +233,8 @@ class ConnectionManager(QtCore.QThread): self.pyload_version = (0, 0, 0) """Version number of RevPiPyLoad 0.0.0 with values.""" + self.pyload_version_str = "" + """Raw string of RevPyPyLoad version, could contain rc1 at the end.""" self.xml_funcs = [] """Name list of all supported functions of RevPiPyLoad.""" self.xml_mode = -1 @@ -315,6 +318,7 @@ class ConnectionManager(QtCore.QThread): self.ssh_pass = "" self.pyload_version = (0, 0, 0) + self.pyload_version_str = "" self.xml_funcs.clear() self.xml_mode = -1 @@ -372,7 +376,9 @@ class ConnectionManager(QtCore.QThread): # Load values and test connection to Revolution Pi try: - pyload_version = tuple(map(int, sp.version().split("."))) + ma = search(r"(?P\d+)\.(?P\d+)\.(?P\d+)", sp.version()) + pyload_version = int(ma.group("major")), int(ma.group("minor")), int(ma.group("patch")) + pyload_version_str = ma.string xml_funcs = sp.system.listMethods() xml_mode = sp.xmlmodus() except Exception as e: @@ -410,6 +416,7 @@ class ConnectionManager(QtCore.QThread): self.settings = revpi_settings self.ssh_pass = ssh_pass self.pyload_version = pyload_version + self.pyload_version_str = pyload_version_str self.xml_funcs = xml_funcs self.xml_mode = xml_mode diff --git a/src/revpicommander/revpicommander.py b/src/revpicommander/revpicommander.py index 968bc7d..37cede7 100644 --- a/src/revpicommander/revpicommander.py +++ b/src/revpicommander/revpicommander.py @@ -402,8 +402,8 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander): @QtCore.pyqtSlot() def on_act_pictory_triggered(self): """Open piCtory in default browser of operating system.""" - if helper.cm.address: - webbrowser.open("http://{0}/".format(helper.cm.address)) + if helper.cm.settings.address: + webbrowser.open("http://{0}/".format(helper.cm.settings.address)) @QtCore.pyqtSlot() def on_act_reset_triggered(self): diff --git a/src/revpicommander/revpiinfo.py b/src/revpicommander/revpiinfo.py index 1d2e127..cec254d 100644 --- a/src/revpicommander/revpiinfo.py +++ b/src/revpicommander/revpiinfo.py @@ -24,7 +24,7 @@ class RevPiInfo(QtWidgets.QDialog, Ui_diag_revpiinfo): def exec(self) -> int: self.lbl_version_pyload.setText( - "{0}.{1}.{2}".format(*helper.cm.pyload_version) + helper.cm.pyload_version_str if helper.cm.connected else "-" ) self._load_lst_files()