Skip to content

Commit

Permalink
Shell: Improved widget layout; opening Help in browser
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Sep 12, 2019
1 parent 34751eb commit d8f32ee
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 17 deletions.
31 changes: 22 additions & 9 deletions doomsday/tools/shell/src/guishellapp.cpp
Expand Up @@ -39,6 +39,7 @@ using namespace de;
using namespace network;

DE_PIMPL(GuiShellApp)
, DE_OBSERVES(ServerFinder, Update)
{
ServerFinder finder;

Expand All @@ -53,20 +54,38 @@ DE_PIMPL(GuiShellApp)
// QList<LinkWindow *> windows;
Hash<int, LocalServer *> localServers; // port as key
Timer localCheckTimer;
ui::ListDataT<ui::ActionItem> localServerMenuItems;

Preferences *prefs;

Impl(Public *i) : Base(i), prefs(nullptr)
{
localCheckTimer.setInterval(1.0_s);
localCheckTimer.setSingleShot(false);

finder.audienceForUpdate() += this;
}

~Impl()
~Impl() override
{
self().glDeinit();
}

void foundServersUpdated() override
{
DE_ASSERT(inMainThread());

const auto found = finder.foundServers();

// Add new servers.
for (const auto &sv : found)
{

}

// Remove servers that are not present.
}

void loadAllShaders()
{
// Load all the shader program definitions.
Expand Down Expand Up @@ -352,12 +371,12 @@ void GuiShellApp::aboutShell()

void GuiShellApp::showHelp()
{
// QDesktopServices::openUrl(QUrl(tr("http://wiki.dengine.net/w/Shell_Help")));
openBrowserUrl("https://manual.dengine.net/multiplayer/shell_help");
}

void GuiShellApp::openWebAddress(const String &url)
{
// QDesktopServices::openUrl(QUrl(url));
openBrowserUrl(url);
}

void GuiShellApp::showPreferences()
Expand All @@ -384,12 +403,6 @@ void GuiShellApp::showPreferences()
// }
}

void GuiShellApp::preferencesDone()
{
// d->prefs->deleteLater();
// d->prefs = 0;
}

void GuiShellApp::updateMenu()
{
#ifdef MACOSX
Expand Down
1 change: 0 additions & 1 deletion doomsday/tools/shell/src/guishellapp.h
Expand Up @@ -53,7 +53,6 @@ class GuiShellApp : public de::BaseGuiApp
void showHelp();
void openWebAddress(const de::String &address);
void showPreferences();
void preferencesDone();
void updateMenu();

DE_AUDIENCE(LocalServerStop, void localServerStopped(int port))
Expand Down
15 changes: 9 additions & 6 deletions doomsday/tools/shell/src/linkwindow.cpp
Expand Up @@ -256,6 +256,7 @@ DE_PIMPL(LinkWindow)
<< new ui::ActionItem("New Local Server...", []() { GuiShellApp::app().startLocalServer(); })
<< new ui::ActionItem("Stop Server", [this]() { self().stopServer(); })
<< new ui::ActionItem("Preferences...", []() { GuiShellApp::app().showPreferences(); })
<< new ui::ActionItem("Help...", [](){ GuiShellApp::app().showHelp(); })
<< new ui::ActionItem("About Doomsday Shell", [](){ GuiShellApp::app().aboutShell(); })
<< new ui::ActionItem("Quit", []() { GuiShellApp::app().quit(0); });
auto *menuButton = &root.addNew<PopupButtonWidget>();
Expand All @@ -281,20 +282,22 @@ DE_PIMPL(LinkWindow)
style.fonts().font("monospace").ascent());
timeCounter->set(GuiWidget::Background(Vec4f(1, 0, 0, 1)));

statusMessage->setText("Status message");
//statusMessage->setText("Status message");
statusMessage->set(GuiWidget::Background(Vec4f(0, 0, 1, 1)));
gameStatus->setText("game");
currentHost->setText("localhost");
//gameStatus->setText("");
//currentHost->setText("localhost");

SequentialLayout layout(statusBar->rule().left(), statusBar->rule().top(), ui::Right);
SequentialLayout layout(menuButton->rule().left(), statusBar->rule().top(), ui::Left);

for (auto *label : {statusMessage, gameStatus, timeCounter, currentHost})
for (auto *label : {timeCounter, currentHost, gameStatus, statusMessage})
{
label->setSizePolicy(ui::Expand, ui::Fixed);
label->rule().setInput(Rule::Height, statusHeight);
statusBar->add(label);
layout << *label;
}
statusMessage->setSizePolicy(ui::Fixed, ui::Fixed);
statusMessage->rule().setInput(Rule::Left, statusBar->rule().left());

statusBar->rule()
.setInput(Rule::Left, root.viewLeft())
Expand Down Expand Up @@ -809,7 +812,7 @@ void LinkWindow::closeConnection()
d->link->audienceForDisconnected() += [this](){ disconnected(); };

delete d->link;
d->link = 0;
d->link = nullptr;

// emit linkClosed(this);
}
Expand Down
2 changes: 1 addition & 1 deletion doomsday/tools/shell/src/opendialog.cpp
Expand Up @@ -215,7 +215,7 @@ void OpenDialog::updateLocalList(bool autoselect)
// Update the list of servers.
for (const auto &sv : found)
{
String label = Stringf("%s (%s; %d/%d)",
String label = Stringf("%s - %s (%d/%d)",
sv.first.c_str(),
finder.name(sv.second).left(CharPos(20)).c_str(),
finder.playerCount(sv.second),
Expand Down

0 comments on commit d8f32ee

Please sign in to comment.