Skip to content

Commit

Permalink
Shell: Working on the server start dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Sep 4, 2019
1 parent 858d1e9 commit 35dcc59
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 22 deletions.
23 changes: 12 additions & 11 deletions doomsday/tools/shell/src/guishellapp.cpp
Expand Up @@ -268,29 +268,30 @@ void GuiShellApp::startLocalServer()
}
#endif
auto *win = d->winSys->focusedWindow();
LocalServerDialog dlg;
if (dlg.exec(win->root()))
auto *dlg = new LocalServerDialog;
dlg->setDeleteAfterDismissed(true);
if (dlg->exec(win->root()))
{
StringList opts = dlg.additionalOptions();
StringList opts = dlg->additionalOptions();
if (!Preferences::iwadFolder().isEmpty())
{
opts << "-iwad" << Preferences::iwadFolder();
}

auto *sv = new LocalServer;
sv->setApplicationPath(Config::get().gets("Preferences.appFolder"));
if (!dlg.name().isEmpty())
if (!dlg->name().isEmpty())
{
sv->setName(dlg.name());
sv->setName(dlg->name());
}
sv->start(dlg.port(),
dlg.gameMode(),
sv->start(dlg->port(),
dlg->gameMode(),
opts,
dlg.runtimeFolder());
d->localServers[dlg.port()] = sv;
dlg->runtimeFolder());
d->localServers[dlg->port()] = sv;

newOrReusedConnectionWindow()->waitForLocalConnection
(dlg.port(), sv->errorLogPath(), dlg.name());
newOrReusedConnectionWindow()->waitForLocalConnection(
dlg->port(), sv->errorLogPath(), dlg->name());
}
}
catch (const Error &er)
Expand Down
4 changes: 3 additions & 1 deletion doomsday/tools/shell/src/linkwindow.cpp
Expand Up @@ -106,8 +106,10 @@ DE_PIMPL(LinkWindow)
waitTimeout.setInterval(1.0);

auto *keys = new KeyActions;
keys->add(KeyEvent(KeyEvent::Pressed, ',', 0, 0, "", KeyEvent::Control),
keys->add(KeyEvent::press(',', KeyEvent::Command),
[]() { GuiShellApp::app().showPreferences(); });
keys->add(KeyEvent::press('n', KeyEvent::Command),
[]() { GuiShellApp::app().startLocalServer(); });
root.add(keys);
}

Expand Down
26 changes: 16 additions & 10 deletions doomsday/tools/shell/src/localserverdialog.cpp
Expand Up @@ -81,7 +81,7 @@ DE_GUI_PIMPL(LocalServerDialog)
form->addRow(0, opt);*/

port = &area.addNew<LineEditWidget>();
port->rule().setInput(Rule::Width, rule("unit") * 50);
port->rule().setInput(Rule::Width, rule("unit") * 25);
port->setText(String::asText(cfg.getui("LocalServer.port", DEFAULT_PORT)));

/*
Expand All @@ -108,23 +108,25 @@ DE_GUI_PIMPL(LocalServerDialog)
portMsg->hide();
// form->addRow(tr("TCP port:"), hb);
auto *tcpLabel = LabelWidget::newWithText("TCP Port:", &area);
layout << *tcpLabel << *port
<< tcpLabel->rule().width() << *portMsg;
layout << *tcpLabel << *port;
portMsg->rule().setLeftTop(port->rule().right(), port->rule().top());

announce = &area.addNew<ToggleWidget>();
announce->setText("Public server: visible to all");
announce->setActive(cfg.getb("LocalServer.announce", false));
layout << Const(0) << *announce;

password = &area.addNew<LineEditWidget>();
password->rule().setInput(Rule::Width, rule("unit") * 80);
password->rule().setInput(Rule::Width, rule("unit") * 50);
password->setText(cfg.gets("LocalServer.password", ""));

passwordMsg = &area.addNew<LabelWidget>();
passwordMsg->setTextColor("accent");
passwordMsg->hide();
layout << *LabelWidget::newWithText("Shell Password:", &area) << *password
<< Const(0) << *passwordMsg;
layout << *LabelWidget::newWithText("Shell Password:", &area) << *password;
passwordMsg->rule().setLeftTop(password->rule().right(), password->rule().top());

ButtonWidget *foldButton;

// Fold panel for advanced settings.
{
Expand All @@ -137,6 +139,7 @@ DE_GUI_PIMPL(LocalServerDialog)
adLayout.setColumnAlignment(0, ui::AlignRight);

runtime = &content->addNew<FolderSelection>("Select Runtime Folder");
runtime->rule().setInput(Rule::Width, width);
runtime->setPath(cfg.gets("LocalServer.runtime", ""));
if (runtime->path().isEmpty())
{
Expand All @@ -153,16 +156,19 @@ DE_GUI_PIMPL(LocalServerDialog)
<< *options;

content->rule().setSize(adLayout);

auto *foldButton = advanced->makeTitle("Advanced Options");
foldButton = advanced->makeTitle("Advanced Options");
foldButton->setFont("separator.label");
foldButton->rule().setInput(Rule::Right, rect.right());
area.add(foldButton);

layout.append(*foldButton, 2);
foldButton->rule().setLeftTop(rect.left(), password->rule().bottom());
advanced->rule().setLeftTop(foldButton->rule().left(),
foldButton->rule().bottom());
}

area.setContentSize(layout.width(), layout.height() + advanced->rule().height());
area.setContentSize(layout.width(),
layout.height() + foldButton->rule().height() +
advanced->rule().height());
}

int portNumber() const
Expand Down

0 comments on commit 35dcc59

Please sign in to comment.