summaryrefslogtreecommitdiff
path: root/src/libaudqt
diff options
context:
space:
mode:
authorAndrej Shadura <andrew.shadura@collabora.co.uk>2021-01-06 16:06:32 +0100
committerAndrej Shadura <andrew.shadura@collabora.co.uk>2021-01-06 16:06:32 +0100
commit0d865ccf8d786857da1a1e92b24e196cbdc7afb8 (patch)
tree317a0421428647da10db00cfa095c460d5ad9697 /src/libaudqt
parentc36420e0e05aed097b053416ccb273153d01d7e3 (diff)
New upstream version 4.0.5
Diffstat (limited to 'src/libaudqt')
-rw-r--r--src/libaudqt/audqt.cc2
-rw-r--r--src/libaudqt/fileopener.cc4
-rw-r--r--src/libaudqt/font-entry.cc2
-rw-r--r--src/libaudqt/info-widget.cc5
-rw-r--r--src/libaudqt/libaudqt-internal.h3
-rw-r--r--src/libaudqt/log-inspector.cc3
-rw-r--r--src/libaudqt/prefs-plugin.cc22
-rw-r--r--src/libaudqt/queue-manager-qt.cc6
8 files changed, 32 insertions, 15 deletions
diff --git a/src/libaudqt/audqt.cc b/src/libaudqt/audqt.cc
index c81eb20..a5d3e95 100644
--- a/src/libaudqt/audqt.cc
+++ b/src/libaudqt/audqt.cc
@@ -105,6 +105,7 @@ EXPORT void cleanup()
infopopup_hide_now();
infowin_hide();
log_inspector_hide();
+ plugin_prefs_hide();
prefswin_hide();
queue_manager_hide();
@@ -228,6 +229,7 @@ EXPORT void simple_message(const char * title, const char * text,
auto msgbox = new QMessageBox(icon, title, text, QMessageBox::Close);
msgbox->button(QMessageBox::Close)->setText(translate_str(N_("_Close")));
msgbox->setAttribute(Qt::WA_DeleteOnClose);
+ msgbox->setTextInteractionFlags(Qt::TextSelectableByMouse);
msgbox->show();
}
diff --git a/src/libaudqt/fileopener.cc b/src/libaudqt/fileopener.cc
index d1af3df..de2173e 100644
--- a/src/libaudqt/fileopener.cc
+++ b/src/libaudqt/fileopener.cc
@@ -78,7 +78,7 @@ EXPORT void fileopener_show(FileMode mode)
if (mode == FileMode::ExportPlaylist)
dialog->setAcceptMode(QFileDialog::AcceptSave);
- QObject::connect(dialog, &QFileDialog::directoryEntered,
+ QObject::connect(dialog.data(), &QFileDialog::directoryEntered,
[](const QString & path) {
aud_set_str("audgui", "filesel_path",
path.toUtf8().constData());
@@ -87,7 +87,7 @@ EXPORT void fileopener_show(FileMode mode)
auto playlist = Playlist::active_playlist();
QObject::connect(
- dialog, &QFileDialog::accepted, [dialog, mode, playlist]() {
+ dialog.data(), &QFileDialog::accepted, [dialog, mode, playlist]() {
Index<PlaylistAddItem> files;
for (const QUrl & url : dialog->selectedUrls())
files.append(String(url.toEncoded().constData()));
diff --git a/src/libaudqt/font-entry.cc b/src/libaudqt/font-entry.cc
index 95b4ff5..ff5b698 100644
--- a/src/libaudqt/font-entry.cc
+++ b/src/libaudqt/font-entry.cc
@@ -148,7 +148,7 @@ void FontEntry::show_dialog()
{
m_dialog = new QFontDialog(this);
- QObject::connect(m_dialog, &QFontDialog::fontSelected,
+ QObject::connect(m_dialog.data(), &QFontDialog::fontSelected,
[this](const QFont & font) {
setText((const char *)qfont_to_string(font));
end(false);
diff --git a/src/libaudqt/info-widget.cc b/src/libaudqt/info-widget.cc
index 0baa2fd..b5c7408 100644
--- a/src/libaudqt/info-widget.cc
+++ b/src/libaudqt/info-widget.cc
@@ -162,10 +162,11 @@ public:
InfoModel(QObject * parent = nullptr) : QAbstractTableModel(parent) {}
- int rowCount(const QModelIndex &) const override
+ int rowCount(const QModelIndex & parent) const override
{
- return aud::n_elems(tuple_field_map);
+ return parent.isValid() ? 0 : aud::n_elems(tuple_field_map);
}
+
int columnCount(const QModelIndex &) const override { return 2; }
QVariant data(const QModelIndex & index, int role) const override;
diff --git a/src/libaudqt/libaudqt-internal.h b/src/libaudqt/libaudqt-internal.h
index 3dd1398..3d67a45 100644
--- a/src/libaudqt/libaudqt-internal.h
+++ b/src/libaudqt/libaudqt-internal.h
@@ -36,6 +36,9 @@ void infopopup_hide_now();
void log_init();
void log_cleanup();
+/* prefs-plugin.cc */
+void plugin_prefs_hide();
+
/* util-qt.cc */
class PopupWidget : public QWidget
{
diff --git a/src/libaudqt/log-inspector.cc b/src/libaudqt/log-inspector.cc
index a5d5440..028f757 100644
--- a/src/libaudqt/log-inspector.cc
+++ b/src/libaudqt/log-inspector.cc
@@ -67,8 +67,9 @@ public:
protected:
int rowCount(const QModelIndex & parent = QModelIndex()) const
{
- return m_entries.len();
+ return parent.isValid() ? 0 : m_entries.len();
}
+
int columnCount(const QModelIndex & parent = QModelIndex()) const
{
return LogEntryColumn::Count;
diff --git a/src/libaudqt/prefs-plugin.cc b/src/libaudqt/prefs-plugin.cc
index 473d9bc..a7f6e94 100644
--- a/src/libaudqt/prefs-plugin.cc
+++ b/src/libaudqt/prefs-plugin.cc
@@ -17,8 +17,11 @@
* the use of this software.
*/
+#include <memory>
+
#include <QDialog>
#include <QDialogButtonBox>
+#include <QPointer>
#include <QPushButton>
#include <QVBoxLayout>
@@ -29,6 +32,7 @@
#include <libaudcore/preferences.h>
#include <libaudcore/runtime.h>
+#include "libaudqt-internal.h"
#include "libaudqt.h"
namespace audqt
@@ -61,17 +65,19 @@ EXPORT void plugin_about(PluginHandle * ph)
struct ConfigWindow
{
PluginHandle * ph;
- QDialog * root;
+ QPointer<QDialog> root;
+
+ ~ConfigWindow() { delete root; }
};
-static Index<ConfigWindow *> config_windows;
+static Index<std::unique_ptr<ConfigWindow>> config_windows;
static ConfigWindow * find_config_window(PluginHandle * ph)
{
- for (ConfigWindow * cw : config_windows)
+ for (auto & cw : config_windows)
{
if (cw && cw->ph == ph)
- return cw;
+ return cw.get();
}
return nullptr;
@@ -108,11 +114,9 @@ EXPORT void plugin_prefs(PluginHandle * ph)
if (p->init)
p->init();
- QObject::connect(cw->root, &QObject::destroyed, [p, cw]() {
+ QObject::connect(cw->root.data(), &QObject::destroyed, [p]() {
if (p->cleanup)
p->cleanup();
-
- cw->root = nullptr;
});
const char * name = header->info.name;
@@ -147,7 +151,7 @@ EXPORT void plugin_prefs(PluginHandle * ph)
->setText(translate_str(N_("_Close")));
}
- QObject::connect(bbox, &QDialogButtonBox::rejected, cw->root,
+ QObject::connect(bbox, &QDialogButtonBox::rejected, cw->root.data(),
&QObject::deleteLater);
vbox->addWidget(bbox);
@@ -155,4 +159,6 @@ EXPORT void plugin_prefs(PluginHandle * ph)
window_bring_to_front(cw->root);
}
+void plugin_prefs_hide(void) { config_windows.clear(); }
+
} // namespace audqt
diff --git a/src/libaudqt/queue-manager-qt.cc b/src/libaudqt/queue-manager-qt.cc
index 2cf53bd..dd1e993 100644
--- a/src/libaudqt/queue-manager-qt.cc
+++ b/src/libaudqt/queue-manager-qt.cc
@@ -50,7 +50,11 @@ public:
const QItemSelection & deselected);
protected:
- int rowCount(const QModelIndex & parent) const { return m_rows; }
+ int rowCount(const QModelIndex & parent) const
+ {
+ return parent.isValid() ? 0 : m_rows;
+ }
+
int columnCount(const QModelIndex & parent) const { return 2; }
QVariant data(const QModelIndex & index, int role) const;