From 6baa843a2a0bdf143617df269129d81dae0a3a38 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Mon, 19 Oct 2020 20:36:51 +0000 Subject: qsui: added feature to add dock widgets from plugins git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9509 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/lyrics/lyricsfactory.cpp | 9 +++++++++ src/plugins/General/lyrics/lyricsfactory.h | 1 + src/plugins/General/lyrics/lyricswindow.cpp | 10 +++++++--- 3 files changed, 17 insertions(+), 3 deletions(-) (limited to 'src/plugins/General') diff --git a/src/plugins/General/lyrics/lyricsfactory.cpp b/src/plugins/General/lyrics/lyricsfactory.cpp index a8076d416..c20278f0f 100644 --- a/src/plugins/General/lyrics/lyricsfactory.cpp +++ b/src/plugins/General/lyrics/lyricsfactory.cpp @@ -21,6 +21,7 @@ #include #include "settingsdialog.h" #include "lyrics.h" +#include "lyricswindow.h" #include "lyricsfactory.h" GeneralProperties LyricsFactory::properties() const @@ -31,6 +32,7 @@ GeneralProperties LyricsFactory::properties() const properties.hasAbout = true; properties.hasSettings = true; properties.visibilityControl = false; + properties.widgets = { { 0, tr("Lyrics"), Qt::AllDockWidgetAreas } }; return properties; } @@ -39,6 +41,13 @@ QObject *LyricsFactory::create(QObject *parent) return new Lyrics(parent); } +QWidget *LyricsFactory::createWidget(int id, QWidget *parent) +{ + if(id == 0) + return new LyricsWindow(nullptr, parent); + return nullptr; +} + QDialog *LyricsFactory::createConfigDialog(QWidget *parent) { return new SettingsDialog(parent); diff --git a/src/plugins/General/lyrics/lyricsfactory.h b/src/plugins/General/lyrics/lyricsfactory.h index 48d361c16..4593dedf7 100644 --- a/src/plugins/General/lyrics/lyricsfactory.h +++ b/src/plugins/General/lyrics/lyricsfactory.h @@ -37,6 +37,7 @@ Q_INTERFACES(GeneralFactory) public: GeneralProperties properties() const override; QObject *create(QObject *parent) override; + QWidget *createWidget(int id, QWidget *parent) override; QDialog *createConfigDialog(QWidget *parent) override; void showAbout(QWidget *parent) override; QString translation() const override; diff --git a/src/plugins/General/lyrics/lyricswindow.cpp b/src/plugins/General/lyrics/lyricswindow.cpp index 750d91835..4f75bf2ac 100644 --- a/src/plugins/General/lyrics/lyricswindow.cpp +++ b/src/plugins/General/lyrics/lyricswindow.cpp @@ -35,9 +35,12 @@ LyricsWindow::LyricsWindow(const TrackInfo *info, QWidget *parent) : QWidget(parent) { m_ui.setupUi(this); - setWindowFlags(Qt::Dialog); - setAttribute(Qt::WA_DeleteOnClose); - setAttribute(Qt::WA_QuitOnClose, false); + if(!info) + return; + + //setWindowFlags(Qt::Dialog); + //setAttribute(Qt::WA_DeleteOnClose); + //setAttribute(Qt::WA_QuitOnClose, false); m_cachePath = Qmmp::configDir() + "/lyrics/"; m_ui.editWidget->setVisible(false); m_ui.titleLineEdit->setText(info->value(Qmmp::TITLE)); @@ -86,6 +89,7 @@ LyricsWindow::LyricsWindow(const TrackInfo *info, QWidget *parent) LyricsWindow::~LyricsWindow() { + qDebug("%s", Q_FUNC_INFO); } void LyricsWindow::onRequestFinished(QNetworkReply *reply) -- cgit v1.2.3-13-gbd6f