Skip to content

Commit

Permalink
Merge branch 'master' into gl2-model
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Apr 10, 2014
2 parents a174bdc + 653c046 commit d25f3f1
Show file tree
Hide file tree
Showing 23 changed files with 430 additions and 245 deletions.
2 changes: 1 addition & 1 deletion doomsday/client/data/defaultstyle.pack/rules.dei
Expand Up @@ -21,7 +21,7 @@ group document {
}

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

Expand Down
4 changes: 0 additions & 4 deletions doomsday/client/include/network/masterserver.h
Expand Up @@ -103,8 +103,4 @@ void N_MasterRequestList(void);
*/
int N_MasterGet(int index, serverinfo_t *info);

extern char *masterAddress;
extern int masterPort;
extern char *masterPath;

#endif // LIBDENG_MASTER_SERVER_H
4 changes: 4 additions & 0 deletions doomsday/client/modules/appconfig.de
Expand Up @@ -72,5 +72,9 @@ def setDefaults(d)
record d.console
d.console.snap = True
d.console.script = False

# Master server settings.
record d.masterServer
d.masterServer.apiUrl = "www.dengine.net/master.php"
end

18 changes: 9 additions & 9 deletions doomsday/client/src/network/masterserver.cpp
Expand Up @@ -36,6 +36,10 @@
#include "con_main.h"
#include "m_misc.h"

#include <de/App>

using namespace de;

// Maximum time allowed time for a master server operation to take (seconds).
#define RESPONSE_TIMEOUT 15

Expand All @@ -44,18 +48,14 @@ typedef struct job_s {
void* data;
} job_t;

// Master server info. Hardcoded defaults.
char* masterAddress = const_cast<char*>("www.dengine.net"); /// @todo refactor cvars
int masterPort = 0; // Defaults to port 80.
char* masterPath = const_cast<char*>("/master.php"); /// @todo refactor cvars
dd_bool masterAware = false;
static String const DEFAULT_API_URL = "www.dengine.net/master.php";

dd_bool masterAware = false; // cvar

static QString masterUrl(const char* suffix = 0)
{
QString u = QString("http://%1:%2%3")
.arg(masterAddress)
.arg(masterPort? masterPort : 80)
.arg(masterPath);
String u = App::config().gets("masterServer.apiUrl", DEFAULT_API_URL);
if(!u.startsWith("http")) u = "http://" + u;
if(suffix) u += suffix;
return u;
}
Expand Down
6 changes: 3 additions & 3 deletions doomsday/client/src/network/net_main.cpp
Expand Up @@ -156,9 +156,9 @@ void Net_Register(void)
C_VAR_FLOAT("net-dev-latency", &netSimulatedLatencySeconds, CVF_NO_MAX, 0, 0);
#endif
//C_VAR_BYTE("net-nosleep", &netDontSleep, 0, 0, 1);
C_VAR_CHARPTR("net-master-address", &masterAddress, 0, 0, 0);
C_VAR_INT("net-master-port", &masterPort, 0, 0, 65535);
C_VAR_CHARPTR("net-master-path", &masterPath, 0, 0, 0);
//C_VAR_CHARPTR("net-master-address", &masterAddress, 0, 0, 0);
//C_VAR_INT("net-master-port", &masterPort, 0, 0, 65535);
//C_VAR_CHARPTR("net-master-path", &masterPath, 0, 0, 0);
C_VAR_CHARPTR("net-name", &playerName, 0, 0, 0);

#ifdef __CLIENT__
Expand Down
20 changes: 5 additions & 15 deletions doomsday/client/src/ui/dialogs/networksettingsdialog.cpp
Expand Up @@ -20,35 +20,29 @@
#include "ui/widgets/cvarsliderwidget.h"
#include "ui/widgets/cvartogglewidget.h"
#include "ui/widgets/cvarchoicewidget.h"
#include "ui/widgets/cvarlineeditwidget.h"

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

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

using namespace de;
using namespace ui;

