[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [osx-integration/qt590] src/qcocoa-qpa: QAltCocoa : merge Qt v5.9.4-86-gfef6b31b99
From: R.J.V. Bertin <null () kde ! org>
Date: 2018-02-07 14:45:58
Message-ID: E1ejQz0-0007hP-BG () code ! kde ! org
[Download RAW message or body]
Git commit 8e831bf702aa6539491798b19331250986f71106 by R.J.V. Bertin.
Committed on 07/02/2018 at 14:42.
Pushed by rjvbb into branch 'qt590'.
QAltCocoa : merge Qt v5.9.4-86-gfef6b31b99
Committed from host : Portia.local
M +11 -0 src/qcocoa-qpa/README.ALT
A +54 -0 src/qcocoa-qpa/patches/32-sync-upstream-180207.diff
M +8 -4 src/qcocoa-qpa/qcocoafiledialoghelper.mm
M +4 -2 src/qcocoa-qpa/qcocoamenu.mm
https://commits.kde.org/osx-integration/8e831bf702aa6539491798b19331250986f71106
diff --git a/src/qcocoa-qpa/README.ALT b/src/qcocoa-qpa/README.ALT
index 501032e..8cdaea7 100644
--- a/src/qcocoa-qpa/README.ALT
+++ b/src/qcocoa-qpa/README.ALT
@@ -1,3 +1,14 @@
+20180207 : upstream head (5.9): fef6b31b994befac0ee14391572ebc2b9b33e104 \
(v5.9.4-86-gfef6b31b99) + src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm \
| 12 ++- + src/plugins/platforms/cocoa/qcocoamenu.mm | 6 +-
+patch: patches/32-sync-upstream-180207.diff
+Changes: git log 5a05348fb6c3940449a9c2950bb65bdea2112a15..fef6b31b994befac0ee14391572ebc2b9b33e104 \
src/plugins/platforms/cocoa +commit 1ffc6ba402114a3443df5309dec186fd337e5b66
+ macOS: fix menu positioning on high-DPI
+commit 9b2913377807b3dae107befeec0bc488f4a2cbad
+ Fix QFileDialog::defaultSuffix on macOS
+
+
20180128 : upstream head (5.9): 5a05348fb6c3940449a9c2950bb65bdea2112a15 \
(v5.9.4-70-g5a05348fb6) src/plugins/platforms/cocoa/qcocoaapplication.h \
| 12 - src/plugins/platforms/cocoa/qcocoaapplication.mm \
| 30 +-
diff --git a/src/qcocoa-qpa/patches/32-sync-upstream-180207.diff \
b/src/qcocoa-qpa/patches/32-sync-upstream-180207.diff new file mode 100644
index 0000000..5674139
--- /dev/null
+++ b/src/qcocoa-qpa/patches/32-sync-upstream-180207.diff
@@ -0,0 +1,54 @@
+diff --git a/cocoa/qcocoafiledialoghelper.mm b/cocoa/qcocoafiledialoghelper.mm
+index bb1a9c3..5a4788c 100644
+--- a/cocoa/qcocoafiledialoghelper.mm
++++ b/cocoa/qcocoafiledialoghelper.mm
+@@ -422,6 +422,13 @@ static QString strippedText(QString s)
+ } else {
+ QList<QUrl> result;
+ QString filename = QString::fromNSString([[mSavePanel URL] \
path]).normalized(QString::NormalizationForm_C); ++ const QString \
defaultSuffix = mOptions->defaultSuffix(); ++ const QFileInfo \
fileInfo(filename); ++ // If neither the user or the NSSavePanel have provided \
a suffix, use ++ // the default suffix (if it exists).
++ if (fileInfo.suffix().isEmpty() && !defaultSuffix.isEmpty()) {
++ filename.append('.').append(defaultSuffix);
++ }
+ result << QUrl::fromLocalFile(filename.remove(QLatin1String("___qt_very_unlikely_prefix_")));
+ return result;
+ }
+@@ -449,10 +456,7 @@ static QString strippedText(QString s)
+ [mPopUpButton setHidden:chooseDirsOnly]; // TODO hide the whole sunken pane \
instead? +
+ if (mOptions->acceptMode() == QFileDialogOptions::AcceptSave) {
+- QStringList ext = [self acceptableExtensionsForSave];
+- const QString defaultSuffix = mOptions->defaultSuffix();
+- if (!ext.isEmpty() && !defaultSuffix.isEmpty())
+- ext.prepend(defaultSuffix);
++ const QStringList ext = [self acceptableExtensionsForSave];
+ [mSavePanel setAllowedFileTypes:ext.isEmpty() ? nil : \
qt_mac_QStringListToNSMutableArray(ext)]; + } else {
+ [mOpenPanel setAllowedFileTypes:nil]; // delegate panel:shouldEnableURL: \
does the file filtering for NSOpenPanel +diff --git a/cocoa/qcocoamenu.mm \
b/cocoa/qcocoamenu.mm +index 77eca5a..14ce632 100644
+--- a/cocoa/qcocoamenu.mm
++++ b/cocoa/qcocoamenu.mm
+@@ -46,6 +46,7 @@
+ #include <QtCore/private/qthread_p.h>
+ #include <QtGui/private/qguiapplication_p.h>
+ #include "qcocoaapplication.h"
++#include "qcocoaintegration.h"
+ #include "qcocoamenuloader.h"
+ #include "qcocoamenubar.h"
+ #include "qcocoawindow.h"
+@@ -596,8 +597,9 @@ void QCocoaMenu::showPopup(const QWindow *parentWindow, const \
QRect &targetRect, + [popupCell setMenu:m_nativeMenu];
+ [popupCell selectItem:nsItem];
+
+- int availableHeight = screen->availableSize().height();
+- const QPoint &globalPos = parentWindow->mapToGlobal(pos);
++ QCocoaScreen *cocoaScreen = static_cast<QCocoaScreen *>(screen->handle());
++ int availableHeight = cocoaScreen->availableGeometry().height();
++ const QPoint &globalPos = cocoaWindow->mapToGlobal(pos);
+ int menuHeight = m_nativeMenu.size.height;
+ if (globalPos.y() + menuHeight > availableHeight) {
+ // Maybe we need to fix the vertical popup position but we don't know \
the
diff --git a/src/qcocoa-qpa/qcocoafiledialoghelper.mm \
b/src/qcocoa-qpa/qcocoafiledialoghelper.mm index bb1a9c3..5a4788c 100644
--- a/src/qcocoa-qpa/qcocoafiledialoghelper.mm
+++ b/src/qcocoa-qpa/qcocoafiledialoghelper.mm
@@ -422,6 +422,13 @@ static QString strippedText(QString s)
} else {
QList<QUrl> result;
QString filename = QString::fromNSString([[mSavePanel URL] \
path]).normalized(QString::NormalizationForm_C); + const QString defaultSuffix \
= mOptions->defaultSuffix(); + const QFileInfo fileInfo(filename);
+ // If neither the user or the NSSavePanel have provided a suffix, use
+ // the default suffix (if it exists).
+ if (fileInfo.suffix().isEmpty() && !defaultSuffix.isEmpty()) {
+ filename.append('.').append(defaultSuffix);
+ }
result << QUrl::fromLocalFile(filename.remove(QLatin1String("___qt_very_unlikely_prefix_")));
return result;
}
@@ -449,10 +456,7 @@ static QString strippedText(QString s)
[mPopUpButton setHidden:chooseDirsOnly]; // TODO hide the whole sunken pane \
instead?
if (mOptions->acceptMode() == QFileDialogOptions::AcceptSave) {
- QStringList ext = [self acceptableExtensionsForSave];
- const QString defaultSuffix = mOptions->defaultSuffix();
- if (!ext.isEmpty() && !defaultSuffix.isEmpty())
- ext.prepend(defaultSuffix);
+ const QStringList ext = [self acceptableExtensionsForSave];
[mSavePanel setAllowedFileTypes:ext.isEmpty() ? nil : \
qt_mac_QStringListToNSMutableArray(ext)]; } else {
[mOpenPanel setAllowedFileTypes:nil]; // delegate panel:shouldEnableURL: \
does the file filtering for NSOpenPanel
diff --git a/src/qcocoa-qpa/qcocoamenu.mm b/src/qcocoa-qpa/qcocoamenu.mm
index 77eca5a..14ce632 100644
--- a/src/qcocoa-qpa/qcocoamenu.mm
+++ b/src/qcocoa-qpa/qcocoamenu.mm
@@ -46,6 +46,7 @@
#include <QtCore/private/qthread_p.h>
#include <QtGui/private/qguiapplication_p.h>
#include "qcocoaapplication.h"
+#include "qcocoaintegration.h"
#include "qcocoamenuloader.h"
#include "qcocoamenubar.h"
#include "qcocoawindow.h"
@@ -596,8 +597,9 @@ void QCocoaMenu::showPopup(const QWindow *parentWindow, const \
QRect &targetRect, [popupCell setMenu:m_nativeMenu];
[popupCell selectItem:nsItem];
- int availableHeight = screen->availableSize().height();
- const QPoint &globalPos = parentWindow->mapToGlobal(pos);
+ QCocoaScreen *cocoaScreen = static_cast<QCocoaScreen *>(screen->handle());
+ int availableHeight = cocoaScreen->availableGeometry().height();
+ const QPoint &globalPos = cocoaWindow->mapToGlobal(pos);
int menuHeight = m_nativeMenu.size.height;
if (globalPos.y() + menuHeight > availableHeight) {
// Maybe we need to fix the vertical popup position but we don't know \
the
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic