on xenial help sign in
shellapp->unityapp
commit9a5c01f81d7f9ab4e02079b646ba1f009c612831 authorNick Dedekind <nick.dedekind@canonical.com> dateFri 24 Feb 2017, 10:21 (10 years ago) parent925a0a9
6 files changed+38−39
src/CMakeLists.txt+8−2 src/ShellApplication.cpp → src/UnityApplication.cpp+9−29 src/ShellApplication.h → src/UnityApplication.h+6−6 src/UnityCommandLineParser.cpp+8 src/UnityCommandLineParser.h+3 src/main.cpp+4−2
src/CMakeLists.txt+8−2
@@ -28,7 +28,7 @@ set(SOURCE_FILES
2828 ApplicationArguments.cpp
2929 main.cpp
3030 CachingNetworkManagerFactory.cpp
31− ShellApplication.cpp
31+ UnityApplication.cpp
3232 UnityCommandLineParser.cpp
3333 UnixSignalHandler.cpp
3434 DebuggingController.cpp
@@ -46,7 +46,13 @@ qt5_use_modules(${SHELL_APP} DBus Gui Qml Quick Test)
4646if (NOT "${ANDROID_PROPERTIES_INCLUDE_DIRS}" STREQUAL "")
4747 set_target_properties(${SHELL_APP} PROPERTIES INCLUDE_DIRECTORIES ${ANDROID_PROPERTIES_INCLUDE_DIRS})
4848endif()
49−target_link_libraries(${SHELL_APP} ${ANDROID_PROPERTIES_LDFLAGS} UbuntuGestures connectivity-qt1 unity8-private qtmirserver)
49+target_link_libraries(${SHELL_APP}
50+ ${ANDROID_PROPERTIES_LDFLAGS}
51+ ${QTMIRSERVER_LDFLAGS}
52+ UbuntuGestures
53+ connectivity-qt1
54+ unity8-private
55+)
5056
5157if (ENABLE_TOUCH_EMULATION)
5258 target_link_libraries(${SHELL_APP} ${MOUSETOUCHADAPTOR_LIBS_LDFLAGS})
src/ShellApplication.cpp → src/UnityApplication.cpprenamed+9−29
@@ -14,7 +14,7 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−#include "ShellApplication.h"
17+#include "UnityApplication.h"
1818
1919// Qt
2020#include <QLibrary>
@@ -32,34 +32,14 @@
3232#include "CachingNetworkManagerFactory.h"
3333#include "UnityCommandLineParser.h"
3434#include "DebuggingController.h"
35+#include "windowmanagementpolicy.h"
3536
3637#include <QDebug>
3738
38−#include <qtmir/windowmanagementpolicy.h>
3939
40−class WindowManagementPolicy : public qtmir::WindowManagementPolicy
41−{
42−public:
43− WindowManagementPolicy(const miral::WindowManagerTools &tools, qtmir::WindowManagementPolicyPrivate& dd)
44− : qtmir::WindowManagementPolicy(tools, dd)
45− {}
46−
47−// virtual void advise_adding_to_workspace(
48−// std::shared_ptr<miral::Workspace> const& workspace,
49−// std::vector<miral::Window> const& windows) override
50−// {
51−// }
52−
53−// virtual void advise_removing_from_workspace(
54−// std::shared_ptr<miral::Workspace> const& workspace,
55−// std::vector<miral::Window> const& windows) override
56−// {
57−// }
58−};
59−
60−
61−ShellApplication::ShellApplication(int & argc, char ** argv)
62− : qtmir::MirServerApplication(argc, argv, {})
40+
41+UnityApplication::UnityApplication(int & argc, char ** argv)
42+ : qtmir::MirServerApplication(argc, argv, { qtmir::SetWindowManagementPolicy<WindowManagementPolicy>() })
6343 , m_qmlArgs(this)
6444{
6545 setApplicationName(QStringLiteral("unity8"));
@@ -103,7 +83,7 @@ ShellApplication::ShellApplication(int & argc, char ** argv)
10383 pxpgu = 8;
10484 }
10585 m_qmlEngine->rootContext()->setContextProperty("internalGu", pxpgu);
106− m_qmlEngine->load(::qmlDirectory() + "/ShellApplication.qml");
86+ m_qmlEngine->load(m_qmlArgs.qmlfie());
10787
10888 #ifdef UNITY8_ENABLE_TOUCH_EMULATION
10989 // You will need this if you want to interact with touch-only components using a mouse
@@ -120,12 +100,12 @@ ShellApplication::ShellApplication(int & argc, char ** argv)
120100 }
121101}
122102
123−ShellApplication::~ShellApplication()
103+UnityApplication::~UnityApplication()
124104{
125105 destroyResources();
126106}
127107
128−void ShellApplication::destroyResources()
108+void UnityApplication::destroyResources()
129109{
130110 #ifdef UNITY8_ENABLE_TOUCH_EMULATION
131111 delete m_mouseTouchAdaptor;
@@ -136,7 +116,7 @@ void ShellApplication::destroyResources()
136116 m_qmlEngine = nullptr;
137117}
138118
139−void ShellApplication::setupQmlEngine()
119+void UnityApplication::setupQmlEngine()
140120{
141121 m_qmlEngine = new QQmlApplicationEngine(this);
142122
src/ShellApplication.h → src/UnityApplication.hrenamed+6−6
@@ -14,8 +14,8 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−#ifndef SHELLAPPLICATION_H
18−#define SHELLAPPLICATION_H
17+#ifndef UNITYAPPLICATION_H
18+#define UNITYAPPLICATION_H
1919
2020#include <QGuiApplication>
2121#include <QQmlApplicationEngine>
@@ -30,12 +30,12 @@
3030
3131#include <qtmir/mirserverapplication.h>
3232
33−class ShellApplication : public qtmir::MirServerApplication
33+class UnityApplication : public qtmir::MirServerApplication
3434{
3535 Q_OBJECT
3636public:
37− ShellApplication(int & argc, char ** argv);
38− virtual ~ShellApplication();
37+ UnityApplication(int & argc, char ** argv);
38+ virtual ~UnityApplication();
3939
4040 void destroyResources();
4141
@@ -50,4 +50,4 @@ private:
5050 QQmlApplicationEngine *m_qmlEngine{nullptr};
5151};
5252
53−#endif // SHELLAPPLICATION_H
53+#endif // UNITYAPPLICATION_H
src/UnityCommandLineParser.cpp+8
@@ -15,6 +15,7 @@
1515 */
1616
1717#include "UnityCommandLineParser.h"
18+#include <paths.h>
1819
1920#include <QDebug>
2021
@@ -60,6 +61,11 @@ UnityCommandLineParser::UnityCommandLineParser(const QCoreApplication &app)
6061 QStringLiteral("mode"), QStringLiteral("full-greeter"));
6162 parser.addOption(modeOption);
6263
64+ QCommandLineOption qmlfileOption(QStringLiteral("qmlfile"),
65+ QStringLiteral("The base qml file to load"),
66+ QStringLiteral("qmlfile"), ::qmlDirectory() + "/ShellApplication.qml");
67+ parser.addOption(qmlfileOption);
68+
6369 // Treat args with single dashes the same as arguments with two dashes
6470 // Ex: -fullscreen == --fullscreen
6571 parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions);
@@ -85,6 +91,8 @@ UnityCommandLineParser::UnityCommandLineParser(const QCoreApplication &app)
8591 m_hasFullscreen = parser.isSet(fullscreenOption);
8692 m_deviceName = parser.value(devicenameOption);
8793 resolveMode(parser, modeOption);
94+
95+ m_qmlfile = parser.value(qmlfileOption);
8896}
8997
9098int UnityCommandLineParser::parsePixelsValue(const QString &str)
src/UnityCommandLineParser.h+3
@@ -37,6 +37,8 @@ public:
3737 QString deviceName() const { return m_deviceName; }
3838 QString mode() const { return m_mode; }
3939
40+ QString qmlfie() const { return m_qmlfile; }
41+
4042protected:
4143 int parsePixelsValue(const QString &str);
4244 static float getenvFloat(const char* name, float defaultValue);
@@ -55,6 +57,7 @@ protected:
5557 bool m_hasFullscreen;
5658 QString m_deviceName;
5759 QString m_mode;
60+ QString m_qmlfile;
5861};
5962
6063#endif // UNITY_COMMAND_LINE_PARSER_H
src/main.cpp+4−2
@@ -15,9 +15,10 @@
1515 */
1616
1717// local
18−#include "ShellApplication.h"
18+#include "UnityApplication.h"
1919#include "qmldebuggerutils.h"
2020#include "UnixSignalHandler.h"
21+#include <paths.h>
2122
2223#include <QTranslator>
2324#include <QLibraryInfo>
@@ -31,7 +32,8 @@ int main(int argc, const char *argv[])
3132 QQmlDebuggingEnabler qQmlEnableDebuggingHelper(true);
3233 }
3334
34− ShellApplication *application = new ShellApplication(argc, (char**)argv);
35+ auto *application = new UnityApplication(argc,
36+ (char**)argv);
3537
3638 UnixSignalHandler signalHandler([]{
3739 QGuiApplication::exit(0);