1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** Commercial Usage
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain
** additional rights. These rights are described in the Nokia Qt LGPL
** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
** package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page qtcocoa-known-issues.html
\title Known Issues with the Qt/Mac Cocoa Port
This document explains the current list of features in the Qt/Mac Cocoa port
that are currently not working. Most of the issues will be addressed in
upcoming snapshots and beta releases. We hope that all the issues should be
addressed by the time the of the final 4.5.0 release.
\tableofcontents
\section1 What Works
Here are the things that we can say about the current state of the Qt/Mac Cocoa port.
\list
\i \e{64-bit Support}:
The Qt libraries currently do build and link as 64-bit frameworks and it is
possible to build and run many of the Qt examples as 64-bit.
\i \e{HIViews are now NSViews}:
Every QWidget is now backed by an NSView pointer instead of an HIViewRef.
QWidget::winId() will return an NSView pointer that can be used in other
Cocoa technologies (e.g., Core Animation).
\i \e{Some Native Dialogs Work}:
QFileDialog and QColorDialog have been ported to use NSOpen-/NSSavePanel and
NSColorPanel respectively. QPrintDialog and QPageSetupDialog are not in
this release, but are on their way. Currently, none of these dialogs show
up as sheets pending the creation of an asynchronous API.
\i \e{Painting, Printing, and Styles}:
Since printing and painting used Quartz 2D and styling used HITheme, these
sub-systems work without any changes.
\i \e {OpenGL}:
OpenGL is fully supported,including pixel buffers and framebuffer objects.
\i \e{Clipboard}:
Using QClipboard to copy and paste data works as expected.
\i \e{Mouse, Keyboard, and Wheel events}:
Mouse, keyboard, and wheel events are dispatched to the proper
widget. The Qt/Mac Cocoa port respects Cocoa's idea of a "First
Responder."
\endlist
\section1 Current Known Issues
The following are items that don't currently work, but that we plan to have
resolved before the final release of the Qt/Mac Cocoa port. Please do not
file bugs on these.
\list
\i \e{Carbon Support}:
The current source tree for the Qt/Mac Cocoa port contains source for
building Qt/Mac with Cocoa. It contains some of the source code that is
used for the Carbon port, but it is currently not set up to build the
Carbon Qt/Mac libraries. Please use a normal release or snapshot if you
want to use Carbon.
\i \e{Drag and Drop Support}:
Drag and Drop is currently not implemented and needs to be ported to Cocoa,
but using the clipboard does work at this time.
\i \e {Accessibility}:
Accessibility support is not implemented and needs to be ported to Cocoa.
\i \e {Text}:
Most text rendering works fine for Latin-1 characters. However, rendering
non-Latin-1 characters has not been tested.
\i \e {Input Methods}:
Input methods also need to be ported to Cocoa.
\i \e {Shortcuts}:
Shortcuts that exist outside of the menu bar may not be dispatched.
\i \e {Tablet Support}:
The tablet support has not been ported from Carbon yet. However, it should
still be possible to use the tablet as a mouse.
\i \e {Phonon}:
Phonon uses the QuickTime backend that is only available on 32-bit. Using
Phonon in 64-bit requires a QTKit-based backend and has not been done.
\i \e {Unified Toolbar}:
The QMainWindow::setUnifiedTitleAndToolBarOnMac() method currently does nothing.
\i \e {Dialogs, Tool Windows, Sheets, and Drawers}:
At the moment, all windows are subclasses of NSWindow. This means that
window types like drawers and sheets do not work and tool windows do not
get the right decorations. Modal dialogs do show up at the correct window
level, but are not yet considered "panels." Many window flags are not
recognized.
\endlist
\section1 Things We Don't Expect to Support
The following items that we do not plan on spending any resources on unless
there is monumental outcry for their inclusion.
\list
\i \e{Qt3Support}:
At this time we have no plans for making the Qt3Support module work with
the Qt/Mac Cocoa port in 64-bit mode. Following in footsteps of Apple, we
would like to encourage you to consider the time of going Cocoa and 64-bit
as a chance to jettison Qt 3 constructs and classes.
\i \e{Support for versions of Mac OS X below 10.5}:
We are using methods and classes that are only available in 10.5 and
higher. Most of these functions don't have any equivalent on earlier
versions. We recommend using the Carbon version for earlier versions of Mac
OS X. We anticipate keeping the Carbon port supported at least for the
lifetime of 4.5.
\i \e{Support for -no-framework or -static}:
Cocoa requires that we load a nib in order to properly access the global
menu bar. This nib has to reside on disk somewhere. The most logical place
for it to reside is inside the QtGui framework. For this reason, building
Qt as standard "dylibs" or statically is no longer supported.
\endlist
*/
|