DENG_GUI_PIMPL(NetworkSettingsDialog)
{
CVarLineEditWidget *masterUrl;
CVarLineEditWidget *masterPath;
CVarSliderWidget *masterPort;
VariableLineEditWidget *masterApi;
GridPopupWidget *devPopup;
CVarToggleWidget *devInfo;

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

area.add(masterUrl = new CVarLineEditWidget("net-master-address"));
area.add(masterPath = new CVarLineEditWidget("net-master-path"));
area.add(masterPort = new CVarSliderWidget("net-master-port"));

masterPort->setMinLabel(tr("80"));
area.add(masterApi = new VariableLineEditWidget(App::config()["masterServer.apiUrl"]));

// Developer options.
self.add(devPopup = new GridPopupWidget);
Expand Down Expand Up @@ -76,17 +70,13 @@ NetworkSettingsDialog::NetworkSettingsDialog(String const &name)

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

LabelWidget *masterUrlLabel = LabelWidget::newWithText(tr("Master URL:"), &area());
LabelWidget *masterPathLabel = LabelWidget::newWithText(tr("Master Path:"), &area());
LabelWidget *masterPortLabel = LabelWidget::newWithText(tr("Master Port:"), &area());
LabelWidget *masterApiLabel = LabelWidget::newWithText(tr("Master API URL:"), &area());

// Layout.
GridLayout layout(area().contentRule().left(), area().contentRule().top());
layout.setGridSize(2, 0);
layout.setColumnAlignment(0, ui::AlignRight);
layout << *masterUrlLabel << *d->masterUrl
<< *masterPathLabel << *d->masterPath
<< *masterPortLabel << *d->masterPort;
layout << *masterApiLabel << *d->masterApi;

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

Expand Down
3 changes: 2 additions & 1 deletion doomsday/client/src/ui/dialogs/renderersettingsdialog.cpp
Expand Up @@ -53,7 +53,7 @@ DENG_GUI_PIMPL(RendererSettingsDialog)
ScrollAreaWidget &area = self.area();

area.add(appear = new ProfilePickerWidget(ClientApp::renderSystem().appearanceSettings(),
tr("appearance")));
tr("appearance"), "profile-picker"));
appear->setOpeningDirection(ui::Down);

area.add(fov = new CVarSliderWidget("rend-camera-fov"));
Expand Down Expand Up @@ -122,6 +122,7 @@ RendererSettingsDialog::RendererSettingsDialog(String const &name)
heading().setText(tr("Renderer Settings"));

LabelWidget *appearLabel = LabelWidget::newWithText(tr("Appearance:"), &area());
appearLabel->setName("appearance-label"); // for lookup from tutorial
LabelWidget *fovLabel = LabelWidget::newWithText(tr("Field of View:"), &area());

LabelWidget *precacheLabel = LabelWidget::newWithText(tr("Precaching:"), &area());
Expand Down
2 changes: 1 addition & 1 deletion doomsday/client/src/ui/widgets/gameselectionwidget.cpp
Expand Up @@ -306,7 +306,7 @@ DENG_GUI_PIMPL(GameSelectionWidget)
}
else
{
order << saved << multi << available << incomplete;
order << multi << available << saved << incomplete;
}

updateSubsetVisibility();
Expand Down
63 changes: 60 additions & 3 deletions doomsday/client/src/ui/widgets/tutorialwidget.cpp
Expand Up @@ -26,6 +26,7 @@
#include <de/MessageDialog>
#include <de/SignalAction>
#include <de/Untrapper>
#include <de/PopupMenuWidget>

using namespace de;

Expand All @@ -38,12 +39,12 @@ DENG_GUI_PIMPL(TutorialWidget)
TaskBar,
DEMenu,
ConfigMenus,
RendererAppearance,
ConsoleKey,
Finish
};

Step current;
//LabelWidget *darken;
MessageDialog *dlg;
LabelWidget *highlight;
QTimer flashing;
Expand Down Expand Up @@ -81,7 +82,7 @@ DENG_GUI_PIMPL(TutorialWidget)
void startHighlight(GuiWidget const &w)
{
highlight->rule().setRect(w.rule());
highlight->setOpacity(.2f);
highlight->setOpacity(0);
highlight->show();
flashing.start();
flash();
Expand Down Expand Up @@ -114,15 +115,44 @@ DENG_GUI_PIMPL(TutorialWidget)
win.taskBar().closeConfigMenu();
break;

case RendererAppearance:
win.taskBar().closeConfigMenu();
break;

default:
break;
}
}

/**
* Checks if step @a s is valid for the current engine state and if not,
* skips to the next valid state.
*
* @param s Current step.
*/
void validateStep(Step &s)
{
forever
{
if(!App_GameLoaded())
{
if(s == RendererAppearance)
{
s = Step(s + 1);
continue;
}
}
break;
}
}

