~albaguirre/qtubuntu/mir-0.26.1-compat

« back to all changes in this revision

Viewing changes to src/ubuntumirclient/qmirclientcursor.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) 2015 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
 
 */
16
 
 
17
 
#include "cursor.h"
18
 
 
19
 
#include "logging.h"
20
 
#include "window.h"
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 2015-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
 
 
40
 
 
41
#include "qmirclientcursor.h"
 
42
 
 
43
#include "qmirclientlogging.h"
 
44
#include "qmirclientwindow.h"
21
45
 
22
46
#include <mir_toolkit/mir_client_library.h>
23
47
 
24
 
Q_LOGGING_CATEGORY(ubuntumirclientCursor, "ubuntumirclient.cursor", QtWarningMsg)
 
48
Q_LOGGING_CATEGORY(mirclientCursor, "qt.qpa.mirclient.cursor", QtWarningMsg)
25
49
 
26
 
UbuntuCursor::UbuntuCursor(MirConnection *connection)
 
50
QMirClientCursor::QMirClientCursor(MirConnection *connection)
27
51
    : mConnection(connection)
28
52
{
29
53
    /*
58
82
namespace {
59
83
const char *qtCursorShapeToStr(Qt::CursorShape shape)
60
84
{
61
 
    switch(shape) {
 
85
    switch (shape) {
62
86
    case Qt::ArrowCursor:
63
87
        return "Arrow";
64
88
    case Qt::UpArrowCursor:
111
135
}
112
136
} // anonymous namespace
113
137
 
114
 
void UbuntuCursor::changeCursor(QCursor *windowCursor, QWindow *window)
 
138
void QMirClientCursor::changeCursor(QCursor *windowCursor, QWindow *window)
115
139
{
116
140
    if (!window) {
117
141
        return;
118
142
    }
119
143
 
120
 
    MirSurface *surface = static_cast<UbuntuWindow*>(window->handle())->mirSurface();
 
144
    MirSurface *surface = static_cast<QMirClientWindow*>(window->handle())->mirSurface();
121
145
 
122
146
    if (!surface) {
123
147
        return;
125
149
 
126
150
 
127
151
    if (windowCursor) {
128
 
        qCDebug(ubuntumirclientCursor, "changeCursor shape=%s, window=%p", qtCursorShapeToStr(windowCursor->shape()), window);
 
152
        qCDebug(mirclientCursor, "changeCursor shape=%s, window=%p", qtCursorShapeToStr(windowCursor->shape()), window);
129
153
        if (!windowCursor->pixmap().isNull()) {
130
154
            configureMirCursorWithPixmapQCursor(surface, *windowCursor);
131
155
        } else if (windowCursor->shape() == Qt::BitmapCursor) {
143
167
 
144
168
}
145
169
 
146
 
void UbuntuCursor::configureMirCursorWithPixmapQCursor(MirSurface *surface, QCursor &cursor)
 
170
void QMirClientCursor::configureMirCursorWithPixmapQCursor(MirSurface *surface, QCursor &cursor)
147
171
{
148
172
    QImage image = cursor.pixmap().toImage();
149
173
 
177
201
    mir_buffer_stream_release_sync(bufferStream);
178
202
}
179
203
 
180
 
void UbuntuCursor::applyDefaultCursorConfiguration(MirSurface *surface)
 
204
void QMirClientCursor::applyDefaultCursorConfiguration(MirSurface *surface)
181
205
{
182
206
    auto cursorConfiguration = mir_cursor_configuration_from_name("left_ptr");
183
207
    mir_surface_configure_cursor(surface, cursorConfiguration);