qmlFrontend/qml/qmlFrontend/main.qml
author unc0rr
Mon, 30 Nov 2015 23:25:18 +0300
branchqmlfrontend
changeset 11434 23912c93935a
parent 11426 ab6a6d9ebfc0
permissions -rw-r--r--
- Implement engine runs queue - Many small improvements
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10402
3313336c1ee0 Let's get it started
unc0rr
parents:
diff changeset
     1
import QtQuick 2.0
11415
05cf35103206 Lobby page with chat widget(readonly)
unc0rr
parents: 10896
diff changeset
     2
import Hedgewars.Engine 1.0
10402
3313336c1ee0 Let's get it started
unc0rr
parents:
diff changeset
     3
3313336c1ee0 Let's get it started
unc0rr
parents:
diff changeset
     4
Rectangle {
10422
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
     5
    id: pages
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
     6
    width: 800
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
     7
    height: 600
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
     8
11424
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
     9
    property variant pagesList : [
10422
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    10
        "First"
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    11
        , "LocalGame"
11426
ab6a6d9ebfc0 Small ui rework
unc0rr
parents: 11424
diff changeset
    12
        , "Multiplayer"
10896
5a74923120d5 Start network support: only setting up a connection for now
unc0rr
parents: 10422
diff changeset
    13
        , "Connect"
11424
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    14
        , "Lobby"
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    15
        , "Room"
10422
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    16
    ];
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    17
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    18
    property string  currentPage : "First";
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    19
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    20
    Repeater {
11424
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    21
        id: pagesView
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    22
        model: pagesList
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    23
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    24
        function loadPage(page) {
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    25
            // somehow load the page (when Loader has asynchronous == true)
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    26
        }
10402
3313336c1ee0 Let's get it started
unc0rr
parents:
diff changeset
    27
10422
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    28
        delegate: Loader {
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    29
            active: false
11424
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    30
            asynchronous: false
10422
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    31
            anchors.fill: parent
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    32
            visible: (currentPage === modelData)
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    33
            source: "%1.qml".arg(modelData)
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    34
            onVisibleChanged:      loadIfNotLoaded();
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    35
            Component.onCompleted: loadIfNotLoaded();
10402
3313336c1ee0 Let's get it started
unc0rr
parents:
diff changeset
    36
10422
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    37
            function loadIfNotLoaded ()
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    38
            {
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    39
                if (visible && !active)
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    40
                    active = true;
4cf23d4c7624 - Pages
unc0rr
parents: 10420
diff changeset
    41
            }
10420
unc0rr
parents: 10402
diff changeset
    42
        }
10402
3313336c1ee0 Let's get it started
unc0rr
parents:
diff changeset
    43
    }
11415
05cf35103206 Lobby page with chat widget(readonly)
unc0rr
parents: 10896
diff changeset
    44
11423
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    45
    Rectangle {
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    46
        id: warningsBox
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    47
        y: parent.height - height
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    48
        width: parent.width - 120
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    49
        height: 80
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    50
        anchors.horizontalCenter: parent.horizontalCenter
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    51
        color: "#7e3232"
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    52
        border.color: "#d3ec2d"
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    53
        visible: false
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    54
        z: 2
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    55
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    56
        function showMessage(message) {
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    57
            msgBox.text = message
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    58
            visible = true
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    59
        }
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    60
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    61
        Text {
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    62
            id: msgBox
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    63
            x: 0
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    64
            y: 0
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    65
            height: parent.height
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    66
            font.pixelSize: 12
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    67
            wrapMode: Text.Wrap
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    68
        }
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    69
        HWButton {
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    70
            id: closeButton
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    71
            x: parent.width - width
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    72
            y: 0
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    73
            width: 40
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    74
            height: 40
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    75
            onClicked: warningsBox.visible = false
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    76
        }
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    77
    }
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    78
11415
05cf35103206 Lobby page with chat widget(readonly)
unc0rr
parents: 10896
diff changeset
    79
    Connections {
05cf35103206 Lobby page with chat widget(readonly)
unc0rr
parents: 10896
diff changeset
    80
        target: HWEngine
11424
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    81
        onNetConnected: {
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    82
            pagesView.loadPage("Lobby");
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    83
            pagesView.loadPage("Room");
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    84
        }
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    85
        onMovedToLobby: currentPage = "Lobby";
86c13e5662f1 - Some refactoring
unc0rr
parents: 11423
diff changeset
    86
        onMovedToRoom: currentPage = "Room";
11434
23912c93935a - Implement engine runs queue
unc0rr
parents: 11426
diff changeset
    87
        onNetDisconnected: {
23912c93935a - Implement engine runs queue
unc0rr
parents: 11426
diff changeset
    88
            currentPage = "First";
23912c93935a - Implement engine runs queue
unc0rr
parents: 11426
diff changeset
    89
            warningsBox.showMessage(message);
23912c93935a - Implement engine runs queue
unc0rr
parents: 11426
diff changeset
    90
        }
11423
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    91
        onWarningMessage: warningsBox.showMessage(message);
e045dc60c37e - Warnings/errors message box
unc0rr
parents: 11415
diff changeset
    92
        onErrorMessage: warningsBox.showMessage(message);
11415
05cf35103206 Lobby page with chat widget(readonly)
unc0rr
parents: 10896
diff changeset
    93
    }
10402
3313336c1ee0 Let's get it started
unc0rr
parents:
diff changeset
    94
}