FlightGear
next
StackController.hxx
Go to the documentation of this file.
1
// StackController.hxx - manage a stack of QML items
2
//
3
// Written by James Turner, started February 2019
4
//
5
// Copyright (C) 2019 James Turner <james@flightgear.org>
6
//
7
// This program is free software; you can redistribute it and/or
8
// modify it under the terms of the GNU General Public License as
9
// published by the Free Software Foundation; either version 2 of the
10
// License, or (at your option) any later version.
11
//
12
// This program is distributed in the hope that it will be useful, but
13
// WITHOUT ANY WARRANTY; without even the implied warranty of
14
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
// General Public License for more details.
16
//
17
// You should have received a copy of the GNU General Public License
18
// along with this program; if not, write to the Free Software
19
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20
21
22
#ifndef FG_GUI_STACK_CONTROLLER_HXX
23
#define FG_GUI_STACK_CONTROLLER_HXX
24
25
#include <QObject>
26
#include <QUrl>
27
#include <QVector>
28
29
class
StackController
:
public
QObject
30
{
31
Q_OBJECT
32
33
Q_PROPERTY(QUrl
currentPageSource
READ
currentPageSource
NOTIFY
currentPageChanged
)
34
35
Q_PROPERTY(
bool
canGoBack
READ
canGoBack
NOTIFY
currentPageChanged
)
36
37
Q_PROPERTY(QString
currentPageTitle
READ
currentPageTitle
NOTIFY
currentPageChanged
)
38
Q_PROPERTY(QString
previousPageTitle
READ
previousPageTitle
NOTIFY
currentPageChanged
)
39
40
public:
41
StackController
();
42
43
Q_INVOKABLE
void
push
(QUrl page, QString title);
44
Q_INVOKABLE
void
pop
();
45
Q_INVOKABLE
void
replace
(QUrl url, QString title);
46
47
QUrl
currentPageSource
() const;
48
49
bool
canGoBack
() const;
50
QString
currentPageTitle
() const;
51
QString
previousPageTitle
() const;
52
53
signals:
54
void
currentPageChanged
();
55
56
private:
57
QVector<QUrl> m_stack;
58
QVector<QString> m_titles;
59
};
60
61
#endif
// FG_GUI_STACK_CONTROLLER_HXX
StackController::StackController
StackController()
Definition
StackController.cxx:23
StackController::canGoBack
bool canGoBack
Definition
StackController.hxx:35
StackController::replace
Q_INVOKABLE void replace(QUrl url, QString title)
Definition
StackController.cxx:69
StackController::pop
Q_INVOKABLE void pop()
Definition
StackController.cxx:60
StackController::previousPageTitle
QString previousPageTitle
Definition
StackController.hxx:38
StackController::currentPageTitle
QString currentPageTitle
Definition
StackController.hxx:37
StackController::push
Q_INVOKABLE void push(QUrl page, QString title)
Definition
StackController.cxx:53
StackController::currentPageSource
QUrl currentPageSource
Definition
StackController.hxx:33
StackController::currentPageChanged
void currentPageChanged()
src
GUI
StackController.hxx
Generated on Tue Jun 3 2025 12:58:39 for FlightGear by
1.13.2