~albaguirre/qtubuntu/mir-0.26.1-compat

« back to all changes in this revision

Viewing changes to src/ubuntumirclient/qmirclientscreen.cpp

Class renaming and syntax changes to shrink delta with upstream mirclient QPA plugin (which is equivalent to rev 360)

Changes:
- Rename classes to prefix "QMirClient" instead of "Ubuntu"
- Update licence headers to match Qt's
- change logging categories spec to match Qt: qt.qpa.mirclient
- Enforce American English
- some minor syntax tweaks

Some differences still exist:
- QPA plugin remains "ubuntumirclient" and not "mirclient" as used upstream.
- some header paths differ between in-Qt code and externally built code
- I've not included build-type switches for things like accessibility support
- relaxed switch cases to allow older versions of Mir not break a build
- panel height hack removed from upstream
- platform-api env var setting removed from upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright (C) 2014-2016 Canonical, Ltd.
3
 
 *
4
 
 * This program is free software: you can redistribute it and/or modify it under
5
 
 * the terms of the GNU Lesser General Public License version 3, as published by
6
 
 * the Free Software Foundation.
7
 
 *
8
 
 * This program is distributed in the hope that it will be useful, but WITHOUT
9
 
 * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10
 
 * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11
 
 * 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
 
 */
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 2014-2016 Canonical, Ltd.
 
4
** Contact: https://www.qt.io/licensing/
 
5
**
 
6
** This file is part of the plugins of the Qt Toolkit.
 
7
**
 
8
** $QT_BEGIN_LICENSE:LGPL$
 
9
** Commercial License Usage
 
10
** Licensees holding valid commercial Qt licenses may use this file in
 
11
** accordance with the commercial license agreement provided with the
 
12
** Software or, alternatively, in accordance with the terms contained in
 
13
** a written agreement between you and The Qt Company. For licensing terms
 
14
** and conditions see https://www.qt.io/terms-conditions. For further
 
15
** information use the contact form at https://www.qt.io/contact-us.
 
16
**
 
17
** GNU Lesser General Public License Usage
 
18
** Alternatively, this file may be used under the terms of the GNU Lesser
 
19
** General Public License version 3 as published by the Free Software
 
20
** Foundation and appearing in the file LICENSE.LGPL3 included in the
 
21
** packaging of this file. Please review the following information to
 
22
** ensure the GNU Lesser General Public License version 3 requirements
 
23
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
 
24
**
 
25
** GNU General Public License Usage
 
26
** Alternatively, this file may be used under the terms of the GNU
 
27
** General Public License version 2.0 or (at your option) the GNU General
 
28
** Public license version 3 or any later version approved by the KDE Free
 
29
** Qt Foundation. The licenses are as published by the Free Software
 
30
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
 
31
** included in the packaging of this file. Please review the following
 
32
** information to ensure the GNU General Public License requirements will
 
33
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
 
34
** https://www.gnu.org/licenses/gpl-3.0.html.
 
35
**
 
36
** $QT_END_LICENSE$
 
37
**
 
38
****************************************************************************/
 
39
 
16
40
 
17
41
// local
18
 
#include "screen.h"
19
 
#include "logging.h"
20
 
#include "orientationchangeevent_p.h"
21
 
#include "nativeinterface.h"
 
42
#include "qmirclientscreen.h"
 
43
#include "qmirclientlogging.h"
 
44
#include "qmirclientorientationchangeevent_p.h"
 
45
#include "qmirclientnativeinterface.h"
22
46
 
23
47
#include <mir_toolkit/mir_client_library.h>
24
48
 
54
78
        static_cast<QEvent::Type>(QEvent::registerEventType());
55
79
 
56
80
 
57
 
UbuntuScreen::UbuntuScreen(const MirOutput *output, MirConnection *connection)
 
81
QMirClientScreen::QMirClientScreen(const MirOutput *output, MirConnection *connection)
58
82
    : mDevicePixelRatio(1.0)
59
83
    , mFormat(QImage::Format_RGB32)
60
84
    , mDepth(32)
67
91
    setMirOutput(output);
68
92
}
69
93
 
70
 
UbuntuScreen::~UbuntuScreen()
 
94
QMirClientScreen::~QMirClientScreen()
71
95
{
72
96
}
73
97
 
74
 
void UbuntuScreen::customEvent(QEvent* event) {
 
98
void QMirClientScreen::customEvent(QEvent* event) {
75
99
    Q_ASSERT(QThread::currentThread() == thread());
76
100
 
77
101
    OrientationChangeEvent* oReadingEvent = static_cast<OrientationChangeEvent*>(event);
99
123
    }
100
124
 
101
125
    // Raise the event signal so that client apps know the orientation changed
102
 
    qCDebug(ubuntumirclient, "UbuntuScreen::customEvent - handling orientation change to %s", orientationToStr(mCurrentOrientation));
 
126
    qCDebug(mirclient, "QMirClientScreen::customEvent - handling orientation change to %s", orientationToStr(mCurrentOrientation));
103
127
    QWindowSystemInterface::handleScreenOrientationChange(screen(), mCurrentOrientation);
104
128
}
105
129
 
