Reduce QtWidgets dependencies in the Cocoa plugin.

b8246f08 added the new menus implementation which
removes one of the major QtWidget dependencies.

Continuing on the path to QtWidget-freedom this
commit removes the following:
- qmenu_mac.h/mm. Not used.
- FORMS += filedialog.ui. Not used.
- qt_strippedText from qaction.cpp. Duplicate.
- Misc stray includes.

What is left should be the dependencies needed by
the print engine implementation. These will be
handled at a later time.

Change-Id: I0cead4cdaddcebd402d30c6112f3e889d0f28740
Conflicts:
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
bb10
Morten Johan Sorvig 2012-05-22 12:00:29 +02:00 committed by Qt by Nokia
parent 5fc8cc830e
commit 2922f85e70
6 changed files with 23 additions and 1416 deletions

View File

@ -74,7 +74,6 @@ HEADERS += qcocoaintegration.h \
qcocoaprintersupport.h \
qcocoaservices.h \
FORMS += $$PWD/../../../widgets/dialogs/qfiledialog.ui
RESOURCES += qcocoaresources.qrc
LIBS += -framework Cocoa -framework IOKit

View File

@ -48,29 +48,25 @@
*****************************************************************************/
//#define DEBUG_FILEDIALOG_FILTERS
#include <qapplication.h>
#include <private/qapplication_p.h>
#include <private/qfiledialog_p.h>
#include <qguiapplication.h>
#include <private/qguiapplication_p.h>
#include "qt_mac_p.h"
#include "qcocoahelpers.h"
#include <qregexp.h>
#include <qbuffer.h>
#include <qdebug.h>
#include <qstringlist.h>
#include <qaction.h>
#include <qtextcodec.h>
#include <qvarlengtharray.h>
#include <qdesktopwidget.h>
#include <stdlib.h>
#include <qabstracteventdispatcher.h>
#import <AppKit/NSSavePanel.h>
#include "ui_qfiledialog.h"
QT_FORWARD_DECLARE_CLASS(QFileDialogPrivate)
#include <qpa/qplatformnativeinterface.h>
#import <AppKit/NSSavePanel.h>
QT_FORWARD_DECLARE_CLASS(QString)
QT_FORWARD_DECLARE_CLASS(QStringList)
QT_FORWARD_DECLARE_CLASS(QWidget)
QT_FORWARD_DECLARE_CLASS(QAction)
QT_FORWARD_DECLARE_CLASS(QFileInfo)
QT_FORWARD_DECLARE_CLASS(QWindow)
QT_USE_NAMESPACE
@ -194,10 +190,24 @@ typedef QSharedPointer<QFileDialogOptions> SharedPointerFileDialogOptions;
[super dealloc];
}
static QString strippedText(QString s)
{
s.remove( QString::fromLatin1("...") );
int i = 0;
while (i < s.size()) {
++i;
if (s.at(i-1) != QLatin1Char('&'))
continue;
if (i < s.size() && s.at(i) == QLatin1Char('&'))
++i;
s.remove(i-1,1);
}
return s.trimmed();
}
- (NSString *)strip:(const QString &)label
{
QAction a(label, 0);
return QCFString::toNSString(a.iconText());
return QCFString::toNSString(strippedText(label));
}
- (void)closePanel

View File

@ -41,7 +41,7 @@
#include "qmacclipboard.h"
#include "qclipboard.h"
#include "qapplication.h"
#include "qguiapplication.h"
#include "qbitmap.h"
#include "qdatetime.h"
#include "qdebug.h"

View File

@ -1,130 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/
**
** This file is part of the plugins of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** 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.1, 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.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "qt_mac_p.h"
#include <QtCore/qpointer.h>
#include <QtWidgets/qmenu.h>
#include <QtWidgets/qmenubar.h>
#include <qpa/qplatformmenu.h>
@class NSMenuItem;
QT_BEGIN_NAMESPACE
class QCocoaMenuAction : public QPlatformMenuAction
{
public:
QCocoaMenuAction();
~QCocoaMenuAction();
NSMenuItem *menuItem;
uchar ignore_accel : 1;
uchar merged : 1;
OSMenuRef menu;
QPointer<QMenu> qtMenu;
};
struct QMenuMergeItem
{
inline QMenuMergeItem(NSMenuItem *c, QCocoaMenuAction *a) : menuItem(c), action(a) { }
NSMenuItem *menuItem;
QCocoaMenuAction *action;
};
typedef QList<QMenuMergeItem> QMenuMergeList;
class QCocoaMenu : public QPlatformMenu
{
public:
QCocoaMenu(QMenu *qtMenu);
~QCocoaMenu();
OSMenuRef macMenu(OSMenuRef merge = 0);
void syncSeparatorsCollapsible(bool collapse);
void setMenuEnabled(bool enable);
void addAction(QAction *action, QAction *before);
void syncAction(QAction *action);
void removeAction(QAction *action);
void addAction(QCocoaMenuAction *action, QCocoaMenuAction *before);
void syncAction(QCocoaMenuAction *action);
void removeAction(QCocoaMenuAction *action);
bool merged(const QAction *action) const;
QCocoaMenuAction *findAction(QAction *action) const;
OSMenuRef menu;
static QHash<OSMenuRef, OSMenuRef> mergeMenuHash;
static QHash<OSMenuRef, QMenuMergeList*> mergeMenuItemsHash;
QList<QCocoaMenuAction*> actionItems;
QMenu *qtMenu;
};
class QCocoaMenuBar : public QPlatformMenuBar
{
public:
QCocoaMenuBar(QMenuBar *qtMenuBar);
~QCocoaMenuBar();
void handleReparent(QWidget *newParent);
void addAction(QAction *action, QAction *before);
void syncAction(QAction *action);
void removeAction(QAction *action);
void addAction(QCocoaMenuAction *action, QCocoaMenuAction *before);
void syncAction(QCocoaMenuAction *action);
void removeAction(QCocoaMenuAction *action);
bool macWidgetHasNativeMenubar(QWidget *widget);
void macCreateMenuBar(QWidget *parent);
void macDestroyMenuBar();
OSMenuRef macMenu();
static bool macUpdateMenuBarImmediatly();
static void macUpdateMenuBar();
QCocoaMenuAction *findAction(QAction *action) const;
OSMenuRef menu;
OSMenuRef apple_menu;
QList<QCocoaMenuAction*> actionItems;
QMenuBar *qtMenuBar;
};
QT_END_NAMESPACE

File diff suppressed because it is too large Load Diff

View File

@ -65,7 +65,6 @@
#include <private/qpainter_p.h>
#include <private/qpainterpath_p.h>
#include <private/qtextengine_p.h>
#include <private/qwidget_p.h>
#include "qcocoahelpers.h"