~ubuntu-branches/ubuntu/wily/ubuntu-ui-toolkit/wily-proposed

« back to all changes in this revision

Viewing changes to modules/Ubuntu/Components/plugin/ucapplication.cpp

  • Committer: Package Import Robot
  • Author(s): CI Train Bot, Florian Boucault, Loïc Molinari, Benjamin Zeller, Richard Huddie, Tim Peeters, Zsombor Egri, Timo Jyrinki, Christian Dywan, Albert Astals Cid
  • Date: 2015-07-30 13:04:18 UTC
  • mfrom: (1.1.126)
  • Revision ID: package-import@ubuntu.com-20150730130418-nxjr780u6wqcdqeh
Tags: 1.3.1584+15.10.20150730-0ubuntu1
[ Florian Boucault ]
* New BottomEdgeHint component to represent extra features available from the 
  bottom edge of an application.

[ Loïc Molinari ]
* [UbuntuShape] Added a big radius.
* [UbuntuShape] Added relative radius support. Fixes LP: #1478124.
* Ensured components, styles, examples and tests use the new UbuntuShape 
  properties (not deprecated). Fixes LP: #1437412.

[ Benjamin Zeller ]
* Make use of the official qt build macros to blend into the Qt buildprocess.
* Fix debug builds, optimization is always enabled by the system qt build.

[ Richard Huddie ]
* Fix for autopilot bug lp:1476715. Don't throw an exception if maliit-server
  is not found. Fixes LP: #1476715.

[ Tim Peeters ]
* Clean up the MainView docs.
* Set theme version for Sections component.
* Implement AdaptivePageLayout.

[ Zsombor Egri ]
* Fix width for trailing and leading actions of a ListItem. Fixes LP: #1465582.
* Button and Haptics import wrong toolkit versions, thus they break style 
  versioning. Moving Icon and ProgressBar to 1.0 and 1.1 version source folder.
* SuruDark theme for ListItem style. Fixes LP: #1451225.
* Swiping ListItem when no actions are defined for the gesture breaks 
  selectMode. Fixes LP: #1468100.
* Fixing selected connection with the ListItem's select mode checkbox state. 
  Fixes LP: #1461501, LP: #1469471.

[ Timo Jyrinki ]
* Fix ucstylehints.cpp compilation with Qt 5.5. Fixes LP: #1473873.
* Add PageHeadStyle 1.3 reference to fix install_plugins_qmltypes failure with 
  Qt 5.5. Fixes LP: #1466484.

[ Christian Dywan ]
* Avoid hard-coded skipping of members by name "type" can be a property name 
  regardless of also being a field in the JSON description of a property.
* Add apicheck unit test for QML and Javascript.
* Remove "do cleanup" comments. Fixes LP: #1369874.
* Initialize defaultTypes later to avoid bogus types.
* Implement Action.shortcut property. Fixes LP: #1202464.
* Update text handler to 3gu assert.
* Add a deprecated note to ListItems.ThinDivider. Fixes LP: #1470951.
* Don't include overridden properties in API.
* Clean-up API check wrapper scripts.
* Track version members were introduced.
* Implement ListItemPopover on right-click. Fixes LP: #1452676.
* Move delegate's chevron into the row and size it explicitly. 
  Fixes LP: #1474418.
* Enable (Shift)Tab via activeFocusOnTab. Fixes LP: #1276797.
* Only swipe with left button and block timer otherwise. 
  Fixes LP: #1476300, LP: #1476310.
* Include Javascript libraries in QML documentation. Fixes LP: #1466058.

[ Albert Astals Cid ]
* Fix warning if there's no __propagated
* TypeError: Cannot call method 'hasOwnProperty' of null.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright 2013 Canonical Ltd.
3
 
 *
4
 
 * This program is free software; you can redistribute it and/or modify
5
 
 * it under the terms of the GNU Lesser General Public License as published by
6
 
 * the Free Software Foundation; version 3.
7
 
 *
8
 
 * This program is distributed in the hope that it will be useful,
9
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
 * GNU Lesser General Public License for more details.
12
 
 *
13
 
 * You should have received a copy of the GNU Lesser General Public License
14
 
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
 *
16
 
 * Author: Christian Dywan <christian.dywan@canonical.om>
17
 
 */
18
 
 
19
 
#include "ucapplication.h"
20
 
 
21
 
#include <QtCore/QCoreApplication>
22
 
#include <QDebug>
23
 
#include <QtQml/QQmlContext>
24
 
#include <QtQml/QQmlEngine>
25
 
#include <QtCore/QStandardPaths>
26
 
#include <QtGui/QGuiApplication>
27
 
 
28
 
/*!
29
 
 * \qmltype UbuntuApplication
30
 
 * \instantiates UCApplication
31
 
 * \inqmlmodule Ubuntu.Components 1.1
32
 
 * \ingroup ubuntu
33
 
 * \brief UbuntuApplication is a QML binding for a subset of QCoreApplication.
34
 
 *
35
 
 * UbuntuApplication is a context property in QML.
36
 
 */
37
 
UCApplication::UCApplication(QObject* parent) : QObject(parent), m_context(0)
38
 
                                                               , m_inputMethod(QGuiApplication::inputMethod())
39
 
{
40
 
    // Make sure we receive application name changes from C++ modules
41
 
    connect(QCoreApplication::instance(), &QCoreApplication::applicationNameChanged,
42
 
            this, &UCApplication::applicationNameChanged);
43
 
}
44
 
 
45
 
void UCApplication::setContext(QQmlContext* context) {
46
 
    m_context = context;
47
 
}
48
 
 
49
 
/*!
50
 
 * \internal
51
 
 * The name of the application, see QCoreApplication::applicationName
52
 
 */
53
 
QString UCApplication::applicationName() {
54
 
    return QCoreApplication::applicationName();
55
 
}
56
 
 
57
 
void UCApplication::setApplicationName(const QString& applicationName) {
58
 
    /* QStandardPaths uses the name to build folder names.
59
 
       This works across platforms. For confinement we rely on the fact
60
 
       that the folders are whitelisted based on the app name. Similar
61
 
       to how Unity uses it to distinguish running applications.
62
 
     */
63
 
    QCoreApplication::setApplicationName(applicationName);
64
 
    // Unset organization to skip an extra folder component
65
 
    QCoreApplication::setOrganizationName(QString());
66
 
    /*
67
 
       Ensure that LocalStorage and WebKit use the same location
68
 
       Docs are ambiguous: in practise applicationName is ignored by default
69
 
     */
70
 
    QQmlEngine* engine(m_context->engine());
71
 
    QString dataFolder(QStandardPaths::writableLocation(QStandardPaths::DataLocation));
72
 
    engine->setOfflineStoragePath(dataFolder);
73
 
    // Get Qtlabs.settings to use a sane path
74
 
    QCoreApplication::setOrganizationDomain(applicationName);
75
 
}
76
 
 
77
 
/*!
78
 
 * \internal
79
 
 * The global input method. Can be overridden for testing.
80
 
 */
81
 
QObject* UCApplication::inputMethod() {
82
 
    return m_inputMethod;
83
 
}
84
 
 
85
 
void UCApplication::setInputMethod(QObject* inputMethod) {
86
 
    m_inputMethod = inputMethod;
87
 
}