Ignore:
Timestamp:
Mar 8, 2010, 12:52:58 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.2 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/dialogs/qfiledialog.cpp

    r561 r651  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    670670    if (changed & HideNameFilterDetails)
    671671        setNameFilters(d->nameFilters);
     672
     673    if (changed & ShowDirsOnly)
     674        setFilter((options & ShowDirsOnly) ? filter() & ~QDir::Files : filter() | QDir::Files);
    672675}
    673676
     
    996999
    9971000
     1001/*
     1002    Strip the filters by removing the details, e.g. (*.*).
     1003*/
     1004QStringList qt_strip_filters(const QStringList &filters)
     1005{
     1006    QStringList strippedFilters;
     1007    QRegExp r(QString::fromLatin1(qt_file_dialog_filter_reg_exp));
     1008    for (int i = 0; i < filters.count(); ++i) {
     1009        QString filterName;
     1010        int index = r.indexIn(filters[i]);
     1011        if (index >= 0)
     1012            filterName = r.cap(1);
     1013        strippedFilters.append(filterName.simplified());
     1014    }
     1015    return strippedFilters;
     1016}
     1017
     1018
    9981019/*!
    9991020    \since 4.4
     
    10221043        return;
    10231044
    1024     if (testOption(HideNameFilterDetails)) {
    1025         QStringList strippedFilters;
    1026         QRegExp r(QString::fromLatin1(qt_file_dialog_filter_reg_exp));
    1027         for (int i = 0; i < cleanedFilters.count(); ++i) {
    1028             QString filterName;
    1029             int index = r.indexIn(cleanedFilters[i]);
    1030             if (index >= 0)
    1031                 filterName = r.cap(1);
    1032             strippedFilters.append(filterName.simplified());
    1033         }
    1034         d->qFileDialogUi->fileTypeCombo->addItems(strippedFilters);
    1035     } else {
     1045    if (testOption(HideNameFilterDetails))
     1046        d->qFileDialogUi->fileTypeCombo->addItems(qt_strip_filters(cleanedFilters));
     1047    else
    10361048        d->qFileDialogUi->fileTypeCombo->addItems(cleanedFilters);
    1037     }
     1049
    10381050    d->_q_useNameFilter(0);
    10391051}
     
    10861098        return;
    10871099    }
    1088 
    1089     int i = d->qFileDialogUi->fileTypeCombo->findText(filter);
     1100    int i;
     1101    if (testOption(HideNameFilterDetails)) {
     1102        i = d->qFileDialogUi->fileTypeCombo->findText(qt_strip_filters(qt_make_filter_list(filter)).first());
     1103    } else {
     1104        i = d->qFileDialogUi->fileTypeCombo->findText(filter);
     1105    }
    10901106    if (i >= 0) {
    10911107        d->qFileDialogUi->fileTypeCombo->setCurrentIndex(i);
     
    12071223{
    12081224    Q_D(QFileDialog);
    1209     if (d->nativeDialogInUse){
    1210         d->model->setFilter(d->filterForMode(filter()));
    1211         d->setFilter_sys();
    1212         return;
    1213     }
    1214 
    12151225    d->fileMode = mode;
    12161226    d->retranslateWindowTitle();
     
    12481258    }
    12491259    setLabelText(Accept, buttonText);
     1260    if (d->nativeDialogInUse){
     1261        d->setFilter_sys();
     1262        return;
     1263    }
     1264
    12501265    d->qFileDialogUi->fileTypeCombo->setEnabled(!testOption(ShowDirsOnly));
    12511266    d->_q_updateOkButton();
     
    12851300    }
    12861301    d->retranslateWindowTitle();
     1302#if defined(Q_WS_MAC)
     1303    d->deleteNativeDialog_sys();
     1304    setAttribute(Qt::WA_DontShowOnScreen, false);
     1305#endif
    12871306}
    12881307
     
    32303249    QString path = index.data(QFileSystemModel::FilePathRole).toString();
    32313250    if (!currentLocation.isEmpty() && path.startsWith(currentLocation)) {
     3251#if defined(Q_OS_UNIX) || defined(Q_OS_WINCE)
     3252        if (currentLocation == QDir::separator())
     3253            return path.mid(currentLocation.length());
     3254#endif
    32323255        return path.mid(currentLocation.length() + 1);
    32333256    }
     
    32853308            dirModel = sourceModel;
    32863309        QString currentLocation = QDir::toNativeSeparators(dirModel->rootPath());
     3310#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
     3311        if (currentLocation.endsWith(QLatin1Char(':')))
     3312            currentLocation.append(sep);
     3313#endif
    32873314        if (currentLocation.contains(sep) && path != currentLocation) {
    32883315            QStringList currentLocationList = splitPath(currentLocation);
Note: See TracChangeset for help on using the changeset viewer.