void initStep(Step s)
{
deinitStep();

// Jump to the next valid step, if necessary.
validateStep(s);

if(s == Finish)
{
self.stop();
Expand Down Expand Up @@ -198,13 +228,34 @@ DENG_GUI_PIMPL(TutorialWidget)
startHighlight(*root().guiFind("conf-button"));
break;

case RendererAppearance:
dlg->title().setText(tr("Appearance"));
dlg->message().setText(tr("By default Doomsday applies many visual "
"embellishments to how the game world appears. These "
"can be configured individually in the Renderer "
"Appearance editor, or you can use one of the built-in "
"default profiles: %1, %2, or %3.")
.arg(_E(b) "Defaults" _E(.))
.arg(_E(b) "Vanilla" _E(.))
.arg(_E(b) "Amplified" _E(.)));
win.taskBar().openConfigMenu();
win.root().guiFind("conf-menu")->as<PopupMenuWidget>().menu()
.organizer().itemWidget(tr("Renderer"))->as<ButtonWidget>().trigger();
dlg->setAnchorAndOpeningDirection(
win.root().guiFind("renderersettings")->find("appearance-label")
->as<LabelWidget>().rule(), ui::Left);
startHighlight(*root().guiFind("profile-picker"));
break;

case ConsoleKey: {
dlg->title().setText(tr("Console"));
String msg = tr("The console is a \"Quake style\" command line prompt where "
"you enter commands and change variable values. To get started, "
"try typing %1 in the console.").arg(_E(b) "help" _E(.));
if(App_GameLoaded())
{
// Event bindings are currently stored per-game, so we can't set a
// binding unless a game is loaded.
msg += "\n\nBelow you can see the current keyboard shortcut for accessing the console quickly. "
"To change it, click in the box and then press the key or key combination you "
"want to assign as the shortcut.";
Expand All @@ -225,7 +276,13 @@ DENG_GUI_PIMPL(TutorialWidget)
break;
}

self.root().addOnTop(dlg);
GuiRootWidget &root = self.root();

// Keep the tutorial above any dialogs etc. that might've been opened.
root.remove(self);
root.addOnTop(&self);

root.addOnTop(dlg);
dlg->open();
}
};
Expand Down
2 changes: 2 additions & 0 deletions doomsday/libappfw/include/de/VariableLineEditWidget
@@ -0,0 +1,2 @@
#include "widgets/variablelineeditwidget.h"

56 changes: 56 additions & 0 deletions doomsday/libappfw/include/de/widgets/variablelineeditwidget.h
@@ -0,0 +1,56 @@
/** @file variablelineeditwidget.h Edits the text of a variable.
*
* @authors Copyright (c) 2014 Jaakko Keränen <jaakko.keranen@iki.fi>
*
* @par License
* LGPL: http://www.gnu.org/licenses/lgpl.html
*
* <small>This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 3 of the License, or (at your
* option) any later version. This program is distributed in the hope that it
* will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
* General Public License for more details. You should have received a copy of
* the GNU Lesser General Public License along with this program; if not, see:
* http://www.gnu.org/licenses</small>
*/

#ifndef LIBAPPFW_VARIABLELINEEDITWIDGET_H
#define LIBAPPFW_VARIABLELINEEDITWIDGET_H

#include <de/Variable>

#include "../LineEditWidget"

namespace de {

/**
* Widget for editing the value of a text variable.
*/
class LIBAPPFW_PUBLIC VariableLineEditWidget : public LineEditWidget
{
Q_OBJECT

public:
/// Thrown when the variable is gone and someone tries to access it. @ingroup errors
DENG2_ERROR(VariableMissingError);

public:
VariableLineEditWidget(Variable &variable, String const &name = "");

Variable &variable() const;

public slots:
void updateFromVariable();

protected slots:
void setVariableFromWidget();

private:
DENG2_PRIVATE(d)
};

} // namespace de

#endif // LIBAPPFW_VARIABLELINEEDITWIDGET_H
3 changes: 3 additions & 0 deletions doomsday/libappfw/libappfw.pro
Expand Up @@ -81,6 +81,7 @@ publicHeaders(root, \
include/de/WindowSystem \
include/de/WindowTransform \
include/de/VariableChoiceWidget \
include/de/VariableLineEditWidget \
include/de/VariableToggleWidget \
include/de/VRConfig \
\
Expand Down Expand Up @@ -170,6 +171,7 @@ publicHeaders(widgets, \
include/de/widgets/tabwidget.h \
include/de/widgets/togglewidget.h \
include/de/widgets/variablechoicewidget.h \
include/de/widgets/variablelineeditwidget.h \
include/de/widgets/variabletogglewidget.h \
)

Expand Down Expand Up @@ -231,6 +233,7 @@ SOURCES += \
src/widgets/tabwidget.cpp \
src/widgets/togglewidget.cpp \
src/widgets/variablechoicewidget.cpp \
src/widgets/variablelineeditwidget.cpp \
src/widgets/variabletogglewidget.cpp \
src/windowsystem.cpp \
src/windowtransform.cpp
Expand Down

0 comments on commit d25f3f1

Please sign in to comment.