106
 
void UbuntuScreen::handleWindowSurfaceResize(int windowWidth, int windowHeight)
 
130
void QMirClientScreen::handleWindowSurfaceResize(int windowWidth, int windowHeight)
107
131
{
108
132
    if ((windowWidth > windowHeight && mGeometry.width() < mGeometry.height())
109
133
     || (windowWidth < windowHeight && mGeometry.width() > mGeometry.height())) {
120
144
        mGeometry.setWidth(currGeometry.height());
121
145
        mGeometry.setHeight(currGeometry.width());
122
146
 
123
 
        qCDebug(ubuntumirclient, "UbuntuScreen::handleWindowSurfaceResize - new screen geometry (w=%d, h=%d)",
 
147
        qCDebug(mirclient, "QMirClientScreen::handleWindowSurfaceResize - new screen geometry (w=%d, h=%d)",
124
148
            mGeometry.width(), mGeometry.height());
125
149
        QWindowSystemInterface::handleScreenGeometryChange(screen(),
126
150
                                                           mGeometry /* newGeometry */,
131
155
        } else {
132
156
            mCurrentOrientation = Qt::LandscapeOrientation;
133
157
        }
134
 
        qCDebug(ubuntumirclient, "UbuntuScreen::handleWindowSurfaceResize - new orientation %s",orientationToStr(mCurrentOrientation));
 
158
        qCDebug(mirclient, "QMirClientScreen::handleWindowSurfaceResize - new orientation %s",orientationToStr(mCurrentOrientation));
135
159
        QWindowSystemInterface::handleScreenOrientationChange(screen(), mCurrentOrientation);
136
160
    }
137
161
}
138
162
 
139
 
void UbuntuScreen::setMirOutput(const MirOutput *output)
 
163
void QMirClientScreen::setMirOutput(const MirOutput *output)
140
164
{
141
165
    // Physical screen size (in mm)
142
166
    mPhysicalSize.setWidth(mir_output_get_physical_width_mm(output));
181
205
    mCurrentOrientation = (mNativeOrientation == Qt::LandscapeOrientation) ? Qt::LandscapeOrientation : Qt::PortraitOrientation;
182
206
}
183
207
 
184
 
void UbuntuScreen::updateMirOutput(const MirOutput *output)
 
208
void QMirClientScreen::updateMirOutput(const MirOutput *output)
185
209
{
186
210
    auto oldRefreshRate = mRefreshRate;
187
211
    auto oldScale = mScale;
201
225
        QWindowSystemInterface::handleScreenRefreshRateChange(screen(), mRefreshRate);
202
226
    }
203
227
 
204
 
    auto nativeInterface = static_cast<UbuntuNativeInterface *>(qGuiApp->platformNativeInterface());
 
228
    auto nativeInterface = static_cast<QMirClientNativeInterface *>(qGuiApp->platformNativeInterface());
205
229
    if (!qFuzzyCompare(mScale, oldScale)) {
206
230
        nativeInterface->screenPropertyChanged(this, QStringLiteral("scale"));
207
231
    }
210
234
    }
211
235
}
212
236
 
213
 
void UbuntuScreen::setAdditionalMirDisplayProperties(float scale, MirFormFactor formFactor, int dpi)
 
237
void QMirClientScreen::setAdditionalMirDisplayProperties(float scale, MirFormFactor formFactor, int dpi)
214
238
{
215
239
    if (mDpi != dpi) {
216
240
        mDpi = dpi;
217
241
        QWindowSystemInterface::handleScreenLogicalDotsPerInchChange(screen(), dpi, dpi);
218
242
    }
219
243
 
220
 
    auto nativeInterface = static_cast<UbuntuNativeInterface *>(qGuiApp->platformNativeInterface());
 
244
    auto nativeInterface = static_cast<QMirClientNativeInterface *>(qGuiApp->platformNativeInterface());
221
245
    if (!qFuzzyCompare(mScale, scale)) {
222
246
        mScale = scale;
223
247
        nativeInterface->screenPropertyChanged(this, QStringLiteral("scale"));
228
252
    }
229
253
}
230
254
 
231
 
QDpi UbuntuScreen::logicalDpi() const
 
255
QDpi QMirClientScreen::logicalDpi() const
232
256
{
233
257
    if (mDpi > 0) {
234
258
        return QDpi(mDpi, mDpi);