Changeset 846 for trunk/src/gui/dialogs/qfiledialog_mac.mm
- Timestamp:
- May 5, 2011, 5:36:53 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/vendor/nokia/qt/4.7.2 (added) merged: 845 /branches/vendor/nokia/qt/current merged: 844 /branches/vendor/nokia/qt/4.6.3 removed
- Property svn:mergeinfo changed
-
trunk/src/gui/dialogs/qfiledialog_mac.mm
r651 r846 1 1 /**************************************************************************** 2 2 ** 3 ** Copyright (C) 201 0Nokia Corporation and/or its subsidiary(-ies).3 ** Copyright (C) 201 Nokia Corporation and/or its subsidiary(-ies). 4 4 ** All rights reserved. 5 5 ** Contact: Nokia Corporation ([email protected]) … … 83 83 QT_USE_NAMESPACE 84 84 85 @class Q NSOpenSavePanelDelegate;86 87 @interface Q NSOpenSavePanelDelegate: NSObject {85 @class Q; 86 87 @interface Q : NSObject { 88 88 @public 89 89 NSOpenPanel *mOpenPanel; … … 120 120 - (void)createTextField; 121 121 - (void)createPopUpButton:(const QString &)selectedFilter hideDetails:(BOOL)hideDetails; 122 122 123 - (void)createAccessory; 123 124 124 125 @end 125 126 126 @implementation Q NSOpenSavePanelDelegate127 @implementation Q 127 128 128 129 - (id)initWithAcceptMode:(QT_PREPEND_NAMESPACE(QFileDialog::AcceptMode))acceptMode 129 130 title:(const QString &)title 130 nameFilters:(const QStringList &)nameFilters131 selectedNameFilter:(const QString &)selectedNameFilter132 131 hideNameFilterDetails:(bool)hideNameFilterDetails 133 132 qDirFilter:(QT_PREPEND_NAMESPACE(QDir::Filters))qDirFilter … … 159 158 mLastFilterCheckPath = new QString; 160 159 mQDirFilterEntryList = new QStringList; 161 mNameFilterDropDownList = new QStringList(nameFilters); 162 mSelectedNameFilter = new QStringList(qt_clean_filter_list(selectedNameFilter)); 160 mNameFilterDropDownList = new QStringList(priv->nameFilters); 161 QString selectedVisualNameFilter = priv->qFileDialogUi->fileTypeCombo->currentText(); 162 mSelectedNameFilter = new QStringList([self findStrippedFilterWithVisualFilterName:selectedVisualNameFilter]); 163 163 164 QFileInfo sel(selectFile); 164 165 if (sel.isDir()){ … … 169 170 mCurrentSelection = new QString(sel.absoluteFilePath()); 170 171 } 172 171 173 [mSavePanel setTitle:qt_mac_QStringToNSString(title)]; 172 [self createPopUpButton:selected NameFilter hideDetails:hideNameFilterDetails];174 [self createPopUpButton:selectedNameFilter hideDetails:hideNameFilterDetails]; 173 175 [self createTextField]; 174 176 [self createAccessory]; … … 285 287 return NO; 286 288 289 290 291 292 293 294 295 296 297 287 298 QString qtFileName = QT_PREPEND_NAMESPACE(qt_mac_NSStringToQString)(filename); 288 299 QFileInfo info(qtFileName.normalized(QT_PREPEND_NAMESPACE(QString::NormalizationForm_C))); … … 295 306 if (!mQDirFilterEntryList->contains(info.fileName())) 296 307 return NO; 297 298 // Always accept directories regardless of their names:299 BOOL isDir;300 if ([[NSFileManager defaultManager] fileExistsAtPath:filename isDirectory:&isDir] && isDir)301 return YES;302 308 303 309 // No filter means accept everything … … 347 353 Q_UNUSED(sender); 348 354 QString selection = mNameFilterDropDownList->value([mPopUpButton indexOfSelectedItem]); 349 *mSelectedNameFilter = QT_PREPEND_NAMESPACE(qt_clean_filter_list)(selection);355 *mSelectedNameFilter = ; 350 356 [mSavePanel validateVisibleColumns]; 351 357 [self updateProperties]; … … 490 496 QString filter = hideDetails ? [self removeExtensions:filters->at(i)] : filters->at(i); 491 497 [mPopUpButton addItemWithTitle:QT_PREPEND_NAMESPACE(qt_mac_QStringToNSString)(filter)]; 492 if (filters->at(i) == selectedFilter)498 if (filters->at(i)) 493 499 [mPopUpButton selectItemAtIndex:i]; 494 500 } 495 501 } 502 503 504 505 506 507 508 509 510 496 511 } 497 512 … … 551 566 #else 552 567 QMacCocoaAutoReleasePool pool; 553 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);568 Q *>(mDelegate); 554 569 [delegate->mSavePanel setDirectory:qt_mac_QStringToNSString(directory)]; 555 570 #endif … … 562 577 #else 563 578 QMacCocoaAutoReleasePool pool; 564 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);579 Q *>(mDelegate); 565 580 return qt_mac_NSStringToQString([delegate->mSavePanel directory]); 566 581 #endif … … 619 634 #else 620 635 QMacCocoaAutoReleasePool pool; 621 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);636 Q *>(mDelegate); 622 637 return [delegate selectedFiles]; 623 638 #endif … … 630 645 #else 631 646 QMacCocoaAutoReleasePool pool; 632 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);647 Q *>(mDelegate); 633 648 bool hideDetails = q_func()->testOption(QFileDialog::HideNameFilterDetails); 634 649 [delegate setNameFilters:filters hideDetails:hideDetails]; … … 642 657 Q_Q(QFileDialog); 643 658 QMacCocoaAutoReleasePool pool; 644 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);659 Q *>(mDelegate); 645 660 *(delegate->mQDirFilter) = model->filter(); 646 661 delegate->mFileMode = fileMode; … … 665 680 #else 666 681 QMacCocoaAutoReleasePool pool; 667 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);682 Q *>(mDelegate); 668 683 [delegate->mPopUpButton selectItemAtIndex:index]; 669 684 [delegate filterChanged:nil]; … … 678 693 #else 679 694 QMacCocoaAutoReleasePool pool; 680 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);695 Q *>(mDelegate); 681 696 int index = [delegate->mPopUpButton indexOfSelectedItem]; 682 697 #endif … … 693 708 #else 694 709 QMacCocoaAutoReleasePool pool; 695 [reinterpret_cast<Q NSOpenSavePanelDelegate*>(mDelegate) release];710 [reinterpret_cast<Q *>(mDelegate) release]; 696 711 mDelegate = 0; 697 712 #endif … … 704 719 if (!visible == q->isHidden()) 705 720 return false; 721 722 723 724 725 726 727 728 706 729 707 730 #ifndef QT_MAC_USE_COCOA … … 726 749 NavFileOrFolderInfo *theInfo = static_cast<NavFileOrFolderInfo *>(info); 727 750 QString file; 751 728 752 const QtMacFilterName &fn 729 753 = fileDialogPrivate->filterInfo.filters.at(fileDialogPrivate->filterInfo.currentSelection); … … 733 757 UInt8 str_buffer[1024]; 734 758 FSRefMakePath(&ref, str_buffer, 1024); 735 file= QString::fromUtf8(reinterpret_cast<const char *>(str_buffer));736 int slsh = file.lastIndexOf(QLatin1Char('/'));759 = QString::fromUtf8(reinterpret_cast<const char *>(str_buffer)); 760 int slsh = .lastIndexOf(QLatin1Char('/')); 737 761 if (slsh != -1) 738 file = file.right(file.length() - slsh - 1); 762 file = path.right(path.length() - slsh - 1); 763 else 764 file = path; 739 765 } 740 766 QStringList reg = fn.regexp.split(QLatin1String(";")); … … 748 774 return true; 749 775 } 750 return (theInfo->isFolder && !file.endsWith(QLatin1String(".app"))); 776 777 if (theInfo->isFolder) { 778 if ([[NSWorkspace sharedWorkspace] isFilePackageAtPath:qt_mac_QStringToNSString(path)]) 779 return false; 780 return true; 781 } 782 return false; 751 783 } 752 784 … … 770 802 fileDialogPrivate->filterInfo.currentSelection); 771 803 QStringList reg = fn.regexp.split(QLatin1String(";"), QString::SkipEmptyParts); 772 QString r = reg.first(); 773 r = r.right(r.length()-1); // Strip the * 774 base += r; //"." + QString::number(s->menuType); 804 if (reg.count()) { 805 QString r = reg.first(); 806 r = r.right(r.length()-1); // Strip the * 807 base += r; //"." + QString::number(s->menuType); 808 } 775 809 NavDialogSetSaveFileName(p->context, QCFString::toCFStringRef(base)); 776 810 } … … 1022 1056 bool selectDir = q->selectedFiles().isEmpty(); 1023 1057 QString selection(selectDir ? q->directory().absolutePath() : q->selectedFiles().value(0)); 1024 Q NSOpenSavePanelDelegate *delegate = [[QNSOpenSavePanelDelegatealloc]1058 Q alloc] 1025 1059 initWithAcceptMode:acceptMode 1026 1060 title:q->windowTitle() 1027 nameFilters:q->nameFilters()1028 selectedNameFilter:q->selectedNameFilter()1029 1061 hideNameFilterDetails:q->testOption(QFileDialog::HideNameFilterDetails) 1030 1062 qDirFilter:model->filter() … … 1043 1075 QMacCocoaAutoReleasePool pool; 1044 1076 createNSOpenSavePanelDelegate(); 1045 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);1077 Q *>(mDelegate); 1046 1078 if (qt_mac_is_macsheet(q)) 1047 1079 [delegate showWindowModalSheet:q->parentWidget()]; … … 1059 1091 } else { 1060 1092 QMacCocoaAutoReleasePool pool; 1061 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);1093 Q *>(mDelegate); 1062 1094 [delegate closePanel]; 1063 1095 // Even when we hide it, we are still using a … … 1092 1124 Q_Q(QFileDialog); 1093 1125 QMacCocoaAutoReleasePool pool; 1094 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);1126 Q *>(mDelegate); 1095 1127 [delegate runApplicationModalPanel]; 1096 1128 dialogResultCode_sys() == QDialog::Accepted ? q->accept() : q->reject(); … … 1107 1139 return QDialog::Accepted; 1108 1140 #else 1109 Q NSOpenSavePanelDelegate *delegate = static_cast<QNSOpenSavePanelDelegate*>(mDelegate);1141 Q *>(mDelegate); 1110 1142 return [delegate dialogResultCode]; 1111 1143 #endif
Note:
See TracChangeset
for help on using the changeset viewer.