diff options
author | Andrej Shadura <andrew.shadura@collabora.co.uk> | 2020-06-03 15:50:28 +0200 |
---|---|---|
committer | Andrej Shadura <andrew.shadura@collabora.co.uk> | 2020-06-03 15:50:28 +0200 |
commit | c36420e0e05aed097b053416ccb273153d01d7e3 (patch) | |
tree | 7eaeb082f403b88ae24f6e00ca3e35b6ecd3ac25 /src | |
parent | 692e728c39bdf1514def23e83b2c40250f68ee98 (diff) |
New upstream version 4.0.4
Diffstat (limited to 'src')
-rw-r--r-- | src/libaudcore/tuple.cc | 6 | ||||
-rw-r--r-- | src/libaudqt/about-qt.cc | 12 | ||||
-rw-r--r-- | src/libaudqt/equalizer-qt.cc | 6 | ||||
-rw-r--r-- | src/libaudqt/fileopener.cc | 8 | ||||
-rw-r--r-- | src/libaudqt/infopopup-qt.cc | 13 | ||||
-rw-r--r-- | src/libaudqt/infowin-qt.cc | 6 | ||||
-rw-r--r-- | src/libaudqt/log-inspector.cc | 6 | ||||
-rw-r--r-- | src/libaudqt/prefs-window-qt.cc | 4 | ||||
-rw-r--r-- | src/libaudqt/queue-manager-qt.cc | 6 | ||||
-rw-r--r-- | src/libaudqt/treeview.cc | 21 | ||||
-rw-r--r-- | src/libaudqt/url-opener-qt.cc | 6 | ||||
-rw-r--r-- | src/libaudtag/id3/id3v22.cc | 24 | ||||
-rw-r--r-- | src/libaudtag/id3/id3v24.cc | 52 |
13 files changed, 83 insertions, 87 deletions
diff --git a/src/libaudcore/tuple.cc b/src/libaudcore/tuple.cc index f699e7d..7d710b4 100644 --- a/src/libaudcore/tuple.cc +++ b/src/libaudcore/tuple.cc @@ -80,7 +80,7 @@ struct TupleData bool is_set(int field) const { return (setmask & bitmask(field)); } - bool is_same(const TupleData & other); + bool is_same(const TupleData & other) const; TupleVal * lookup(int field, bool add, bool remove); void set_int(int field, int x); @@ -350,7 +350,7 @@ TupleData::~TupleData() delete[] subtunes; } -bool TupleData::is_same(const TupleData & other) +bool TupleData::is_same(const TupleData & other) const { if (state != other.state || setmask != other.setmask || nsubtunes != other.nsubtunes || (!subtunes) != (!other.subtunes)) @@ -368,7 +368,7 @@ bool TupleData::is_same(const TupleData & other) if (field_info[f].type == Tuple::String) same = (a->str == b->str); else - same = (a->x = b->x); + same = (a->x == b->x); if (!same) return false; diff --git a/src/libaudqt/about-qt.cc b/src/libaudqt/about-qt.cc index 4496e59..a80fd33 100644 --- a/src/libaudqt/about-qt.cc +++ b/src/libaudqt/about-qt.cc @@ -20,6 +20,7 @@ #include <QDialog> #include <QLabel> #include <QPlainTextEdit> +#include <QPointer> #include <QTabWidget> #include <QVBoxLayout> @@ -85,7 +86,7 @@ static QDialog * buildAboutWindow() return window; } -static QDialog * s_aboutwin = nullptr; +static QPointer<QDialog> s_aboutwin; namespace audqt { @@ -96,18 +97,11 @@ EXPORT void aboutwindow_show() { s_aboutwin = buildAboutWindow(); s_aboutwin->setAttribute(Qt::WA_DeleteOnClose); - - QObject::connect(s_aboutwin, &QObject::destroyed, - []() { s_aboutwin = nullptr; }); } window_bring_to_front(s_aboutwin); } -EXPORT void aboutwindow_hide() -{ - if (s_aboutwin) - delete s_aboutwin; -} +EXPORT void aboutwindow_hide() { delete s_aboutwin; } } // namespace audqt diff --git a/src/libaudqt/equalizer-qt.cc b/src/libaudqt/equalizer-qt.cc index e603c94..5458bf4 100644 --- a/src/libaudqt/equalizer-qt.cc +++ b/src/libaudqt/equalizer-qt.cc @@ -23,6 +23,7 @@ #include <QHBoxLayout> #include <QLabel> #include <QPainter> +#include <QPointer> #include <QPushButton> #include <QSlider> #include <QStyle> @@ -198,7 +199,7 @@ void EqualizerWindow::updateBands() m_sliders[i]->slider.setValue(values[i]); } -static EqualizerWindow * s_equalizer = nullptr; +static QPointer<EqualizerWindow> s_equalizer; namespace audqt { @@ -209,9 +210,6 @@ EXPORT void equalizer_show() { s_equalizer = new EqualizerWindow; s_equalizer->setAttribute(Qt::WA_DeleteOnClose); - - QObject::connect(s_equalizer, &QObject::destroyed, - []() { s_equalizer = nullptr; }); } window_bring_to_front(s_equalizer); diff --git a/src/libaudqt/fileopener.cc b/src/libaudqt/fileopener.cc index 1ab1e29..d1af3df 100644 --- a/src/libaudqt/fileopener.cc +++ b/src/libaudqt/fileopener.cc @@ -18,6 +18,7 @@ */ #include <QFileDialog> +#include <QPointer> #include <libaudcore/drct.h> #include <libaudcore/i18n.h> @@ -29,7 +30,7 @@ namespace audqt { -static aud::array<FileMode, QFileDialog *> s_dialogs; +static aud::array<FileMode, QPointer<QFileDialog>> s_dialogs; static void import_playlist(Playlist playlist, const String & filename) { @@ -50,7 +51,7 @@ static void export_playlist(Playlist playlist, const String & filename) EXPORT void fileopener_show(FileMode mode) { - QFileDialog *& dialog = s_dialogs[mode]; + QPointer<QFileDialog> & dialog = s_dialogs[mode]; if (!dialog) { @@ -114,9 +115,6 @@ EXPORT void fileopener_show(FileMode mode) break; } }); - - QObject::connect(dialog, &QObject::destroyed, - [&dialog]() { dialog = nullptr; }); } window_bring_to_front(dialog); diff --git a/src/libaudqt/infopopup-qt.cc b/src/libaudqt/infopopup-qt.cc index 30c1e39..a8c6f7a 100644 --- a/src/libaudqt/infopopup-qt.cc +++ b/src/libaudqt/infopopup-qt.cc @@ -30,6 +30,7 @@ #include <QGridLayout> #include <QLabel> #include <QPainter> +#include <QPointer> namespace audqt { @@ -103,6 +104,9 @@ void InfoPopup::add_fields(const Tuple & tuple) add_field(row++, _("Track"), int_to_str(track)); if (length > 0) add_field(row++, _("Length"), str_format_time(length)); + + if (row > 0) + m_grid.setRowStretch(row - 1, 1); } void InfoPopup::add_field(int row, const char * field, const char * value) @@ -111,13 +115,13 @@ void InfoPopup::add_field(int row, const char * field, const char * value) header->setTextFormat(Qt::RichText); header->setText( QString("<i><font color=\"#a0a0a0\">%1</font></i>").arg(field)); - m_grid.addWidget(header, row, 0, Qt::AlignRight); + m_grid.addWidget(header, row, 0, Qt::AlignRight | Qt::AlignTop); auto label = new QLabel(this); header->setTextFormat(Qt::RichText); auto html = QString(value).toHtmlEscaped(); label->setText(QString("<font color=\"#ffffff\">%1</font>").arg(html)); - m_grid.addWidget(label, row, 1, Qt::AlignLeft); + m_grid.addWidget(label, row, 1, Qt::AlignLeft | Qt::AlignTop); } void InfoPopup::art_ready(const char * filename) @@ -150,7 +154,7 @@ void InfoPopup::paintEvent(QPaintEvent *) p.fillRect(rect(), grad); } -static InfoPopup * s_infopopup; +static QPointer<InfoPopup> s_infopopup; static void infopopup_show(const String & filename, const Tuple & tuple) { @@ -158,9 +162,6 @@ static void infopopup_show(const String & filename, const Tuple & tuple) s_infopopup->deleteLater(); s_infopopup = new InfoPopup(filename, tuple); - - QObject::connect(s_infopopup, &QObject::destroyed, - []() { s_infopopup = nullptr; }); } EXPORT void infopopup_show(Playlist playlist, int entry) diff --git a/src/libaudqt/infowin-qt.cc b/src/libaudqt/infowin-qt.cc index 853e0cc..02781f9 100644 --- a/src/libaudqt/infowin-qt.cc +++ b/src/libaudqt/infowin-qt.cc @@ -28,6 +28,7 @@ #include <QLabel> #include <QPainter> #include <QPixmap> +#include <QPointer> #include <QPushButton> #include <QTextDocument> #include <QVBoxLayout> @@ -203,7 +204,7 @@ void InfoWindow::displayImage(const char * filename) art_request(filename, 2 * sizes.OneInch, 2 * sizes.OneInch)); } -static InfoWindow * s_infowin = nullptr; +static QPointer<InfoWindow> s_infowin; static void show_infowin(Index<PlaylistAddItem> && items, bool can_write) { @@ -211,9 +212,6 @@ static void show_infowin(Index<PlaylistAddItem> && items, bool can_write) { s_infowin = new InfoWindow; s_infowin->setAttribute(Qt::WA_DeleteOnClose); - - QObject::connect(s_infowin, &QObject::destroyed, - []() { s_infowin = nullptr; }); } s_infowin->fillInfo(std::move(items), can_write); diff --git a/src/libaudqt/log-inspector.cc b/src/libaudqt/log-inspector.cc index 460c178..a5d5440 100644 --- a/src/libaudqt/log-inspector.cc +++ b/src/libaudqt/log-inspector.cc @@ -25,6 +25,7 @@ #include <QDialogButtonBox> #include <QHBoxLayout> #include <QLabel> +#include <QPointer> #include <QPushButton> #include <QTreeView> #include <QVBoxLayout> @@ -255,7 +256,7 @@ LogEntryInspector::LogEntryInspector(QWidget * parent) : QDialog(parent) resize(6 * sizes.OneInch, 3 * sizes.OneInch); } -static LogEntryInspector * s_inspector = nullptr; +static QPointer<LogEntryInspector> s_inspector; void LogEntryInspector::setLogLevel(audlog::Level level) { @@ -273,9 +274,6 @@ EXPORT void log_inspector_show() { s_inspector = new LogEntryInspector; s_inspector->setAttribute(Qt::WA_DeleteOnClose); - - QObject::connect(s_inspector, &QObject::destroyed, - []() { s_inspector = nullptr; }); } window_bring_to_front(s_inspector); diff --git a/src/libaudqt/prefs-window-qt.cc b/src/libaudqt/prefs-window-qt.cc index 8f72ba4..96ef3ab 100644 --- a/src/libaudqt/prefs-window-qt.cc +++ b/src/libaudqt/prefs-window-qt.cc @@ -338,9 +338,7 @@ static const PreferencesWidget song_info_page_widgets[] = { WidgetCheck(N_("Show popup information"), WidgetBool(0, "show_filepopup_for_tuple")), WidgetSpin(N_("Popup delay (tenths of a second):"), - WidgetInt(0, "filepopup_delay"), {0, 100, 1}, WIDGET_CHILD), - WidgetCheck(N_("Show time scale for current song"), - WidgetBool(0, "filepopup_showprogressbar"), WIDGET_CHILD)}; + WidgetInt(0, "filepopup_delay"), {0, 100, 1}, WIDGET_CHILD)}; static const PreferencesWidget advanced_page_widgets[] = { WidgetLabel(N_("<b>Compatibility</b>")), diff --git a/src/libaudqt/queue-manager-qt.cc b/src/libaudqt/queue-manager-qt.cc index 8c5176b..2cf53bd 100644 --- a/src/libaudqt/queue-manager-qt.cc +++ b/src/libaudqt/queue-manager-qt.cc @@ -24,6 +24,7 @@ #include <QDialogButtonBox> #include <QHeaderView> #include <QItemSelectionModel> +#include <QPointer> #include <QPushButton> #include <QTreeView> #include <QVBoxLayout> @@ -206,7 +207,7 @@ void QueueManagerDialog::removeSelected() } } -static QueueManagerDialog * s_queuemgr = nullptr; +static QPointer<QueueManagerDialog> s_queuemgr; EXPORT void queue_manager_show() { @@ -214,9 +215,6 @@ EXPORT void queue_manager_show() { s_queuemgr = new QueueManagerDialog; s_queuemgr->setAttribute(Qt::WA_DeleteOnClose); - - QObject::connect(s_queuemgr, &QObject::destroyed, - []() { s_queuemgr = nullptr; }); } window_bring_to_front(s_queuemgr); diff --git a/src/libaudqt/treeview.cc b/src/libaudqt/treeview.cc index 188175d..add19ab 100644 --- a/src/libaudqt/treeview.cc +++ b/src/libaudqt/treeview.cc @@ -19,6 +19,7 @@ #include "treeview.h" +#include <QApplication> #include <QKeyEvent> #include <QMouseEvent> #include <QProxyStyle> @@ -41,8 +42,14 @@ namespace audqt class TreeViewStyleOverrides : public QProxyStyle { public: - int styleHint(StyleHint hint, - const QStyleOption * option = nullptr, + TreeViewStyleOverrides() + { + // detect and respond to application-wide style change + connect(qApp->style(), &QObject::destroyed, this, + &TreeViewStyleOverrides::resetBaseStyle); + } + + int styleHint(StyleHint hint, const QStyleOption * option = nullptr, const QWidget * widget = nullptr, QStyleHintReturn * returnData = nullptr) const override { @@ -51,12 +58,20 @@ public: return QProxyStyle::styleHint(hint, option, widget, returnData); } + +private: + void resetBaseStyle() + { + setBaseStyle(nullptr); + connect(qApp->style(), &QObject::destroyed, this, + &TreeViewStyleOverrides::resetBaseStyle); + } }; EXPORT TreeView::TreeView(QWidget * parent) : QTreeView(parent) { auto style = new TreeViewStyleOverrides; - connect(this, &QObject::destroyed, [style]() { delete style; }); + style->setParent(this); setStyle(style); // activate() is perhaps a bit redundant with activated() diff --git a/src/libaudqt/url-opener-qt.cc b/src/libaudqt/url-opener-qt.cc index 2ea837a..1542142 100644 --- a/src/libaudqt/url-opener-qt.cc +++ b/src/libaudqt/url-opener-qt.cc @@ -21,6 +21,7 @@ #include <QDialog> #include <QDialogButtonBox> #include <QLabel> +#include <QPointer> #include <QPushButton> #include <QVBoxLayout> @@ -126,7 +127,7 @@ static QDialog * buildUrlDialog(bool open) return dialog; } -static QDialog * s_dialog = nullptr; +static QPointer<QDialog> s_dialog; EXPORT void urlopener_show(bool open) { @@ -134,9 +135,6 @@ EXPORT void urlopener_show(bool open) { s_dialog = buildUrlDialog(open); s_dialog->setAttribute(Qt::WA_DeleteOnClose); - - QObject::connect(s_dialog, &QObject::destroyed, - []() { s_dialog = nullptr; }); } window_bring_to_front(s_dialog); diff --git a/src/libaudtag/id3/id3v22.cc b/src/libaudtag/id3/id3v22.cc index f850cfa..f5e950c 100644 --- a/src/libaudtag/id3/id3v22.cc +++ b/src/libaudtag/id3/id3v22.cc @@ -72,7 +72,7 @@ static const char * id3_frames[ID3_TAGS_NO] = { #pragma pack(push) /* must be byte-aligned */ #pragma pack(1) -struct ID3v2Header { +struct ID3v22Header { char magic[3]; unsigned char version; unsigned char revision; @@ -80,7 +80,7 @@ struct ID3v2Header { uint32_t size; }; -struct ID3v2FrameHeader { +struct ID3v22FrameHeader { char key[3]; unsigned char size[3]; }; @@ -95,7 +95,7 @@ struct GenericFrame : public Index<char> { namespace audtag { -static bool validate_header (ID3v2Header * header) +static bool validate_header (ID3v22Header * header) { if (memcmp (header->magic, "ID3", 3)) return false; @@ -117,20 +117,20 @@ static bool validate_header (ID3v2Header * header) static bool read_header (VFSFile & handle, int * version, bool * syncsafe, int64_t * offset, int * header_size, int * data_size) { - ID3v2Header header; + ID3v22Header header; if (handle.fseek (0, VFS_SEEK_SET)) return false; - if (handle.fread (& header, 1, sizeof (ID3v2Header)) != sizeof - (ID3v2Header)) + if (handle.fread (& header, 1, sizeof (ID3v22Header)) != sizeof + (ID3v22Header)) return false; if (validate_header (& header)) { * offset = 0; * version = header.version; - * header_size = sizeof (ID3v2Header); + * header_size = sizeof (ID3v22Header); * data_size = header.size; } else @@ -147,14 +147,14 @@ static bool read_header (VFSFile & handle, int * version, bool * static bool read_frame (VFSFile & handle, int max_size, int version, bool syncsafe, int * frame_size, GenericFrame & frame) { - ID3v2FrameHeader header; + ID3v22FrameHeader header; uint32_t hdrsz = 0; - if ((max_size -= sizeof (ID3v2FrameHeader)) < 0) + if ((max_size -= sizeof (ID3v22FrameHeader)) < 0) return false; - if (handle.fread (& header, 1, sizeof (ID3v2FrameHeader)) != sizeof - (ID3v2FrameHeader)) + if (handle.fread (& header, 1, sizeof (ID3v22FrameHeader)) != sizeof + (ID3v22FrameHeader)) return false; if (! header.key[0]) /* padding */ @@ -173,7 +173,7 @@ static bool read_frame (VFSFile & handle, int max_size, int version, AUDDBG (" key = %.3s\n", header.key); AUDDBG (" size = %d\n", (int) hdrsz); - * frame_size = sizeof (ID3v2FrameHeader) + hdrsz; + * frame_size = sizeof (ID3v22FrameHeader) + hdrsz; frame.key = String (str_copy (header.key, 3)); frame.clear (); diff --git a/src/libaudtag/id3/id3v24.cc b/src/libaudtag/id3/id3v24.cc index be558c9..b27163f 100644 --- a/src/libaudtag/id3/id3v24.cc +++ b/src/libaudtag/id3/id3v24.cc @@ -80,7 +80,7 @@ static const char * id3_frames[ID3_TAGS_NO] = { #pragma pack(push) /* must be byte-aligned */ #pragma pack(1) -struct ID3v2Header { +struct ID3v24Header { char magic[3]; unsigned char version; unsigned char revision; @@ -88,7 +88,7 @@ struct ID3v2Header { uint32_t size; }; -struct ID3v2FrameHeader { +struct ID3v24FrameHeader { char key[4]; uint32_t size; uint16_t flags; @@ -150,7 +150,7 @@ static bool skip_extended_header_4 (VFSFile & handle, int * _size) return true; } -static bool validate_header (ID3v2Header * header, bool is_footer) +static bool validate_header (ID3v24Header * header, bool is_footer) { if (memcmp (header->magic, is_footer ? "3DI" : "ID3", 3)) return false; @@ -175,19 +175,19 @@ static bool read_header (VFSFile & handle, int * version, bool * syncsafe, int64_t * offset, int * header_size, int * data_size, int * footer_size) { - ID3v2Header header, footer; + ID3v24Header header, footer; if (handle.fseek (0, VFS_SEEK_SET)) return false; - if (handle.fread (& header, 1, sizeof (ID3v2Header)) != sizeof (ID3v2Header)) + if (handle.fread (& header, 1, sizeof (ID3v24Header)) != sizeof (ID3v24Header)) return false; if (validate_header (& header, false)) { * offset = 0; * version = header.version; - * header_size = sizeof (ID3v2Header); + * header_size = sizeof (ID3v24Header); * data_size = header.size; if (header.flags & ID3_HEADER_HAS_FOOTER) @@ -195,16 +195,16 @@ static bool read_header (VFSFile & handle, int * version, bool * if (handle.fseek (header.size, VFS_SEEK_CUR)) return false; - if (handle.fread (& footer, 1, sizeof (ID3v2Header)) != sizeof (ID3v2Header)) + if (handle.fread (& footer, 1, sizeof (ID3v24Header)) != sizeof (ID3v24Header)) return false; if (! validate_header (& footer, true)) return false; - if (handle.fseek (sizeof (ID3v2Header), VFS_SEEK_SET)) + if (handle.fseek (sizeof (ID3v24Header), VFS_SEEK_SET)) return false; - * footer_size = sizeof (ID3v2Header); + * footer_size = sizeof (ID3v24Header); } else * footer_size = 0; @@ -216,26 +216,26 @@ static bool read_header (VFSFile & handle, int * version, bool * if (end < 0) return false; - if (handle.fseek (end - sizeof (ID3v2Header), VFS_SEEK_SET)) + if (handle.fseek (end - sizeof (ID3v24Header), VFS_SEEK_SET)) return false; - if (handle.fread (& footer, 1, sizeof (ID3v2Header)) != sizeof (ID3v2Header)) + if (handle.fread (& footer, 1, sizeof (ID3v24Header)) != sizeof (ID3v24Header)) return false; if (! validate_header (& footer, true)) return false; - * offset = end - 2 * sizeof (ID3v2Header) - footer.size; + * offset = end - 2 * sizeof (ID3v24Header) - footer.size; * version = footer.version; - * header_size = sizeof (ID3v2Header); + * header_size = sizeof (ID3v24Header); * data_size = footer.size; - * footer_size = sizeof (ID3v2Header); + * footer_size = sizeof (ID3v24Header); if (handle.fseek (* offset, VFS_SEEK_SET)) return false; - if (handle.fread (& header, 1, sizeof (ID3v2Header)) != sizeof - (ID3v2Header)) + if (handle.fread (& header, 1, sizeof (ID3v24Header)) != sizeof + (ID3v24Header)) return false; if (! validate_header (& header, false)) @@ -312,14 +312,14 @@ static Index<char> read_tag_data (VFSFile & handle, int size, bool syncsafe) static bool read_frame (const char * data, int max_size, int version, int * frame_size, GenericFrame & frame) { - ID3v2FrameHeader header; + ID3v24FrameHeader header; unsigned skip = 0; - if ((max_size -= sizeof (ID3v2FrameHeader)) < 0) + if ((max_size -= sizeof (ID3v24FrameHeader)) < 0) return false; - memcpy (& header, data, sizeof (ID3v2FrameHeader)); - data += sizeof (ID3v2FrameHeader); + memcpy (& header, data, sizeof (ID3v24FrameHeader)); + data += sizeof (ID3v24FrameHeader); if (! header.key[0]) /* padding */ return false; @@ -349,7 +349,7 @@ static bool read_frame (const char * data, int max_size, int version, if (skip >= header.size) return false; - * frame_size = sizeof (ID3v2FrameHeader) + header.size; + * frame_size = sizeof (ID3v24FrameHeader) + header.size; frame.key = String (str_copy (header.key, 4)); frame.clear (); @@ -386,7 +386,7 @@ static bool write_frame (VFSFile & file, const GenericFrame & frame, int version { AUDDBG ("Writing frame %s, size %d\n", (const char *) frame.key, frame.len ()); - ID3v2FrameHeader header; + ID3v24FrameHeader header; strncpy (header.key, frame.key, 4); @@ -397,13 +397,13 @@ static bool write_frame (VFSFile & file, const GenericFrame & frame, int version header.size = TO_BE32 (size); header.flags = 0; - if (file.fwrite (& header, 1, sizeof (ID3v2FrameHeader)) != sizeof (ID3v2FrameHeader)) + if (file.fwrite (& header, 1, sizeof (ID3v24FrameHeader)) != sizeof (ID3v24FrameHeader)) return false; if (file.fwrite (& frame[0], 1, frame.len ()) != frame.len ()) return false; - * frame_size = sizeof (ID3v2FrameHeader) + frame.len (); + * frame_size = sizeof (ID3v24FrameHeader) + frame.len (); return true; } @@ -427,7 +427,7 @@ static int write_all_frames (VFSFile & file, FrameDict & dict, int version) static bool write_header (VFSFile & file, int version, int size) { - ID3v2Header header; + ID3v24Header header; memcpy (header.magic, "ID3", 3); header.version = version; @@ -435,7 +435,7 @@ static bool write_header (VFSFile & file, int version, int size) header.flags = 0; header.size = TO_BE32 (syncsafe32 (size)); - return file.fwrite (& header, 1, sizeof (ID3v2Header)) == sizeof (ID3v2Header); + return file.fwrite (& header, 1, sizeof (ID3v24Header)) == sizeof (ID3v24Header); } static int get_frame_id (const char * key) |