diff options
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm')
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm | 60 |
1 files changed, 26 insertions, 34 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm index 94f2125bad..bab673dd64 100644 --- a/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm +++ b/src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm @@ -50,7 +50,6 @@ #include <private/qguiapplication_p.h> #include "qt_mac_p.h" #include "qcocoahelpers.h" -#include "qcocoamenubar.h" #include "qcocoaeventdispatcher.h" #include <qregexp.h> #include <qbuffer.h> @@ -81,23 +80,6 @@ typedef QSharedPointer<QFileDialogOptions> SharedPointerFileDialogOptions; @interface QT_MANGLE_NAMESPACE(QNSOpenSavePanelDelegate) : NSObject<NSOpenSavePanelDelegate> -{ - @public - NSOpenPanel *mOpenPanel; - NSSavePanel *mSavePanel; - NSView *mAccessoryView; - NSPopUpButton *mPopUpButton; - NSTextField *mTextField; - QCocoaFileDialogHelper *mHelper; - NSString *mCurrentDir; - - int mReturnCode; - - SharedPointerFileDialogOptions mOptions; - QString *mCurrentSelection; - QStringList *mNameFilterDropDownList; - QStringList *mSelectedNameFilter; -} - (NSString *)strip:(const QString &)label; - (BOOL)panel:(id)sender shouldEnableURL:(NSURL *)url; @@ -117,12 +99,27 @@ typedef QSharedPointer<QFileDialogOptions> SharedPointerFileDialogOptions; QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSOpenSavePanelDelegate); -@implementation QNSOpenSavePanelDelegate +@implementation QNSOpenSavePanelDelegate { + @public + NSOpenPanel *mOpenPanel; + NSSavePanel *mSavePanel; + NSView *mAccessoryView; + NSPopUpButton *mPopUpButton; + NSTextField *mTextField; + QCocoaFileDialogHelper *mHelper; + NSString *mCurrentDir; + + int mReturnCode; + + SharedPointerFileDialogOptions mOptions; + QString *mCurrentSelection; + QStringList *mNameFilterDropDownList; + QStringList *mSelectedNameFilter; +} -- (id)initWithAcceptMode: - (const QString &)selectFile - options:(SharedPointerFileDialogOptions)options - helper:(QCocoaFileDialogHelper *)helper +- (instancetype)initWithAcceptMode:(const QString &)selectFile + options:(SharedPointerFileDialogOptions)options + helper:(QCocoaFileDialogHelper *)helper { self = [super init]; mOptions = options; @@ -132,7 +129,7 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSOpenSavePanelDelegate); } else { mSavePanel = [NSSavePanel savePanel]; [mSavePanel setCanSelectHiddenExtension:YES]; - mOpenPanel = 0; + mOpenPanel = nil; } if ([mSavePanel respondsToSelector:@selector(setLevel:)]) @@ -222,7 +219,6 @@ static QString strippedText(QString s) || [self panel:nil shouldEnableURL:url]; [self updateProperties]; - QCocoaMenuBar::redirectKnownMenuItemsToFirstResponder(); [mSavePanel setNameFieldStringValue:selectable ? info.fileName().toNSString() : @""]; [mOpenPanel beginWithCompletionHandler:^(NSInteger result){ @@ -252,9 +248,7 @@ static QString strippedText(QString s) // Make sure we don't interrupt the runModal call below. QCocoaEventDispatcher::clearCurrentThreadCocoaEventDispatcherInterruptFlag(); - QCocoaMenuBar::redirectKnownMenuItemsToFirstResponder(); mReturnCode = [mSavePanel runModal]; - QCocoaMenuBar::resetKnownMenuItemsToQt(); QAbstractEventDispatcher::instance()->interrupt(); return (mReturnCode == NSModalResponseOK); @@ -274,7 +268,6 @@ static QString strippedText(QString s) || [self panel:nil shouldEnableURL:url]; [self updateProperties]; - QCocoaMenuBar::redirectKnownMenuItemsToFirstResponder(); [mSavePanel setDirectoryURL: [NSURL fileURLWithPath:mCurrentDir]]; [mSavePanel setNameFieldStringValue:selectable ? info.fileName().toNSString() : @""]; @@ -406,9 +399,9 @@ static QString strippedText(QString s) { if (mOpenPanel) { QList<QUrl> result; - NSArray* array = [mOpenPanel URLs]; - for (NSUInteger i=0; i<[array count]; ++i) { - QString path = QString::fromNSString([[array objectAtIndex:i] path]).normalized(QString::NormalizationForm_C); + NSArray<NSURL *> *array = [mOpenPanel URLs]; + for (NSURL *url in array) { + QString path = QString::fromNSString(url.path).normalized(QString::NormalizationForm_C); result << QUrl::fromLocalFile(path); } return result; @@ -576,7 +569,7 @@ static QString strippedText(QString s) QT_BEGIN_NAMESPACE QCocoaFileDialogHelper::QCocoaFileDialogHelper() - :mDelegate(0) + : mDelegate(nil) { } @@ -586,7 +579,7 @@ QCocoaFileDialogHelper::~QCocoaFileDialogHelper() return; QMacAutoReleasePool pool; [mDelegate release]; - mDelegate = 0; + mDelegate = nil; } void QCocoaFileDialogHelper::QNSOpenSavePanelDelegate_selectionChanged(const QString &newPath) @@ -596,7 +589,6 @@ void QCocoaFileDialogHelper::QNSOpenSavePanelDelegate_selectionChanged(const QSt void QCocoaFileDialogHelper::QNSOpenSavePanelDelegate_panelClosed(bool accepted) { - QCocoaMenuBar::resetKnownMenuItemsToQt(); if (accepted) { emit accept(); } else { |