From 81b8be24f37d6ffeba95ee4695a80c030d03f168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Tue, 28 Jan 2014 20:12:45 +0200 Subject: [PATCH] Refactor|UI|Client: Use DocumentPopupWidget --- .../client/data/defaultstyle.pack/rules.dei | 5 +-- .../client/include/ui/dialogs/aboutdialog.h | 4 --- .../client/src/ui/dialogs/aboutdialog.cpp | 35 +++++-------------- .../src/ui/dialogs/multiplayerdialog.cpp | 34 +++++++++--------- 4 files changed, 28 insertions(+), 50 deletions(-) diff --git a/doomsday/client/data/defaultstyle.pack/rules.dei b/doomsday/client/data/defaultstyle.pack/rules.dei index 995dd97963..163e852914 100644 --- a/doomsday/client/data/defaultstyle.pack/rules.dei +++ b/doomsday/client/data/defaultstyle.pack/rules.dei @@ -16,7 +16,8 @@ group label { rule scrollarea.bar { constant $= UNIT } group document { - rule progress { constant $= UNIT * 30 } + rule progress { constant $= UNIT * 30 } + rule popup.width { constant $= UNIT * 120 } } group editor { @@ -60,7 +61,7 @@ group console { } group gameselection { - rule max.width { constant $= UNIT * 200 } + rule max.width { constant $= UNIT * 215 } rule max.height { constant $= UNIT * 150 } } diff --git a/doomsday/client/include/ui/dialogs/aboutdialog.h b/doomsday/client/include/ui/dialogs/aboutdialog.h index ae0d565a66..c4b666334c 100644 --- a/doomsday/client/include/ui/dialogs/aboutdialog.h +++ b/doomsday/client/include/ui/dialogs/aboutdialog.h @@ -31,10 +31,6 @@ class AboutDialog : public de::DialogWidget public: AboutDialog(); -protected slots: - void showGLInfo(); - void showAudioInfo(); - private: DENG2_PRIVATE(d) }; diff --git a/doomsday/client/src/ui/dialogs/aboutdialog.cpp b/doomsday/client/src/ui/dialogs/aboutdialog.cpp index 40ad86371a..bbc5fb003f 100644 --- a/doomsday/client/src/ui/dialogs/aboutdialog.cpp +++ b/doomsday/client/src/ui/dialogs/aboutdialog.cpp @@ -28,33 +28,26 @@ #include #include #include -#include -#include +#include #include using namespace de; DENG2_PIMPL(AboutDialog) { - PopupWidget *glPopup; - PopupWidget *audioPopup; + DocumentPopupWidget *glPopup; + DocumentPopupWidget *audioPopup; Instance(Public *i) : Base(i) { // Popup with GL info. - glPopup = new PopupWidget; - glPopup->useInfoStyle(); - DocumentWidget *doc = new DocumentWidget; - doc->setText(Sys_GLDescription()); - glPopup->setContent(doc); + glPopup = new DocumentPopupWidget; + glPopup->document().setText(Sys_GLDescription()); self.add(glPopup); // Popup with audio info. - audioPopup = new PopupWidget; - audioPopup->useInfoStyle(); - doc = new DocumentWidget; - doc->setText(AudioDriver_InterfaceDescription()); - audioPopup->setContent(doc); + audioPopup = new DocumentPopupWidget; + audioPopup->document().setText(AudioDriver_InterfaceDescription()); self.add(audioPopup); } }; @@ -111,21 +104,11 @@ AboutDialog::AboutDialog() : DialogWidget("about"), d(new Instance(this)) buttons() << new DialogButtonItem(DialogWidget::Accept | DialogWidget::Default, tr("Close")) - << new DialogButtonItem(DialogWidget::Action, tr("GL"), new SignalAction(this, SLOT(showGLInfo()))) - << new DialogButtonItem(DialogWidget::Action, tr("Audio"), new SignalAction(this, SLOT(showAudioInfo()))) + << new DialogButtonItem(DialogWidget::Action, tr("GL"), new SignalAction(d->glPopup, SLOT(open()))) + << new DialogButtonItem(DialogWidget::Action, tr("Audio"), new SignalAction(d->audioPopup, SLOT(open()))) << new DialogButtonItem(DialogWidget::Action, tr("Homepage..."), new SignalAction(&ClientApp::app(), SLOT(openHomepageInBrowser()))); // The popups are anchored to their button. d->glPopup->setAnchorAndOpeningDirection(buttonWidget(tr("GL")).rule(), ui::Up); d->audioPopup->setAnchorAndOpeningDirection(buttonWidget(tr("Audio")).rule(), ui::Up); } - -void AboutDialog::showGLInfo() -{ - d->glPopup->open(); -} - -void AboutDialog::showAudioInfo() -{ - d->audioPopup->open(); -} diff --git a/doomsday/client/src/ui/dialogs/multiplayerdialog.cpp b/doomsday/client/src/ui/dialogs/multiplayerdialog.cpp index a3ef7bc167..2c4ba07159 100644 --- a/doomsday/client/src/ui/dialogs/multiplayerdialog.cpp +++ b/doomsday/client/src/ui/dialogs/multiplayerdialog.cpp @@ -28,7 +28,7 @@ #include #include #include -#include +#include #include using namespace de; @@ -75,8 +75,7 @@ DENG_GUI_PIMPL(MultiplayerDialog) ButtonWidget *extra; ButtonWidget *join; QScopedPointer layout; - PopupWidget *popup; - DocumentWidget *info; + DocumentPopupWidget *info; struct JoinAction : public Action { @@ -147,14 +146,12 @@ DENG_GUI_PIMPL(MultiplayerDialog) rule().setSize(layout->width(), title->rule().height()); // Extra info popup. - popup = new PopupWidget; - popup->useInfoStyle(); - popup->setContent(info = new DocumentWidget); - info->setMaximumLineWidth(style().rules().rule("dialog.multiplayer.width").valuei()); - popup->setAnchorAndOpeningDirection(extra->rule(), ui::Up); - add(popup); - - extra->setAction(new SignalAction(popup, SLOT(open()))); + info = new DocumentPopupWidget; + info->document().setMaximumLineWidth(style().rules().rule("dialog.multiplayer.width").valuei()); + info->setAnchorAndOpeningDirection(extra->rule(), ui::Up); + add(info); + + extra->setAction(new SignalAction(info, SLOT(open()))); } void updateFromItem(ServerListItem const &item) @@ -187,13 +184,14 @@ DENG_GUI_PIMPL(MultiplayerDialog) // Extra information. #define TABBED(A, B) _E(Ta)_E(l) " " A _E(.) " " _E(\t) B "\n" - info->setText(String(_E(b) "%1" _E(.) "\n%2\n" _E(T`) - TABBED("Joinable:", "%5") - TABBED("Players:", "%3 / %4%13") - TABBED("Game:", "%9\n%10\n%12 %11") - TABBED("PWADs:", "%14") - TABBED("Address:", "%6:%7") - TABBED("Ping:", "%8 ms (approx)")) + info->document() + .setText(String(_E(b) "%1" _E(.) "\n%2\n" _E(T`) + TABBED("Joinable:", "%5") + TABBED("Players:", "%3 / %4%13") + TABBED("Game:", "%9\n%10\n%12 %11") + TABBED("PWADs:", "%14") + TABBED("Address:", "%6:%7") + TABBED("Ping:", "%8 ms (approx)")) .arg(sv.name) .arg(sv.description) .arg(sv.numPlayers)