Skip to content

Commit

Permalink
UI|Client: Working on network settings and the multiplayer dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Feb 1, 2014
1 parent 723a512 commit 40cd9fe
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 18 deletions.
1 change: 1 addition & 0 deletions doomsday/client/data/defaultstyle.pack/rules.dei
Expand Up @@ -21,6 +21,7 @@ group document {
}

group editor {
rule width { constant $= UNIT * 55 }
rule completion.height { constant $= UNIT * 100 }
}

Expand Down
1 change: 1 addition & 0 deletions doomsday/client/include/ui/dialogs/networksettingsdialog.h
Expand Up @@ -33,6 +33,7 @@ class NetworkSettingsDialog : public de::DialogWidget

public slots:
void resetToDefaults();
void showDeveloperPopup();

private:
DENG2_PRIVATE(d)
Expand Down
23 changes: 13 additions & 10 deletions doomsday/client/src/ui/dialogs/multiplayerdialog.cpp
Expand Up @@ -23,6 +23,7 @@
#include "con_main.h"
#include "CommandAction"
#include "ui/widgets/taskbarwidget.h"
#include "ui/dialogs/networksettingsdialog.h"

#include <de/charsymbols.h>
#include <de/SignalAction>
Expand All @@ -37,11 +38,14 @@ DENG_GUI_PIMPL(MultiplayerDialog)
, DENG2_OBSERVES(ServerLink, DiscoveryUpdate)
, public ChildWidgetOrganizer::IWidgetFactory
{
static String hostId(serverinfo_t const &sv)
{
static ServerLink &link() { return ClientApp::serverLink(); }
static String hostId(serverinfo_t const &sv) {
return String("%1:%2").arg(sv.address).arg(sv.port);
}

/**
* Data item with information about a found server.
*/
class ServerListItem : public ui::Item
{
public:
Expand Down Expand Up @@ -254,11 +258,6 @@ DENG_GUI_PIMPL(MultiplayerDialog)
}
}
}

static ServerLink &link()
{
return ClientApp::serverLink();
}
};

MultiplayerDialog::MultiplayerDialog(String const &name)
Expand All @@ -277,12 +276,16 @@ MultiplayerDialog::MultiplayerDialog(String const &name)
area().setContentSize(layout.width(), layout.height());

buttons()
<< new DialogButtonItem(DialogWidget::Default | DialogWidget::Accept, tr("Close"))
<< new DialogButtonItem(DialogWidget::Action, style().images().image("gear"),
<< new DialogButtonItem(Default | Accept, tr("Close"))
<< new DialogButtonItem(Action | Id1,
style().images().image("gear"),
new SignalAction(this, SLOT(showSettings())));
}

void MultiplayerDialog::showSettings()
{

NetworkSettingsDialog *dlg = new NetworkSettingsDialog;
dlg->setAnchorAndOpeningDirection(buttonWidget(Id1)->rule(), ui::Up);
dlg->setDeleteAfterDismissed(true);
dlg->exec(root());
}
36 changes: 29 additions & 7 deletions doomsday/client/src/ui/dialogs/networksettingsdialog.cpp
Expand Up @@ -20,24 +20,35 @@
#include "ui/widgets/cvarsliderwidget.h"
#include "ui/widgets/cvartogglewidget.h"
#include "ui/widgets/cvarchoicewidget.h"
#include "ui/widgets/cvarlineeditwidget.h"

#include "de_audio.h"
#include "con_main.h"

#include <de/SignalAction>
#include <de/GridPopupWidget>

using namespace de;
using namespace ui;

DENG_GUI_PIMPL(NetworkSettingsDialog)
{
CVarLineEditWidget *masterUrl;
GridPopupWidget *devPopup;
CVarToggleWidget *devInfo;

Instance(Public *i) : Base(i)
{
ScrollAreaWidget &area = self.area();

area.add(devInfo = new CVarToggleWidget("net-dev"));
area.add(masterUrl = new CVarLineEditWidget("net-master-address"));
masterUrl->rule().setInput(Rule::Width, style().rules().rule("editor.width"));

// Developer options.
self.add(devPopup = new GridPopupWidget);
devPopup->layout().setGridSize(1, 0);
*devPopup << (devInfo = new CVarToggleWidget("net-dev"));
devPopup->commit();
}

void fetch()
Expand All @@ -53,18 +64,24 @@ NetworkSettingsDialog::NetworkSettingsDialog(String const &name)

d->devInfo->setText(tr("Developer Info"));

LabelWidget *masterUrlLabel = LabelWidget::newWithText(tr("Master URL:"), &area());

// Layout.
GridLayout layout(area().contentRule().left(), area().contentRule().top());
layout.setGridSize(1, 0);
//layout.setColumnAlignment(0, ui::AlignRight);
layout << *d->devInfo;
layout.setGridSize(2, 0);
layout.setColumnAlignment(0, ui::AlignRight);
layout << *masterUrlLabel << *d->masterUrl;

area().setContentSize(layout.width(), layout.height());

buttons()
<< new DialogButtonItem(DialogWidget::Default | DialogWidget::Accept, tr("Close"))
<< new DialogButtonItem(DialogWidget::Action, tr("Reset to Defaults"),
new SignalAction(this, SLOT(resetToDefaults())));
<< new DialogButtonItem(Default | Accept, tr("Close"))
<< new DialogButtonItem(Action, tr("Reset to Defaults"),
new SignalAction(this, SLOT(resetToDefaults())))
<< new DialogButtonItem(Action | Id1, style().images().image("gauge"),
new SignalAction(this, SLOT(showDeveloperPopup())));

d->devPopup->setAnchorAndOpeningDirection(buttonWidget(Id1)->rule(), ui::Up);

d->fetch();
}
Expand All @@ -75,3 +92,8 @@ void NetworkSettingsDialog::resetToDefaults()

d->fetch();
}

void NetworkSettingsDialog::showDeveloperPopup()
{
d->devPopup->open();
}
2 changes: 1 addition & 1 deletion doomsday/client/src/ui/widgets/taskbarwidget.cpp
Expand Up @@ -403,7 +403,7 @@ TaskBarWidget::TaskBarWidget() : GuiWidget("taskbar"), d(new Instance(this))
<< new ui::SubwidgetItem(style().images().image("updater"), tr("Updater"), ui::Left, makeUpdaterSettings);

d->mainMenu->items()
<< new ui::SubwidgetItem(tr("Multiplayer Games..."), ui::Left, makePopup<MultiplayerDialog>)
<< new ui::SubwidgetItem(tr("Multiplayer Games"), ui::Left, makePopup<MultiplayerDialog>)
<< new ui::Item(ui::Item::Separator)
<< new ui::ActionItem(tr("Check for Updates..."), new CommandAction("updateandnotify"))
<< new ui::ActionItem(tr("About Doomsday"), new SignalAction(this, SLOT(showAbout())))
Expand Down

0 comments on commit 40cd9fe

Please sign in to comment.