summaryrefslogtreecommitdiffstats
path: root/doc/src/qtcocoa-known-issues.qdoc
blob: eedbd687ed26b4831c87d801a3ea125f229bb046 (plain)
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$
** No Commercial Usage
** This file contains pre-release code and may not be distributed.
** You may use this file in accordance with the terms and conditions
** contained in the either Technology Preview License Agreement or the
** Beta Release License Agreement.
**
** 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

*/