From d6e83a296377a0c5842948ced9e7cce2410af331 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Tue, 23 Apr 2013 21:46:11 +0200 Subject: [PATCH 1/2] Display version information for PyQt, Mutagen and libdiscid in about dialog. --- picard/disc.py | 15 +++++++++++++++ picard/ui/options/about.py | 17 +++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/picard/disc.py b/picard/disc.py index 0e0cc194c..f61faae7e 100644 --- a/picard/disc.py +++ b/picard/disc.py @@ -73,6 +73,16 @@ class Disc(QtCore.QObject): dialog.exec_() +def libdiscid_version(): + global _libdiscid + if _libdiscid is None: + _libdiscid = _openLibrary() + try: + return _libdiscid.discid_get_version_string() + except AttributeError: + return "libdiscid" + + def _openLibrary(): """Tries to open libdiscid. @@ -146,3 +156,8 @@ def _setPrototypes(libDiscId): libDiscId.discid_get_submission_url.argtypes = (ct.c_void_p, ) libDiscId.discid_get_submission_url.restype = ct.c_char_p + + try: + libDiscId.discid_get_version_string.restype = ct.c_char_p + except AttributeError: + pass diff --git a/picard/ui/options/about.py b/picard/ui/options/about.py index 4b7724448..88c9854c8 100644 --- a/picard/ui/options/about.py +++ b/picard/ui/options/about.py @@ -17,10 +17,13 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -from picard import __version__ as version +from mutagen import version_string as mutagen_version +from PyQt4.QtCore import PYQT_VERSION_STR as pyqt_version +from picard import __version__ as picard_version from picard.formats import supported_formats from picard.ui.options import OptionsPage, register_options_page from picard.ui.ui_options_about import Ui_AboutOptionsPage +from picard.disc import libdiscid_version class AboutOptionsPage(OptionsPage): @@ -37,7 +40,12 @@ class AboutOptionsPage(OptionsPage): self.ui.setupUi(self) def load(self): - args = {"version": version} + args = { + "version": picard_version, + "mutagen-version": mutagen_version, + "pyqt-version": pyqt_version, + "libdiscid-version": libdiscid_version() + } formats = [] for exts, name in supported_formats(): @@ -54,6 +62,11 @@ class AboutOptionsPage(OptionsPage): text = _(u"""

MusicBrainz Picard
Version %(version)s

+

+PyQt %(pyqt-version)s
+Mutagen %(mutagen-version)s
+%(libdiscid-version)s +

Supported formats
%(formats)s

Please donate
Thank you for using Picard. Picard relies on the MusicBrainz database, which is operated by the MetaBrainz Foundation with the help of thousands of volunteers. If you like this application please consider donating to the MetaBrainz Foundation to keep the service running.

From 0d8f9b6078f30ae8312acbe0e0deb570984ffbe8 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Wed, 24 Apr 2013 08:31:53 +0200 Subject: [PATCH 2/2] Fixed exception in about dialog when libdiscid is not installed at all. Signed-off-by: Philipp Wolfer --- picard/disc.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/picard/disc.py b/picard/disc.py index f61faae7e..bc379e413 100644 --- a/picard/disc.py +++ b/picard/disc.py @@ -75,8 +75,11 @@ class Disc(QtCore.QObject): def libdiscid_version(): global _libdiscid - if _libdiscid is None: - _libdiscid = _openLibrary() + try: + if _libdiscid is None: + _libdiscid = _openLibrary() + except NotImplementedError: + return "" try: return _libdiscid.discid_get_version_string() except AttributeError: