diff options
author | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-04-10 15:41:47 +0200 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@digia.com> | 2013-04-10 15:42:22 +0200 |
commit | 90297a64f203959f90041887ea31f4bd04bc059a (patch) | |
tree | 86f8ad6a5af26fd618cdb2e20601e6df89ac94d6 /src/plugins/platforms/cocoa | |
parent | 537a4bc4011d32de193dc31caf09a44c1810ab33 (diff) | |
parent | f273d6fbc02055ff3999adc0df76360ca0670435 (diff) |
Merge branch 'stable' into dev
Change-Id: Icff019d74ae04c628a80f66aa478e4db40fae464
Diffstat (limited to 'src/plugins/platforms/cocoa')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm | 4 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoahelpers.mm | 10 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoamenuitem.mm | 4 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoanativeinterface.mm | 1 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoatheme.mm | 2 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoawindow.mm | 10 | ||||
-rw-r--r-- | src/plugins/platforms/cocoa/qnsview.mm | 2 |
7 files changed, 20 insertions, 13 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm index 297d81abab..1e9acd79ed 100644 --- a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm +++ b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm @@ -247,7 +247,7 @@ static QString strippedText(QString s) [mSavePanel setDirectoryURL:selectable ? [NSURL fileURLWithPath:QT_PREPEND_NAMESPACE(QCFString::toNSString)(info.filePath())] : [NSURL fileURLWithPath:QT_PREPEND_NAMESPACE(QCFString::toNSString)(info.path())]]; - [mSavePanel setNameFieldStringValue:selectable ? QT_PREPEND_NAMESPACE(QCFString::toNSString)(info.fileName()) : nil]; + [mSavePanel setNameFieldStringValue:selectable ? QT_PREPEND_NAMESPACE(QCFString::toNSString)(info.fileName()) : @""]; // Call processEvents in case the event dispatcher has been interrupted, and needs to do // cleanup of modal sessions. Do this before showing the native dialog, otherwise it will @@ -274,7 +274,7 @@ static QString strippedText(QString s) [self updateProperties]; [mSavePanel setDirectoryURL:selectable ? [NSURL fileURLWithPath:QT_PREPEND_NAMESPACE(QCFString::toNSString)(info.filePath())] : [NSURL fileURLWithPath:QT_PREPEND_NAMESPACE(QCFString::toNSString)(info.path())]]; - [mSavePanel setNameFieldStringValue:selectable ? QT_PREPEND_NAMESPACE(QCFString::toNSString)(info.fileName()) : nil]; + [mSavePanel setNameFieldStringValue:selectable ? QT_PREPEND_NAMESPACE(QCFString::toNSString)(info.fileName()) : @""]; NSWindow *nsparent = static_cast<NSWindow *>(qGuiApp->platformNativeInterface()->nativeResourceForWindow("nswindow", parent)); [mSavePanel beginSheetModalForWindow:nsparent completionHandler:^(NSInteger result){ diff --git a/src/plugins/platforms/cocoa/qcocoahelpers.mm b/src/plugins/platforms/cocoa/qcocoahelpers.mm index 5ec2cea362..066b2d9cc1 100644 --- a/src/plugins/platforms/cocoa/qcocoahelpers.mm +++ b/src/plugins/platforms/cocoa/qcocoahelpers.mm @@ -262,7 +262,7 @@ static const KeyPair entries[NumEntries] = { { NSF6FunctionKey, Qt::Key_F6 }, { NSF7FunctionKey, Qt::Key_F7 }, { NSF8FunctionKey, Qt::Key_F8 }, - { NSF9FunctionKey, Qt::Key_F8 }, + { NSF9FunctionKey, Qt::Key_F9 }, { NSF10FunctionKey, Qt::Key_F10 }, { NSF11FunctionKey, Qt::Key_F11 }, { NSF12FunctionKey, Qt::Key_F12 }, @@ -764,6 +764,9 @@ CGContextRef qt_mac_cg_context(QPaintDevice *pdev) return ret; } +// qpaintengine_mac.mm +extern void qt_mac_cgimage_data_free(void *, const void *memoryToFree, size_t); + CGImageRef qt_mac_toCGImage(const QImage &qImage, bool isMask, uchar **dataCopy) { int width = qImage.width(); @@ -777,8 +780,7 @@ CGImageRef qt_mac_toCGImage(const QImage &qImage, bool isMask, uchar **dataCopy) const uchar *imageData = qImage.bits(); if (dataCopy) { - delete[] *dataCopy; - *dataCopy = new uchar[qImage.byteCount()]; + *dataCopy = static_cast<uchar *>(malloc(qImage.byteCount())); memcpy(*dataCopy, imageData, qImage.byteCount()); } int bitDepth = qImage.depth(); @@ -789,7 +791,7 @@ CGImageRef qt_mac_toCGImage(const QImage &qImage, bool isMask, uchar **dataCopy) NULL, dataCopy ? *dataCopy : imageData, qImage.byteCount(), - NULL); + dataCopy ? qt_mac_cgimage_data_free : NULL); CGImageRef cgImage = 0; if (isMask) { diff --git a/src/plugins/platforms/cocoa/qcocoamenuitem.mm b/src/plugins/platforms/cocoa/qcocoamenuitem.mm index 40cffab3c9..dd99a6f3bc 100644 --- a/src/plugins/platforms/cocoa/qcocoamenuitem.mm +++ b/src/plugins/platforms/cocoa/qcocoamenuitem.mm @@ -104,9 +104,9 @@ QCocoaMenuItem::~QCocoaMenuItem() { if (m_merged) { [m_native setHidden:YES]; + } else { + [m_native release]; } - - [m_native release]; } void QCocoaMenuItem::setText(const QString &text) diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm index da53fe9c26..f0f1f56d90 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm @@ -46,6 +46,7 @@ #include "qcocoamenubar.h" #include "qmacmime.h" #include "qcocoahelpers.h" +#include "qcocoaapplication.h" #include <qbytearray.h> #include <qwindow.h> diff --git a/src/plugins/platforms/cocoa/qcocoatheme.mm b/src/plugins/platforms/cocoa/qcocoatheme.mm index beaa50da6d..f8eed0ebf1 100644 --- a/src/plugins/platforms/cocoa/qcocoatheme.mm +++ b/src/plugins/platforms/cocoa/qcocoatheme.mm @@ -74,6 +74,8 @@ QCocoaTheme::QCocoaTheme() QCocoaTheme::~QCocoaTheme() { delete m_systemPalette; + qDeleteAll(m_palettes); + qDeleteAll(m_fonts); } bool QCocoaTheme::usePlatformNativeDialog(DialogType dialogType) const diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index e74f9dcfe0..4e567c6c63 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -211,9 +211,8 @@ QCocoaWindow::QCocoaWindow(QWindow *tlw) m_qtView = [[QNSView alloc] initWithQWindow:tlw platformWindow:this]; m_contentView = m_qtView; setGeometry(tlw->geometry()); - recreateWindow(parent()); - + tlw->setGeometry(geometry()); m_inConstructor = false; } @@ -395,8 +394,11 @@ NSUInteger QCocoaWindow::windowStyleMask(Qt::WindowFlags flags) Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint; if (flags == Qt::Window) { styleMask = (NSResizableWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSTitledWindowMask); - } else if ((flags & Qt::Dialog) && (window()->modality() != Qt::NonModal)) { - styleMask = NSResizableWindowMask | NSTitledWindowMask; + } else if (flags & Qt::Dialog) { + if (window()->modality() == Qt::NonModal) + styleMask = NSResizableWindowMask | NSClosableWindowMask | NSTitledWindowMask; + else + styleMask = NSResizableWindowMask | NSTitledWindowMask; } else if (!(flags & Qt::FramelessWindowHint)) { if ((flags & Qt::Dialog) || (flags & Qt::WindowMaximizeButtonHint)) styleMask |= NSResizableWindowMask; diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index 3046b898df..568cc4bebf 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -102,7 +102,6 @@ static QTouchDevice *touchDevice = 0; { CGImageRelease(m_maskImage); m_maskImage = 0; - delete[] m_maskData; m_maskData = 0; m_window = 0; if (m_subscribesForGlobalFrameNotifications) { @@ -322,6 +321,7 @@ static QTouchDevice *touchDevice = 0; CGImageRelease(m_maskImage); if (region->isEmpty()) { m_maskImage = 0; + return; } const QRect &rect = region->boundingRect(); |