[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