| Line | Source Code | Coverage | 
|---|
| 1 |   | - | 
| 2 |   | - | 
| 3 |   | - | 
| 4 |   | - | 
| 5 |   | - | 
| 6 |   | - | 
| 7 | static QString *lastVisitedDir() { static QGlobalStatic<QString > thisGlobalStatic = { { (0) }, false }; if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { QString *x = new QString; if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) delete x; else static QGlobalStaticDeleter<QString > cleanup(thisGlobalStatic); } return thisGlobalStatic.pointer.load(); } never executed: delete x; executed:  return thisGlobalStatic.pointer.load();Execution Count:960  partially evaluated:  !thisGlobalStatic.pointer.testAndSetOrdered(0, x)| no Evaluation Count:0  | yes Evaluation Count:2  |  
  evaluated:  !thisGlobalStatic.pointer.load()| yes Evaluation Count:2  | yes Evaluation Count:958  |  
  partially evaluated:  !thisGlobalStatic.destroyed| yes Evaluation Count:2  | no Evaluation Count:0  |  
   | 0-960 | 
| 8 |   | - | 
| 9 |   | - | 
| 10 |   | - | 
| 11 |   | - | 
| 12 |   | - | 
| 13 |   | - | 
| 14 | typedef QString (*_qt_filedialog_existing_directory_hook)(QWidget *parent, const QString &caption, const QString &dir, QFileDialog::Options options);  | - | 
| 15 | __attribute__((visibility("default"))) _qt_filedialog_existing_directory_hook qt_filedialog_existing_directory_hook = 0;  | - | 
| 16 |   | - | 
| 17 | typedef QString (*_qt_filedialog_open_filename_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options);  | - | 
| 18 | __attribute__((visibility("default"))) _qt_filedialog_open_filename_hook qt_filedialog_open_filename_hook = 0;  | - | 
| 19 |   | - | 
| 20 | typedef QStringList (*_qt_filedialog_open_filenames_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options);  | - | 
| 21 | __attribute__((visibility("default"))) _qt_filedialog_open_filenames_hook qt_filedialog_open_filenames_hook = 0;  | - | 
| 22 |   | - | 
| 23 | typedef QString (*_qt_filedialog_save_filename_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options);  | - | 
| 24 | __attribute__((visibility("default"))) _qt_filedialog_save_filename_hook qt_filedialog_save_filename_hook = 0;  | - | 
| 25 |   | - | 
| 26 |   | - | 
| 27 |   | - | 
| 28 |   | - | 
| 29 |   | - | 
| 30 |   | - | 
| 31 |   | - | 
| 32 |   | - | 
| 33 |   | - | 
| 34 |   | - | 
| 35 |   | - | 
| 36 |   | - | 
| 37 |   | - | 
| 38 |   | - | 
| 39 | QFileDialog::QFileDialog(QWidget *parent, Qt::WindowFlags f)  | - | 
| 40 |     : QDialog(*new QFileDialogPrivate, parent, f)  | - | 
| 41 | {  | - | 
| 42 |     QFileDialogPrivate * const d = d_func();  | - | 
| 43 |     d->init();  | - | 
| 44 |     d->lineEdit()->selectAll();  | - | 
| 45 | }  | 0 | 
| 46 | QFileDialog::QFileDialog(QWidget *parent,  | - | 
| 47 |                      const QString &caption,  | - | 
| 48 |                      const QString &directory,  | - | 
| 49 |                      const QString &filter)  | - | 
| 50 |     : QDialog(*new QFileDialogPrivate, parent, 0)  | - | 
| 51 | {  | - | 
| 52 |     QFileDialogPrivate * const d = d_func();  | - | 
| 53 |     d->init(directory, filter, caption);  | - | 
| 54 |     d->lineEdit()->selectAll();  | - | 
| 55 | } executed:  }Execution Count:189   | 189 | 
| 56 |   | - | 
| 57 |   | - | 
| 58 |   | - | 
| 59 |   | - | 
| 60 | QFileDialog::QFileDialog(const QFileDialogArgs &args)  | - | 
| 61 |     : QDialog(*new QFileDialogPrivate, args.parent, 0)  | - | 
| 62 | {  | - | 
| 63 |     QFileDialogPrivate * const d = d_func();  | - | 
| 64 |     d->init(args.directory, args.filter, args.caption);  | - | 
| 65 |     setFileMode(args.mode);  | - | 
| 66 |     setOptions(args.options);  | - | 
| 67 |     selectFile(args.selection);  | - | 
| 68 |     d->lineEdit()->selectAll();  | - | 
| 69 | }  | 0 | 
| 70 |   | - | 
| 71 |   | - | 
| 72 |   | - | 
| 73 |   | - | 
| 74 | QFileDialog::~QFileDialog()  | - | 
| 75 | {  | - | 
| 76 |   | - | 
| 77 |     QSettings settings(QSettings::UserScope, QLatin1String("QtProject"));  | - | 
| 78 |     settings.beginGroup(QLatin1String("Qt"));  | - | 
| 79 |     settings.setValue(QLatin1String("filedialog"), saveState());  | - | 
| 80 |   | - | 
| 81 | } executed:  }Execution Count:189   | 189 | 
| 82 | void QFileDialog::setSidebarUrls(const QList<QUrl> &urls)  | - | 
| 83 | {  | - | 
| 84 |     QFileDialogPrivate * const d = d_func();  | - | 
| 85 |     d->qFileDialogUi->sidebar->setUrls(urls);  | - | 
| 86 | }  | 0 | 
| 87 |   | - | 
| 88 |   | - | 
| 89 |   | - | 
| 90 |   | - | 
| 91 |   | - | 
| 92 | QList<QUrl> QFileDialog::sidebarUrls() const  | - | 
| 93 | {  | - | 
| 94 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 95 |     return d->qFileDialogUi->sidebar->urls(); never executed: return d->qFileDialogUi->sidebar->urls();  | 0 | 
| 96 | }  | - | 
| 97 |   | - | 
| 98 | static const qint32 QFileDialogMagic = 0xbe;  | - | 
| 99 | QByteArray QFileDialog::saveState() const  | - | 
| 100 | {  | - | 
| 101 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 102 |     int version = 3;  | - | 
| 103 |     QByteArray data;  | - | 
| 104 |     QDataStream stream(&data, QIODevice::WriteOnly);  | - | 
| 105 |   | - | 
| 106 |     stream << qint32(QFileDialogMagic);  | - | 
| 107 |     stream << qint32(version);  | - | 
| 108 |     stream << d->qFileDialogUi->splitter->saveState();  | - | 
| 109 |     stream << d->qFileDialogUi->sidebar->urls();  | - | 
| 110 |     stream << history();  | - | 
| 111 |     stream << *lastVisitedDir();  | - | 
| 112 |     stream << d->qFileDialogUi->treeView->header()->saveState();  | - | 
| 113 |     stream << qint32(viewMode());  | - | 
| 114 |     return data; executed:  return data;Execution Count:191   | 191 | 
| 115 | }  | - | 
| 116 | bool QFileDialog::restoreState(const QByteArray &state)  | - | 
| 117 | {  | - | 
| 118 |     QFileDialogPrivate * const d = d_func();  | - | 
| 119 |     int version = 3;  | - | 
| 120 |     QByteArray sd = state;  | - | 
| 121 |     QDataStream stream(&sd, QIODevice::ReadOnly);  | - | 
| 122 |     if (stream.atEnd()) evaluated:  stream.atEnd()| yes Evaluation Count:84  | yes Evaluation Count:107  |  
   | 84-107 | 
| 123 |         return false; executed:  return false;Execution Count:84   | 84 | 
| 124 |     QByteArray splitterState;  | - | 
| 125 |     QByteArray headerData;  | - | 
| 126 |     QList<QUrl> bookmarks;  | - | 
| 127 |     QStringList history;  | - | 
| 128 |     QString currentDirectory;  | - | 
| 129 |     qint32 marker;  | - | 
| 130 |     qint32 v;  | - | 
| 131 |     qint32 viewMode;  | - | 
| 132 |     stream >> marker;  | - | 
| 133 |     stream >> v;  | - | 
| 134 |     if (marker != QFileDialogMagic || v != version) partially evaluated:  marker != QFileDialogMagic| no Evaluation Count:0  | yes Evaluation Count:107  |  
  partially evaluated:  v != version| no Evaluation Count:0  | yes Evaluation Count:107  |  
   | 0-107 | 
| 135 |         return false; never executed: return false;  | 0 | 
| 136 |   | - | 
| 137 |     stream >> splitterState  | - | 
| 138 |            >> bookmarks  | - | 
| 139 |            >> history  | - | 
| 140 |            >> currentDirectory  | - | 
| 141 |            >> headerData  | - | 
| 142 |            >> viewMode;  | - | 
| 143 |   | - | 
| 144 |     if (!d->qFileDialogUi->splitter->restoreState(splitterState)) partially evaluated:  !d->qFileDialogUi->splitter->restoreState(splitterState)| no Evaluation Count:0  | yes Evaluation Count:107  |  
   | 0-107 | 
| 145 |         return false; never executed: return false;  | 0 | 
| 146 |     QList<int> list = d->qFileDialogUi->splitter->sizes();  | - | 
| 147 |     if (list.count() >= 2 && list.at(0) == 0 && list.at(1) == 0) { partially evaluated:  list.count() >= 2| yes Evaluation Count:107  | no Evaluation Count:0  |  
  partially evaluated:  list.at(0) == 0| no Evaluation Count:0  | yes Evaluation Count:107  |  
  never evaluated: list.at(1) == 0  | 0-107 | 
| 148 |         for (int i = 0; i < list.count(); ++i) never evaluated: i < list.count()  | 0 | 
| 149 |             list[i] = d->qFileDialogUi->splitter->widget(i)->sizeHint().width(); never executed: list[i] = d->qFileDialogUi->splitter->widget(i)->sizeHint().width();  | 0 | 
| 150 |         d->qFileDialogUi->splitter->setSizes(list);  | - | 
| 151 |     }  | 0 | 
| 152 |   | - | 
| 153 |     d->qFileDialogUi->sidebar->setUrls(bookmarks);  | - | 
| 154 |     while (history.count() > 5) partially evaluated:  history.count() > 5| no Evaluation Count:0  | yes Evaluation Count:107  |  
   | 0-107 | 
| 155 |         history.pop_front(); never executed: history.pop_front();  | 0 | 
| 156 |     setHistory(history);  | - | 
| 157 |     setDirectory(lastVisitedDir()->isEmpty() ? currentDirectory : *lastVisitedDir());  | - | 
| 158 |     QHeaderView *headerView = d->qFileDialogUi->treeView->header();  | - | 
| 159 |     if (!headerView->restoreState(headerData)) partially evaluated:  !headerView->restoreState(headerData)| no Evaluation Count:0  | yes Evaluation Count:107  |  
   | 0-107 | 
| 160 |         return false; never executed: return false;  | 0 | 
| 161 |   | - | 
| 162 |     QList<QAction*> actions = headerView->actions();  | - | 
| 163 |     QAbstractItemModel *abstractModel = d->model;  | - | 
| 164 |   | - | 
| 165 |     if (d->proxyModel) partially evaluated:  d->proxyModel| no Evaluation Count:0  | yes Evaluation Count:107  |  
   | 0-107 | 
| 166 |         abstractModel = d->proxyModel; never executed: abstractModel = d->proxyModel;  | 0 | 
| 167 |   | - | 
| 168 |     int total = qMin(abstractModel->columnCount(QModelIndex()), actions.count() + 1);  | - | 
| 169 |     for (int i = 1; i < total; ++i) evaluated:  i < total| yes Evaluation Count:321  | yes Evaluation Count:107  |  
   | 107-321 | 
| 170 |         actions.at(i - 1)->setChecked(!headerView->isSectionHidden(i)); executed:  actions.at(i - 1)->setChecked(!headerView->isSectionHidden(i));Execution Count:321   | 321 | 
| 171 |   | - | 
| 172 |     setViewMode(ViewMode(viewMode));  | - | 
| 173 |     return true; executed:  return true;Execution Count:107   | 107 | 
| 174 | }  | - | 
| 175 |   | - | 
| 176 |   | - | 
| 177 |   | - | 
| 178 |   | - | 
| 179 | void QFileDialog::changeEvent(QEvent *e)  | - | 
| 180 | {  | - | 
| 181 |     QFileDialogPrivate * const d = d_func();  | - | 
| 182 |     if (e->type() == QEvent::LanguageChange) { partially evaluated:  e->type() == QEvent::LanguageChange| no Evaluation Count:0  | yes Evaluation Count:256  |  
   | 0-256 | 
| 183 |         d->retranslateWindowTitle();  | - | 
| 184 |         d->retranslateStrings();  | - | 
| 185 |     }  | 0 | 
| 186 |     QDialog::changeEvent(e);  | - | 
| 187 | } executed:  }Execution Count:256   | 256 | 
| 188 |   | - | 
| 189 | QFileDialogPrivate::QFileDialogPrivate()  | - | 
| 190 |     :  | - | 
| 191 |   | - | 
| 192 |         proxyModel(0),  | - | 
| 193 |   | - | 
| 194 |         model(0),  | - | 
| 195 |         currentHistoryLocation(-1),  | - | 
| 196 |         renameAction(0),  | - | 
| 197 |         deleteAction(0),  | - | 
| 198 |         showHiddenAction(0),  | - | 
| 199 |         useDefaultCaption(true),  | - | 
| 200 |         defaultFileTypes(true),  | - | 
| 201 |         qFileDialogUi(0),  | - | 
| 202 |         options(new QFileDialogOptions)  | - | 
| 203 | {  | - | 
| 204 | } executed:  }Execution Count:189   | 189 | 
| 205 |   | - | 
| 206 | QFileDialogPrivate::~QFileDialogPrivate()  | - | 
| 207 | {  | - | 
| 208 | }  | - | 
| 209 |   | - | 
| 210 | void QFileDialogPrivate::initHelper(QPlatformDialogHelper *h)  | - | 
| 211 | {  | - | 
| 212 |     QFileDialog *d = q_func();  | - | 
| 213 |     QObject::connect(h, "2""fileSelected(QString)", d, "2""fileSelected(QString)");  | - | 
| 214 |     QObject::connect(h, "2""filesSelected(QStringList)", d, "2""filesSelected(QStringList)");  | - | 
| 215 |     QObject::connect(h, "2""currentChanged(QString)", d, "2""currentChanged(QString)");  | - | 
| 216 |     QObject::connect(h, "2""directoryEntered(QString)", d, "2""directoryEntered(QString)");  | - | 
| 217 |     QObject::connect(h, "2""directoryEntered(QString)", d, "1""_q_nativeEnterDirectory(QString)");  | - | 
| 218 |     QObject::connect(h, "2""filterSelected(QString)", d, "2""filterSelected(QString)");  | - | 
| 219 |     static_cast<QPlatformFileDialogHelper *>(h)->setOptions(options);  | - | 
| 220 | }  | 0 | 
| 221 |   | - | 
| 222 | void QFileDialogPrivate::helperPrepareShow(QPlatformDialogHelper *)  | - | 
| 223 | {  | - | 
| 224 |     QFileDialog * const q = q_func();  | - | 
| 225 |     options->setWindowTitle(q->windowTitle());  | - | 
| 226 |     options->setViewMode(static_cast<QFileDialogOptions::ViewMode>(q->viewMode()));  | - | 
| 227 |     options->setHistory(q->history());  | - | 
| 228 |     options->setSidebarUrls(qFileDialogUi->sidebar->urls());  | - | 
| 229 |     const QDir directory = q->directory();  | - | 
| 230 |     options->setInitialDirectory(directory.exists() ?  | - | 
| 231 |                                  directory.absolutePath() :  | - | 
| 232 |                                  QString());  | - | 
| 233 |     options->setInitiallySelectedNameFilter(q->selectedNameFilter());  | - | 
| 234 |     options->setInitiallySelectedFiles(userSelectedFiles());  | - | 
| 235 | }  | 0 | 
| 236 |   | - | 
| 237 | void QFileDialogPrivate::helperDone(QDialog::DialogCode code, QPlatformDialogHelper *)  | - | 
| 238 | {  | - | 
| 239 |     if (code == QDialog::Accepted) { never evaluated: code == QDialog::Accepted  | 0 | 
| 240 |         QFileDialog * const q = q_func();  | - | 
| 241 |         q->setViewMode(static_cast<QFileDialog::ViewMode>(options->viewMode()));  | - | 
| 242 |         q->setSidebarUrls(options->sidebarUrls());  | - | 
| 243 |         q->setHistory(options->history());  | - | 
| 244 |     }  | 0 | 
| 245 | }  | 0 | 
| 246 |   | - | 
| 247 | void QFileDialogPrivate::retranslateWindowTitle()  | - | 
| 248 | {  | - | 
| 249 |     QFileDialog * const q = q_func();  | - | 
| 250 |     if (!useDefaultCaption || setWindowTitle != q->windowTitle()) evaluated:  !useDefaultCaption| yes Evaluation Count:80  | yes Evaluation Count:348  |  
  evaluated:  setWindowTitle != q->windowTitle()| yes Evaluation Count:1  | yes Evaluation Count:347  |  
   | 1-348 | 
| 251 |         return; executed:  return;Execution Count:81   | 81 | 
| 252 |     if (q->acceptMode() == QFileDialog::AcceptOpen) { evaluated:  q->acceptMode() == QFileDialog::AcceptOpen| yes Evaluation Count:336  | yes Evaluation Count:11  |  
   | 11-336 | 
| 253 |         const QFileDialog::FileMode fileMode = q->fileMode();  | - | 
| 254 |         if (fileMode == QFileDialog::DirectoryOnly || fileMode == QFileDialog::Directory) evaluated:  fileMode == QFileDialog::DirectoryOnly| yes Evaluation Count:2  | yes Evaluation Count:334  |  
  evaluated:  fileMode == QFileDialog::Directory| yes Evaluation Count:5  | yes Evaluation Count:329  |  
   | 2-334 | 
| 255 |             q->setWindowTitle(QFileDialog::tr("Find Directory")); executed:  q->setWindowTitle(QFileDialog::tr("Find Directory"));Execution Count:7   | 7 | 
| 256 |         else  | - | 
| 257 |             q->setWindowTitle(QFileDialog::tr("Open")); executed:  q->setWindowTitle(QFileDialog::tr("Open"));Execution Count:329   | 329 | 
| 258 |     } else  | - | 
| 259 |         q->setWindowTitle(QFileDialog::tr("Save As")); executed:  q->setWindowTitle(QFileDialog::tr("Save As"));Execution Count:11   | 11 | 
| 260 |   | - | 
| 261 |     setWindowTitle = q->windowTitle();  | - | 
| 262 | } executed:  }Execution Count:347   | 347 | 
| 263 |   | - | 
| 264 | void QFileDialogPrivate::setLastVisitedDirectory(const QString &dir)  | - | 
| 265 | {  | - | 
| 266 |     *lastVisitedDir() = dir;  | - | 
| 267 | } executed:  }Execution Count:395   | 395 | 
| 268 |   | - | 
| 269 | void QFileDialogPrivate::updateFileNameLabel()  | - | 
| 270 | {  | - | 
| 271 |     if (!options->isLabelExplicitlySet(QFileDialogOptions::FileName)) { partially evaluated:  !options->isLabelExplicitlySet(QFileDialogOptions::FileName)| yes Evaluation Count:400  | no Evaluation Count:0  |  
   | 0-400 | 
| 272 |         switch (q_func()->fileMode()) {  | - | 
| 273 |         case QFileDialog::DirectoryOnly:  | - | 
| 274 |         case QFileDialog::Directory:  | - | 
| 275 |             setLabelTextControl(QFileDialog::FileName, QFileDialog::tr("Directory:"));  | - | 
| 276 |             break; executed:  break;Execution Count:11   | 11 | 
| 277 |         default:  | - | 
| 278 |             setLabelTextControl(QFileDialog::FileName, QFileDialog::tr("File &name:"));  | - | 
| 279 |             break; executed:  break;Execution Count:389   | 389 | 
| 280 |         }  | - | 
| 281 |     } executed:  }Execution Count:400   | 400 | 
| 282 | } executed:  }Execution Count:400   | 400 | 
| 283 |   | - | 
| 284 | void QFileDialogPrivate::updateOkButtonText(bool saveAsOnFolder)  | - | 
| 285 | {  | - | 
| 286 |     QFileDialog * const q = q_func();  | - | 
| 287 |   | - | 
| 288 |     if (saveAsOnFolder) { evaluated:  saveAsOnFolder| yes Evaluation Count:26  | yes Evaluation Count:762  |  
   | 26-762 | 
| 289 |         setLabelTextControl(QFileDialog::Accept, QFileDialog::tr("&Open"));  | - | 
| 290 |     } else if (options->isLabelExplicitlySet(QFileDialogOptions::Accept)) { executed:  }Execution Count:26  evaluated:  options->isLabelExplicitlySet(QFileDialogOptions::Accept)| yes Evaluation Count:1  | yes Evaluation Count:761  |  
   | 1-761 | 
| 291 |         setLabelTextControl(QFileDialog::Accept, options->labelText(QFileDialogOptions::Accept));  | - | 
| 292 |         return; executed:  return;Execution Count:1   | 1 | 
| 293 |     } else {  | - | 
| 294 |         switch (q->fileMode()) {  | - | 
| 295 |         case QFileDialog::DirectoryOnly:  | - | 
| 296 |         case QFileDialog::Directory:  | - | 
| 297 |             setLabelTextControl(QFileDialog::Accept, QFileDialog::tr("&Choose"));  | - | 
| 298 |             break; executed:  break;Execution Count:38   | 38 | 
| 299 |         default:  | - | 
| 300 |             setLabelTextControl(QFileDialog::Accept,  | - | 
| 301 |                                 q->acceptMode() == QFileDialog::AcceptOpen ?  | - | 
| 302 |                                     QFileDialog::tr("&Open") :  | - | 
| 303 |                                     QFileDialog::tr("&Save"));  | - | 
| 304 |             break; executed:  break;Execution Count:723   | 723 | 
| 305 |         }  | - | 
| 306 |     } executed:  }Execution Count:761   | 761 | 
| 307 | }  | - | 
| 308 |   | - | 
| 309 | void QFileDialogPrivate::retranslateStrings()  | - | 
| 310 | {  | - | 
| 311 |     QFileDialog * const q = q_func();  | - | 
| 312 |   | - | 
| 313 |     if (defaultFileTypes) partially evaluated:  defaultFileTypes| yes Evaluation Count:189  | no Evaluation Count:0  |  
   | 0-189 | 
| 314 |         q->setNameFilter(QFileDialog::tr("All Files (*)")); executed:  q->setNameFilter(QFileDialog::tr("All Files (*)"));Execution Count:189   | 189 | 
| 315 |   | - | 
| 316 |     QList<QAction*> actions = qFileDialogUi->treeView->header()->actions();  | - | 
| 317 |     QAbstractItemModel *abstractModel = model;  | - | 
| 318 |   | - | 
| 319 |     if (proxyModel) partially evaluated:  proxyModel| no Evaluation Count:0  | yes Evaluation Count:189  |  
   | 0-189 | 
| 320 |         abstractModel = proxyModel; never executed: abstractModel = proxyModel;  | 0 | 
| 321 |   | - | 
| 322 |     int total = qMin(abstractModel->columnCount(QModelIndex()), actions.count() + 1);  | - | 
| 323 |     for (int i = 1; i < total; ++i) { evaluated:  i < total| yes Evaluation Count:567  | yes Evaluation Count:189  |  
   | 189-567 | 
| 324 |         actions.at(i - 1)->setText(QFileDialog::tr("Show ") + abstractModel->headerData(i, Qt::Horizontal, Qt::DisplayRole).toString());  | - | 
| 325 |     } executed:  }Execution Count:567   | 567 | 
| 326 |   | - | 
| 327 |   | - | 
| 328 |     renameAction->setText(QFileDialog::tr("&Rename"));  | - | 
| 329 |     deleteAction->setText(QFileDialog::tr("&Delete"));  | - | 
| 330 |     showHiddenAction->setText(QFileDialog::tr("Show &hidden files"));  | - | 
| 331 |     newFolderAction->setText(QFileDialog::tr("&New Folder"));  | - | 
| 332 |     qFileDialogUi->retranslateUi(q);  | - | 
| 333 |     updateFileNameLabel();  | - | 
| 334 | } executed:  }Execution Count:189   | 189 | 
| 335 |   | - | 
| 336 | void QFileDialogPrivate::emitFilesSelected(const QStringList &files)  | - | 
| 337 | {  | - | 
| 338 |     QFileDialog * const q = q_func();  | - | 
| 339 |     q->filesSelected(files);  | - | 
| 340 |     if (files.count() == 1) partially evaluated:  files.count() == 1| yes Evaluation Count:6  | no Evaluation Count:0  |  
   | 0-6 | 
| 341 |         q->fileSelected(files.first()); executed:  q->fileSelected(files.first());Execution Count:6   | 6 | 
| 342 | } executed:  }Execution Count:6   | 6 | 
| 343 |   | - | 
| 344 | bool QFileDialogPrivate::canBeNativeDialog()  | - | 
| 345 | {  | - | 
| 346 |     QFileDialog * const q = q_func();  | - | 
| 347 |     if (nativeDialogInUse) partially evaluated:  nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:51  |  
   | 0-51 | 
| 348 |         return true; never executed: return true;  | 0 | 
| 349 |     if (q->testAttribute(Qt::WA_DontShowOnScreen)) partially evaluated:  q->testAttribute(Qt::WA_DontShowOnScreen)| no Evaluation Count:0  | yes Evaluation Count:51  |  
   | 0-51 | 
| 350 |         return false; never executed: return false;  | 0 | 
| 351 |     if (q->options() & QFileDialog::DontUseNativeDialog) partially evaluated:  q->options() & QFileDialog::DontUseNativeDialog| yes Evaluation Count:51  | no Evaluation Count:0  |  
   | 0-51 | 
| 352 |         return false; executed:  return false;Execution Count:51   | 51 | 
| 353 |   | - | 
| 354 |     QLatin1String staticName(QFileDialog::staticMetaObject.className());  | - | 
| 355 |     QLatin1String dynamicName(q->metaObject()->className());  | - | 
| 356 |     return (staticName == dynamicName); never executed: return (staticName == dynamicName);  | 0 | 
| 357 | }  | - | 
| 358 | void QFileDialog::setOption(Option option, bool on)  | - | 
| 359 | {  | - | 
| 360 |     const QFileDialog::Options previousOptions = options();  | - | 
| 361 |     if (!(previousOptions & option) != !on) evaluated:  !(previousOptions & option) != !on| yes Evaluation Count:212  | yes Evaluation Count:213  |  
   | 212-213 | 
| 362 |         setOptions(previousOptions ^ option); executed:  setOptions(previousOptions ^ option);Execution Count:212   | 212 | 
| 363 | } executed:  }Execution Count:425   | 425 | 
| 364 | bool QFileDialog::testOption(Option option) const  | - | 
| 365 | {  | - | 
| 366 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 367 |     return d->options->testOption(static_cast<QFileDialogOptions::FileDialogOption>(option)); executed:  return d->options->testOption(static_cast<QFileDialogOptions::FileDialogOption>(option));Execution Count:459   | 459 | 
| 368 | }  | - | 
| 369 | void QFileDialog::setOptions(Options options)  | - | 
| 370 | {  | - | 
| 371 |     QFileDialogPrivate * const d = d_func();  | - | 
| 372 |   | - | 
| 373 |     Options changed = (options ^ QFileDialog::options());  | - | 
| 374 |     if (!changed) evaluated:  !changed| yes Evaluation Count:15  | yes Evaluation Count:212  |  
   | 15-212 | 
| 375 |         return; executed:  return;Execution Count:15   | 15 | 
| 376 |   | - | 
| 377 |     d->options->setOptions(QFileDialogOptions::FileDialogOptions(int(options)));  | - | 
| 378 |     if (changed & DontResolveSymlinks) evaluated:  changed & DontResolveSymlinks| yes Evaluation Count:2  | yes Evaluation Count:210  |  
   | 2-210 | 
| 379 |         d->model->setResolveSymlinks(!(options & DontResolveSymlinks)); executed:  d->model->setResolveSymlinks(!(options & DontResolveSymlinks));Execution Count:2   | 2 | 
| 380 |     if (changed & ReadOnly) { evaluated:  changed & ReadOnly| yes Evaluation Count:3  | yes Evaluation Count:209  |  
   | 3-209 | 
| 381 |         bool ro = (options & ReadOnly);  | - | 
| 382 |         d->model->setReadOnly(ro);  | - | 
| 383 |         d->qFileDialogUi->newFolderButton->setEnabled(!ro);  | - | 
| 384 |         d->renameAction->setEnabled(!ro);  | - | 
| 385 |         d->deleteAction->setEnabled(!ro);  | - | 
| 386 |     } executed:  }Execution Count:3   | 3 | 
| 387 |     if (changed & HideNameFilterDetails) evaluated:  changed & HideNameFilterDetails| yes Evaluation Count:9  | yes Evaluation Count:203  |  
   | 9-203 | 
| 388 |         setNameFilters(d->options->nameFilters()); executed:  setNameFilters(d->options->nameFilters());Execution Count:9   | 9 | 
| 389 |   | - | 
| 390 |     if (changed & ShowDirsOnly) evaluated:  changed & ShowDirsOnly| yes Evaluation Count:7  | yes Evaluation Count:205  |  
   | 7-205 | 
| 391 |         setFilter((options & ShowDirsOnly) ? filter() & ~QDir::Files : filter() | QDir::Files); executed:  setFilter((options & ShowDirsOnly) ? filter() & ~QDir::Files : filter() | QDir::Files);Execution Count:7   | 7 | 
| 392 | } executed:  }Execution Count:212   | 212 | 
| 393 |   | - | 
| 394 | QFileDialog::Options QFileDialog::options() const  | - | 
| 395 | {  | - | 
| 396 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 397 |     return QFileDialog::Options(int(d->options->options())); executed:  return QFileDialog::Options(int(d->options->options()));Execution Count:709   | 709 | 
| 398 | }  | - | 
| 399 | void QFileDialog::open(QObject *receiver, const char *member)  | - | 
| 400 | {  | - | 
| 401 |     QFileDialogPrivate * const d = d_func();  | - | 
| 402 |     const char *signal = (fileMode() == ExistingFiles) ? "2""filesSelected(QStringList)" never evaluated: (fileMode() == ExistingFiles)  | 0 | 
| 403 |                                                        : "2""fileSelected(QString)";  | - | 
| 404 |     connect(this, signal, receiver, member);  | - | 
| 405 |     d->signalToDisconnectOnClose = signal;  | - | 
| 406 |     d->receiverToDisconnectOnClose = receiver;  | - | 
| 407 |     d->memberToDisconnectOnClose = member;  | - | 
| 408 |   | - | 
| 409 |     QDialog::open();  | - | 
| 410 | }  | 0 | 
| 411 |   | - | 
| 412 |   | - | 
| 413 |   | - | 
| 414 |   | - | 
| 415 |   | - | 
| 416 | void QFileDialog::setVisible(bool visible)  | - | 
| 417 | {  | - | 
| 418 |     QFileDialogPrivate * const d = d_func();  | - | 
| 419 |     if (visible){ evaluated:  visible| yes Evaluation Count:42  | yes Evaluation Count:9  |  
   | 9-42 | 
| 420 |         if (testAttribute(Qt::WA_WState_ExplicitShowHide) && !testAttribute(Qt::WA_WState_Hidden)) partially evaluated:  testAttribute(Qt::WA_WState_ExplicitShowHide)| no Evaluation Count:0  | yes Evaluation Count:42  |  
  never evaluated: !testAttribute(Qt::WA_WState_Hidden)  | 0-42 | 
| 421 |             return;  | 0 | 
| 422 |     } else if (testAttribute(Qt::WA_WState_ExplicitShowHide) && testAttribute(Qt::WA_WState_Hidden)) partially evaluated:  testAttribute(Qt::WA_WState_ExplicitShowHide)| yes Evaluation Count:9  | no Evaluation Count:0  |  
  partially evaluated:  testAttribute(Qt::WA_WState_Hidden)| no Evaluation Count:0  | yes Evaluation Count:9  |  
  executed:  }Execution Count:42   | 0-42 | 
| 423 |         return;  | 0 | 
| 424 |   | - | 
| 425 |     if (d->canBeNativeDialog()){ partially evaluated:  d->canBeNativeDialog()| no Evaluation Count:0  | yes Evaluation Count:51  |  
   | 0-51 | 
| 426 |         if (d->setNativeDialogVisible(visible)){ never evaluated: d->setNativeDialogVisible(visible)  | 0 | 
| 427 |   | - | 
| 428 |   | - | 
| 429 |             setAttribute(Qt::WA_DontShowOnScreen);  | - | 
| 430 |   | - | 
| 431 |   | - | 
| 432 |             d->completer->setModel(0);  | - | 
| 433 |   | - | 
| 434 |         } else {  | 0 | 
| 435 |             setAttribute(Qt::WA_DontShowOnScreen, false);  | - | 
| 436 |   | - | 
| 437 |             if (d->proxyModel != 0) never evaluated: d->proxyModel != 0  | 0 | 
| 438 |                 d->completer->setModel(d->proxyModel); never executed: d->completer->setModel(d->proxyModel);  | 0 | 
| 439 |             else  | - | 
| 440 |                 d->completer->setModel(d->model); never executed: d->completer->setModel(d->model);  | 0 | 
| 441 |   | - | 
| 442 |         }  | - | 
| 443 |     }  | - | 
| 444 |   | - | 
| 445 |     if (!d->nativeDialogInUse) partially evaluated:  !d->nativeDialogInUse| yes Evaluation Count:51  | no Evaluation Count:0  |  
   | 0-51 | 
| 446 |         d->qFileDialogUi->fileNameEdit->setFocus(); executed:  d->qFileDialogUi->fileNameEdit->setFocus();Execution Count:51   | 51 | 
| 447 |   | - | 
| 448 |     QDialog::setVisible(visible);  | - | 
| 449 | } executed:  }Execution Count:51   | 51 | 
| 450 |   | - | 
| 451 |   | - | 
| 452 |   | - | 
| 453 |   | - | 
| 454 |   | - | 
| 455 | void QFileDialogPrivate::_q_goToUrl(const QUrl &url)  | - | 
| 456 | {  | - | 
| 457 |   | - | 
| 458 |   | - | 
| 459 |     QFileSystemModelPrivate::QFileSystemNode *node = model->d_func()->node(url.toLocalFile(), true);  | - | 
| 460 |     QModelIndex idx = model->d_func()->index(node);  | - | 
| 461 |     _q_enterDirectory(idx);  | - | 
| 462 | }  | 0 | 
| 463 | void QFileDialog::setDirectory(const QString &directory)  | - | 
| 464 | {  | - | 
| 465 |     QFileDialogPrivate * const d = d_func();  | - | 
| 466 |     QString newDirectory = directory;  | - | 
| 467 |     QFileInfo info(directory);  | - | 
| 468 |   | - | 
| 469 |     if (!directory.isEmpty()) evaluated:  !directory.isEmpty()| yes Evaluation Count:363  | yes Evaluation Count:1  |  
   | 1-363 | 
| 470 |         newDirectory = QDir::cleanPath(directory); executed:  newDirectory = QDir::cleanPath(directory);Execution Count:363   | 363 | 
| 471 |   | - | 
| 472 |     if (!directory.isEmpty() && newDirectory.isEmpty()) evaluated:  !directory.isEmpty()| yes Evaluation Count:363  | yes Evaluation Count:1  |  
  partially evaluated:  newDirectory.isEmpty()| no Evaluation Count:0  | yes Evaluation Count:363  |  
   | 0-363 | 
| 473 |         return;  | 0 | 
| 474 |   | - | 
| 475 |     d->setLastVisitedDirectory(newDirectory);  | - | 
| 476 |   | - | 
| 477 |     if (d->nativeDialogInUse){ partially evaluated:  d->nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:364  |  
   | 0-364 | 
| 478 |         d->setDirectory_sys(newDirectory);  | - | 
| 479 |         return;  | 0 | 
| 480 |     }  | - | 
| 481 |     if (d->rootPath() == newDirectory) evaluated:  d->rootPath() == newDirectory| yes Evaluation Count:128  | yes Evaluation Count:236  |  
   | 128-236 | 
| 482 |         return; executed:  return;Execution Count:128   | 128 | 
| 483 |     QModelIndex root = d->model->setRootPath(newDirectory);  | - | 
| 484 |     d->qFileDialogUi->newFolderButton->setEnabled(d->model->flags(root) & Qt::ItemIsDropEnabled);  | - | 
| 485 |     if (root != d->rootIndex()) { partially evaluated:  root != d->rootIndex()| yes Evaluation Count:236  | no Evaluation Count:0  |  
   | 0-236 | 
| 486 |   | - | 
| 487 |     if (directory.endsWith(QLatin1Char('/'))) evaluated:  directory.endsWith(QLatin1Char('/'))| yes Evaluation Count:13  | yes Evaluation Count:223  |  
   | 13-223 | 
| 488 |         d->completer->setCompletionPrefix(newDirectory); executed:  d->completer->setCompletionPrefix(newDirectory);Execution Count:13   | 13 | 
| 489 |     else  | - | 
| 490 |         d->completer->setCompletionPrefix(newDirectory + QLatin1Char('/')); executed:  d->completer->setCompletionPrefix(newDirectory + QLatin1Char('/'));Execution Count:223   | 223 | 
| 491 |   | - | 
| 492 |         d->setRootIndex(root);  | - | 
| 493 |     } executed:  }Execution Count:236   | 236 | 
| 494 |     d->qFileDialogUi->listView->selectionModel()->clear();  | - | 
| 495 | } executed:  }Execution Count:236   | 236 | 
| 496 |   | - | 
| 497 |   | - | 
| 498 |   | - | 
| 499 |   | - | 
| 500 | QDir QFileDialog::directory() const  | - | 
| 501 | {  | - | 
| 502 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 503 |     return QDir(d->nativeDialogInUse ? d->directory_sys() : d->rootPath()); executed:  return QDir(d->nativeDialogInUse ? d->directory_sys() : d->rootPath());Execution Count:748   | 748 | 
| 504 | }  | - | 
| 505 |   | - | 
| 506 |   | - | 
| 507 |   | - | 
| 508 |   | - | 
| 509 |   | - | 
| 510 |   | - | 
| 511 | void QFileDialog::selectFile(const QString &filename)  | - | 
| 512 | {  | - | 
| 513 |     QFileDialogPrivate * const d = d_func();  | - | 
| 514 |     if (filename.isEmpty()) evaluated:  filename.isEmpty()| yes Evaluation Count:182  | yes Evaluation Count:24  |  
   | 24-182 | 
| 515 |         return; executed:  return;Execution Count:182   | 182 | 
| 516 |   | - | 
| 517 |     if (d->nativeDialogInUse){ partially evaluated:  d->nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:24  |  
   | 0-24 | 
| 518 |         d->selectFile_sys(filename);  | - | 
| 519 |         return;  | 0 | 
| 520 |     }  | - | 
| 521 |   | - | 
| 522 |     if (!QDir::isRelativePath(filename)) { evaluated:  !QDir::isRelativePath(filename)| yes Evaluation Count:10  | yes Evaluation Count:14  |  
   | 10-14 | 
| 523 |         QFileInfo info(filename);  | - | 
| 524 |         QString filenamePath = info.absoluteDir().path();  | - | 
| 525 |   | - | 
| 526 |         if (d->model->rootPath() != filenamePath) evaluated:  d->model->rootPath() != filenamePath| yes Evaluation Count:5  | yes Evaluation Count:5  |  
   | 5 | 
| 527 |             setDirectory(filenamePath); executed:  setDirectory(filenamePath);Execution Count:5   | 5 | 
| 528 |     } executed:  }Execution Count:10   | 10 | 
| 529 |   | - | 
| 530 |     QModelIndex index = d->model->index(filename);  | - | 
| 531 |     QString file;  | - | 
| 532 |     if (!index.isValid()) { evaluated:  !index.isValid()| yes Evaluation Count:15  | yes Evaluation Count:9  |  
   | 9-15 | 
| 533 |   | - | 
| 534 |         QString text = filename;  | - | 
| 535 |         if (QFileInfo(filename).isAbsolute()) { evaluated:  QFileInfo(filename).isAbsolute()| yes Evaluation Count:1  | yes Evaluation Count:14  |  
   | 1-14 | 
| 536 |             QString current = d->rootPath();  | - | 
| 537 |             text.remove(current);  | - | 
| 538 |             if (text.at(0) == QDir::separator() partially evaluated:  text.at(0) == QDir::separator()| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 539 |   | - | 
| 540 |   | - | 
| 541 |   | - | 
| 542 |   | - | 
| 543 |                 )  | - | 
| 544 |                 text = text.remove(0,1); executed:  text = text.remove(0,1);Execution Count:1   | 1 | 
| 545 |         } executed:  }Execution Count:1   | 1 | 
| 546 |         file = text;  | - | 
| 547 |     } else { executed:  }Execution Count:15   | 15 | 
| 548 |         file = index.data().toString();  | - | 
| 549 |     } executed:  }Execution Count:9   | 9 | 
| 550 |     d->qFileDialogUi->listView->selectionModel()->clear();  | - | 
| 551 |     if (!isVisible() || !d->lineEdit()->hasFocus()) evaluated:  !isVisible()| yes Evaluation Count:18  | yes Evaluation Count:6  |  
  partially evaluated:  !d->lineEdit()->hasFocus()| yes Evaluation Count:6  | no Evaluation Count:0  |  
   | 0-18 | 
| 552 |         d->lineEdit()->setText(file); executed:  d->lineEdit()->setText(file);Execution Count:24   | 24 | 
| 553 | } executed:  }Execution Count:24   | 24 | 
| 554 |   | - | 
| 555 |   | - | 
| 556 |  QString qt_tildeExpansion(const QString &path, bool *expanded = 0)  | - | 
| 557 | {  | - | 
| 558 |     if (expanded != 0) evaluated:  expanded != 0| yes Evaluation Count:368  | yes Evaluation Count:77  |  
   | 77-368 | 
| 559 |         *expanded = false; executed:  *expanded = false;Execution Count:368   | 368 | 
| 560 |     if (!path.startsWith(QLatin1Char('~'))) partially evaluated:  !path.startsWith(QLatin1Char('~'))| yes Evaluation Count:445  | no Evaluation Count:0  |  
   | 0-445 | 
| 561 |         return path; executed:  return path;Execution Count:445   | 445 | 
| 562 |     QString ret = path;  | - | 
| 563 |     QStringList tokens = ret.split(QDir::separator());  | - | 
| 564 |     if (tokens.first() == QLatin1String("~")) { never evaluated: tokens.first() == QLatin1String("~")  | 0 | 
| 565 |         ret.replace(0, 1, QDir::homePath());  | - | 
| 566 |     } else {  | 0 | 
| 567 |         QString userName = tokens.first();  | - | 
| 568 |         userName.remove(0, 1);  | - | 
| 569 |   | - | 
| 570 |         passwd pw;  | - | 
| 571 |         passwd *tmpPw;  | - | 
| 572 |         char buf[200];  | - | 
| 573 |         const int bufSize = sizeof(buf);  | - | 
| 574 |         int err = 0;  | - | 
| 575 |   | - | 
| 576 |   | - | 
| 577 |   | - | 
| 578 |         err = getpwnam_r(userName.toLocal8Bit().constData(), &pw, buf, bufSize, &tmpPw);  | - | 
| 579 |   | - | 
| 580 |         if (err || !tmpPw)  | 0 | 
| 581 |             return ret; never executed: return ret;  | 0 | 
| 582 |         const QString homePath = QString::fromLocal8Bit(pw.pw_dir);  | - | 
| 583 |   | - | 
| 584 |   | - | 
| 585 |   | - | 
| 586 |   | - | 
| 587 |   | - | 
| 588 |   | - | 
| 589 |         ret.replace(0, tokens.first().length(), homePath);  | - | 
| 590 |     }  | 0 | 
| 591 |     if (expanded != 0) never evaluated: expanded != 0  | 0 | 
| 592 |         *expanded = true; never executed: *expanded = true;  | 0 | 
| 593 |     return ret; never executed: return ret;  | 0 | 
| 594 | }  | - | 
| 595 |   | - | 
| 596 |   | - | 
| 597 |   | - | 
| 598 |   | - | 
| 599 |   | - | 
| 600 | QStringList QFileDialogPrivate::typedFiles() const  | - | 
| 601 | {  | - | 
| 602 |     const QFileDialog * const q = q_func();  | - | 
| 603 |     QStringList files;  | - | 
| 604 |     QString editText = lineEdit()->text();  | - | 
| 605 |     if (!editText.contains(QLatin1Char('"'))) { evaluated:  !editText.contains(QLatin1Char('"'))| yes Evaluation Count:170  | yes Evaluation Count:7  |  
   | 7-170 | 
| 606 |   | - | 
| 607 |         const QString prefix = q->directory().absolutePath() + QDir::separator();  | - | 
| 608 |         if (QFile::exists(prefix + editText)) evaluated:  QFile::exists(prefix + editText)| yes Evaluation Count:102  | yes Evaluation Count:68  |  
   | 68-102 | 
| 609 |             files << editText; executed:  files << editText;Execution Count:102   | 102 | 
| 610 |         else  | - | 
| 611 |             files << qt_tildeExpansion(editText); executed:  files << qt_tildeExpansion(editText);Execution Count:68   | 68 | 
| 612 |   | - | 
| 613 |   | - | 
| 614 |   | - | 
| 615 |   | - | 
| 616 |     } else {  | - | 
| 617 |   | - | 
| 618 |   | - | 
| 619 |         QStringList tokens = editText.split(QLatin1Char('\"'));  | - | 
| 620 |         for (int i=0; i<tokens.size(); ++i) { evaluated:  i<tokens.size()| yes Evaluation Count:53  | yes Evaluation Count:7  |  
   | 7-53 | 
| 621 |             if ((i % 2) == 0) evaluated:  (i % 2) == 0| yes Evaluation Count:30  | yes Evaluation Count:23  |  
   | 23-30 | 
| 622 |                 continue; executed:  continue;Execution Count:30   | 30 | 
| 623 |   | - | 
| 624 |             const QString token = tokens.at(i);  | - | 
| 625 |             const QString prefix = q->directory().absolutePath() + QDir::separator();  | - | 
| 626 |             if (QFile::exists(prefix + token)) evaluated:  QFile::exists(prefix + token)| yes Evaluation Count:14  | yes Evaluation Count:9  |  
   | 9-14 | 
| 627 |                 files << token; executed:  files << token;Execution Count:14   | 14 | 
| 628 |             else  | - | 
| 629 |                 files << qt_tildeExpansion(token); executed:  files << qt_tildeExpansion(token);Execution Count:9   | 9 | 
| 630 |   | - | 
| 631 |   | - | 
| 632 |   | - | 
| 633 |         }  | - | 
| 634 |     } executed:  }Execution Count:7   | 7 | 
| 635 |     return addDefaultSuffixToFiles(files); executed:  return addDefaultSuffixToFiles(files);Execution Count:177   | 177 | 
| 636 | }  | - | 
| 637 |   | - | 
| 638 |   | - | 
| 639 |   | - | 
| 640 |   | - | 
| 641 | QStringList QFileDialogPrivate::userSelectedFiles() const  | - | 
| 642 | {  | - | 
| 643 |     if (nativeDialogInUse) partially evaluated:  nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:599  |  
   | 0-599 | 
| 644 |         return addDefaultSuffixToFiles(selectedFiles_sys()); never executed: return addDefaultSuffixToFiles(selectedFiles_sys());  | 0 | 
| 645 |   | - | 
| 646 |     QStringList files;  | - | 
| 647 |     for (QForeachContainer<__typeof__(qFileDialogUi->listView->selectionModel()->selectedRows())> _container_(qFileDialogUi->listView->selectionModel()->selectedRows()); !_container_.brk && _container_.i != _container_.e; __extension__ ({ ++_container_.brk; ++_container_.i; })) for (const QModelIndex &index = *_container_.i;; __extension__ ({--_container_.brk; break;}))  | - | 
| 648 |         files.append(index.data(QFileSystemModel::FilePathRole).toString()); executed:  files.append(index.data(QFileSystemModel::FilePathRole).toString());Execution Count:104   | 104 | 
| 649 |   | - | 
| 650 |     if (files.isEmpty() && !lineEdit()->text().isEmpty()) evaluated:  files.isEmpty()| yes Evaluation Count:516  | yes Evaluation Count:83  |  
  evaluated:  !lineEdit()->text().isEmpty()| yes Evaluation Count:93  | yes Evaluation Count:423  |  
   | 83-516 | 
| 651 |         files = typedFiles(); executed:  files = typedFiles();Execution Count:93   | 93 | 
| 652 |   | - | 
| 653 |     return files; executed:  return files;Execution Count:599   | 599 | 
| 654 | }  | - | 
| 655 |   | - | 
| 656 | QStringList QFileDialogPrivate::addDefaultSuffixToFiles(const QStringList filesToFix) const  | - | 
| 657 | {  | - | 
| 658 |     QStringList files;  | - | 
| 659 |     for (int i=0; i<filesToFix.size(); ++i) { evaluated:  i<filesToFix.size()| yes Evaluation Count:193  | yes Evaluation Count:177  |  
   | 177-193 | 
| 660 |         QString name = toInternal(filesToFix.at(i));  | - | 
| 661 |         QFileInfo info(name);  | - | 
| 662 |   | - | 
| 663 |         const QString defaultSuffix = options->defaultSuffix();  | - | 
| 664 |         if (!defaultSuffix.isEmpty() && !info.isDir() && name.lastIndexOf(QLatin1Char('.')) == -1) partially evaluated:  !defaultSuffix.isEmpty()| no Evaluation Count:0  | yes Evaluation Count:193  |  
  never evaluated: !info.isDir() never evaluated: name.lastIndexOf(QLatin1Char('.')) == -1  | 0-193 | 
| 665 |             name += QLatin1Char('.') + defaultSuffix; never executed: name += QLatin1Char('.') + defaultSuffix;  | 0 | 
| 666 |         if (info.isAbsolute()) { evaluated:  info.isAbsolute()| yes Evaluation Count:1  | yes Evaluation Count:192  |  
   | 1-192 | 
| 667 |             files.append(name);  | - | 
| 668 |         } else { executed:  }Execution Count:1   | 1 | 
| 669 |   | - | 
| 670 |   | - | 
| 671 |   | - | 
| 672 |             QString path = rootPath();  | - | 
| 673 |             if (!path.endsWith(QLatin1Char('/'))) evaluated:  !path.endsWith(QLatin1Char('/'))| yes Evaluation Count:183  | yes Evaluation Count:9  |  
   | 9-183 | 
| 674 |                 path += QLatin1Char('/'); executed:  path += QLatin1Char('/');Execution Count:183   | 183 | 
| 675 |             path += name;  | - | 
| 676 |             files.append(path);  | - | 
| 677 |         } executed:  }Execution Count:192   | 192 | 
| 678 |     }  | - | 
| 679 |     return files; executed:  return files;Execution Count:177   | 177 | 
| 680 | }  | - | 
| 681 | QStringList QFileDialog::selectedFiles() const  | - | 
| 682 | {  | - | 
| 683 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 684 |   | - | 
| 685 |     QStringList files = d->userSelectedFiles();  | - | 
| 686 |     if (files.isEmpty()) { evaluated:  files.isEmpty()| yes Evaluation Count:423  | yes Evaluation Count:176  |  
   | 176-423 | 
| 687 |         const FileMode fm = fileMode();  | - | 
| 688 |         if (fm != ExistingFile && fm != ExistingFiles) evaluated:  fm != ExistingFile| yes Evaluation Count:421  | yes Evaluation Count:2  |  
  evaluated:  fm != ExistingFiles| yes Evaluation Count:418  | yes Evaluation Count:3  |  
   | 2-421 | 
| 689 |             files.append(d->rootIndex().data(QFileSystemModel::FilePathRole).toString()); executed:  files.append(d->rootIndex().data(QFileSystemModel::FilePathRole).toString());Execution Count:418   | 418 | 
| 690 |     } executed:  }Execution Count:423   | 423 | 
| 691 |     return files; executed:  return files;Execution Count:599   | 599 | 
| 692 | }  | - | 
| 693 |   | - | 
| 694 |   | - | 
| 695 |   | - | 
| 696 |   | - | 
| 697 |   | - | 
| 698 | QStringList qt_make_filter_list(const QString &filter)  | - | 
| 699 | {  | - | 
| 700 |     QString f(filter);  | - | 
| 701 |   | - | 
| 702 |     if (f.isEmpty()) evaluated:  f.isEmpty()| yes Evaluation Count:2  | yes Evaluation Count:202  |  
   | 2-202 | 
| 703 |         return QStringList(); executed:  return QStringList();Execution Count:2   | 2 | 
| 704 |   | - | 
| 705 |     QString sep(QLatin1String(";;"));  | - | 
| 706 |     int i = f.indexOf(sep, 0);  | - | 
| 707 |     if (i == -1) { evaluated:  i == -1| yes Evaluation Count:194  | yes Evaluation Count:8  |  
   | 8-194 | 
| 708 |         if (f.indexOf(QLatin1Char('\n'), 0) != -1) { partially evaluated:  f.indexOf(QLatin1Char('\n'), 0) != -1| no Evaluation Count:0  | yes Evaluation Count:194  |  
   | 0-194 | 
| 709 |             sep = QLatin1Char('\n');  | - | 
| 710 |             i = f.indexOf(sep, 0);  | - | 
| 711 |         }  | 0 | 
| 712 |     } executed:  }Execution Count:194   | 194 | 
| 713 |   | - | 
| 714 |     return f.split(sep); executed:  return f.split(sep);Execution Count:202   | 202 | 
| 715 | }  | - | 
| 716 | void QFileDialog::setNameFilter(const QString &filter)  | - | 
| 717 | {  | - | 
| 718 |     setNameFilters(qt_make_filter_list(filter));  | - | 
| 719 | } executed:  }Execution Count:200   | 200 | 
| 720 | void QFileDialog::setNameFilterDetailsVisible(bool enabled)  | - | 
| 721 | {  | - | 
| 722 |     setOption(HideNameFilterDetails, !enabled);  | - | 
| 723 | } executed:  }Execution Count:8   | 8 | 
| 724 |   | - | 
| 725 | bool QFileDialog::isNameFilterDetailsVisible() const  | - | 
| 726 | {  | - | 
| 727 |     return !testOption(HideNameFilterDetails); executed:  return !testOption(HideNameFilterDetails);Execution Count:1   | 1 | 
| 728 | }  | - | 
| 729 |   | - | 
| 730 |   | - | 
| 731 |   | - | 
| 732 |   | - | 
| 733 |   | - | 
| 734 | QStringList qt_strip_filters(const QStringList &filters)  | - | 
| 735 | {  | - | 
| 736 |     QStringList strippedFilters;  | - | 
| 737 |     QRegExp r(QString::fromLatin1(QPlatformFileDialogHelper::filterRegExp));  | - | 
| 738 |     for (int i = 0; i < filters.count(); ++i) { evaluated:  i < filters.count()| yes Evaluation Count:20  | yes Evaluation Count:11  |  
   | 11-20 | 
| 739 |         QString filterName;  | - | 
| 740 |         int index = r.indexIn(filters[i]);  | - | 
| 741 |         if (index >= 0) evaluated:  index >= 0| yes Evaluation Count:19  | yes Evaluation Count:1  |  
   | 1-19 | 
| 742 |             filterName = r.cap(1); executed:  filterName = r.cap(1);Execution Count:19   | 19 | 
| 743 |         strippedFilters.append(filterName.simplified());  | - | 
| 744 |     } executed:  }Execution Count:20   | 20 | 
| 745 |     return strippedFilters; executed:  return strippedFilters;Execution Count:11   | 11 | 
| 746 | }  | - | 
| 747 | void QFileDialog::setNameFilters(const QStringList &filters)  | - | 
| 748 | {  | - | 
| 749 |     QFileDialogPrivate * const d = d_func();  | - | 
| 750 |     d->defaultFileTypes = (filters == QStringList(QFileDialog::tr("All Files (*)")));  | - | 
| 751 |     QStringList cleanedFilters;  | - | 
| 752 |     for (int i = 0; i < filters.count(); ++i) { evaluated:  i < filters.count()| yes Evaluation Count:257  | yes Evaluation Count:222  |  
   | 222-257 | 
| 753 |         cleanedFilters << filters[i].simplified();  | - | 
| 754 |     } executed:  }Execution Count:257   | 257 | 
| 755 |     d->options->setNameFilters(cleanedFilters);  | - | 
| 756 |   | - | 
| 757 |     d->qFileDialogUi->fileTypeCombo->clear();  | - | 
| 758 |     if (cleanedFilters.isEmpty()) evaluated:  cleanedFilters.isEmpty()| yes Evaluation Count:5  | yes Evaluation Count:217  |  
   | 5-217 | 
| 759 |         return; executed:  return;Execution Count:5   | 5 | 
| 760 |   | - | 
| 761 |     if (testOption(HideNameFilterDetails)) evaluated:  testOption(HideNameFilterDetails)| yes Evaluation Count:7  | yes Evaluation Count:210  |  
   | 7-210 | 
| 762 |         d->qFileDialogUi->fileTypeCombo->addItems(qt_strip_filters(cleanedFilters)); executed:  d->qFileDialogUi->fileTypeCombo->addItems(qt_strip_filters(cleanedFilters));Execution Count:7   | 7 | 
| 763 |     else  | - | 
| 764 |         d->qFileDialogUi->fileTypeCombo->addItems(cleanedFilters); executed:  d->qFileDialogUi->fileTypeCombo->addItems(cleanedFilters);Execution Count:210   | 210 | 
| 765 |   | - | 
| 766 |     d->_q_useNameFilter(0);  | - | 
| 767 | } executed:  }Execution Count:217   | 217 | 
| 768 |   | - | 
| 769 |   | - | 
| 770 |   | - | 
| 771 |   | - | 
| 772 |   | - | 
| 773 |   | - | 
| 774 |   | - | 
| 775 | QStringList QFileDialog::nameFilters() const  | - | 
| 776 | {  | - | 
| 777 |     return d_func()->options->nameFilters(); executed:  return d_func()->options->nameFilters();Execution Count:10   | 10 | 
| 778 | }  | - | 
| 779 | void QFileDialog::selectNameFilter(const QString &filter)  | - | 
| 780 | {  | - | 
| 781 |     QFileDialogPrivate * const d = d_func();  | - | 
| 782 |     if (d->nativeDialogInUse) { partially evaluated:  d->nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:12  |  
   | 0-12 | 
| 783 |         d->selectNameFilter_sys(filter);  | - | 
| 784 |         return;  | 0 | 
| 785 |     }  | - | 
| 786 |     int i = -1;  | - | 
| 787 |     if (testOption(HideNameFilterDetails)) { evaluated:  testOption(HideNameFilterDetails)| yes Evaluation Count:4  | yes Evaluation Count:8  |  
   | 4-8 | 
| 788 |         const QStringList filters = qt_strip_filters(qt_make_filter_list(filter));  | - | 
| 789 |         if (!filters.isEmpty()) evaluated:  !filters.isEmpty()| yes Evaluation Count:3  | yes Evaluation Count:1  |  
   | 1-3 | 
| 790 |             i = d->qFileDialogUi->fileTypeCombo->findText(filters.first()); executed:  i = d->qFileDialogUi->fileTypeCombo->findText(filters.first());Execution Count:3   | 3 | 
| 791 |     } else { executed:  }Execution Count:4   | 4 | 
| 792 |         i = d->qFileDialogUi->fileTypeCombo->findText(filter);  | - | 
| 793 |     } executed:  }Execution Count:8   | 8 | 
| 794 |     if (i >= 0) { evaluated:  i >= 0| yes Evaluation Count:6  | yes Evaluation Count:6  |  
   | 6 | 
| 795 |         d->qFileDialogUi->fileTypeCombo->setCurrentIndex(i);  | - | 
| 796 |         d->_q_useNameFilter(d->qFileDialogUi->fileTypeCombo->currentIndex());  | - | 
| 797 |     } executed:  }Execution Count:6   | 6 | 
| 798 | } executed:  }Execution Count:12   | 12 | 
| 799 | QString QFileDialog::selectedNameFilter() const  | - | 
| 800 | {  | - | 
| 801 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 802 |     if (d->nativeDialogInUse) partially evaluated:  d->nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:12  |  
   | 0-12 | 
| 803 |         return d->selectedNameFilter_sys(); never executed: return d->selectedNameFilter_sys();  | 0 | 
| 804 |   | - | 
| 805 |     return d->qFileDialogUi->fileTypeCombo->currentText(); executed:  return d->qFileDialogUi->fileTypeCombo->currentText();Execution Count:12   | 12 | 
| 806 | }  | - | 
| 807 | QDir::Filters QFileDialog::filter() const  | - | 
| 808 | {  | - | 
| 809 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 810 |     return d->model->filter(); executed:  return d->model->filter();Execution Count:219   | 219 | 
| 811 | }  | - | 
| 812 | void QFileDialog::setFilter(QDir::Filters filters)  | - | 
| 813 | {  | - | 
| 814 |     QFileDialogPrivate * const d = d_func();  | - | 
| 815 |     d->model->setFilter(filters);  | - | 
| 816 |     d->options->setFilter(filters);  | - | 
| 817 |     if (d->nativeDialogInUse){ partially evaluated:  d->nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:9  |  
   | 0-9 | 
| 818 |         d->setFilter_sys();  | - | 
| 819 |         return;  | 0 | 
| 820 |     }  | - | 
| 821 |   | - | 
| 822 |     d->showHiddenAction->setChecked((filters & QDir::Hidden));  | - | 
| 823 | } executed:  }Execution Count:9   | 9 | 
| 824 | void QFileDialog::setViewMode(QFileDialog::ViewMode mode)  | - | 
| 825 | {  | - | 
| 826 |     QFileDialogPrivate * const d = d_func();  | - | 
| 827 |     if (mode == Detail) evaluated:  mode == Detail| yes Evaluation Count:4  | yes Evaluation Count:125  |  
   | 4-125 | 
| 828 |         d->_q_showDetailsView(); executed:  d->_q_showDetailsView();Execution Count:4   | 4 | 
| 829 |     else  | - | 
| 830 |         d->_q_showListView(); executed:  d->_q_showListView();Execution Count:125   | 125 | 
| 831 | }  | - | 
| 832 |   | - | 
| 833 | QFileDialog::ViewMode QFileDialog::viewMode() const  | - | 
| 834 | {  | - | 
| 835 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 836 |     return (d->qFileDialogUi->stackedWidget->currentWidget() == d->qFileDialogUi->listView->parent() ? QFileDialog::List : QFileDialog::Detail); executed:  return (d->qFileDialogUi->stackedWidget->currentWidget() == d->qFileDialogUi->listView->parent() ? QFileDialog::List : QFileDialog::Detail);Execution Count:197   | 197 | 
| 837 | }  | - | 
| 838 | void QFileDialog::setFileMode(QFileDialog::FileMode mode)  | - | 
| 839 | {  | - | 
| 840 |     QFileDialogPrivate * const d = d_func();  | - | 
| 841 |     d->options->setFileMode(static_cast<QFileDialogOptions::FileMode>(mode));  | - | 
| 842 |     d->retranslateWindowTitle();  | - | 
| 843 |   | - | 
| 844 |   | - | 
| 845 |     setOption(ShowDirsOnly, mode == DirectoryOnly);  | - | 
| 846 |   | - | 
| 847 |   | - | 
| 848 |     QAbstractItemView::SelectionMode selectionMode;  | - | 
| 849 |     if (mode == QFileDialog::ExistingFiles) evaluated:  mode == QFileDialog::ExistingFiles| yes Evaluation Count:3  | yes Evaluation Count:208  |  
   | 3-208 | 
| 850 |         selectionMode = QAbstractItemView::ExtendedSelection; executed:  selectionMode = QAbstractItemView::ExtendedSelection;Execution Count:3   | 3 | 
| 851 |     else  | - | 
| 852 |         selectionMode = QAbstractItemView::SingleSelection; executed:  selectionMode = QAbstractItemView::SingleSelection;Execution Count:208   | 208 | 
| 853 |     d->qFileDialogUi->listView->setSelectionMode(selectionMode);  | - | 
| 854 |     d->qFileDialogUi->treeView->setSelectionMode(selectionMode);  | - | 
| 855 |   | - | 
| 856 |     d->model->setFilter(d->filterForMode(filter()));  | - | 
| 857 |   | - | 
| 858 |     if (mode == DirectoryOnly || mode == Directory) { evaluated:  mode == DirectoryOnly| yes Evaluation Count:3  | yes Evaluation Count:208  |  
  evaluated:  mode == Directory| yes Evaluation Count:8  | yes Evaluation Count:200  |  
   | 3-208 | 
| 859 |         d->qFileDialogUi->fileTypeCombo->clear();  | - | 
| 860 |         d->qFileDialogUi->fileTypeCombo->addItem(tr("Directories"));  | - | 
| 861 |         d->qFileDialogUi->fileTypeCombo->setEnabled(false);  | - | 
| 862 |     } executed:  }Execution Count:11   | 11 | 
| 863 |     d->updateFileNameLabel();  | - | 
| 864 |     d->updateOkButtonText();  | - | 
| 865 |     if (d->nativeDialogInUse){ partially evaluated:  d->nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:211  |  
   | 0-211 | 
| 866 |         d->setFilter_sys();  | - | 
| 867 |         return;  | 0 | 
| 868 |     }  | - | 
| 869 |   | - | 
| 870 |     d->qFileDialogUi->fileTypeCombo->setEnabled(!testOption(ShowDirsOnly));  | - | 
| 871 |     d->_q_updateOkButton();  | - | 
| 872 | } executed:  }Execution Count:211   | 211 | 
| 873 |   | - | 
| 874 | QFileDialog::FileMode QFileDialog::fileMode() const  | - | 
| 875 | {  | - | 
| 876 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 877 |     return static_cast<FileMode>(d->options->fileMode()); executed:  return static_cast<FileMode>(d->options->fileMode());Execution Count:2778   | 2778 | 
| 878 | }  | - | 
| 879 | void QFileDialog::setAcceptMode(QFileDialog::AcceptMode mode)  | - | 
| 880 | {  | - | 
| 881 |     QFileDialogPrivate * const d = d_func();  | - | 
| 882 |     d->options->setAcceptMode(static_cast<QFileDialogOptions::AcceptMode>(mode));  | - | 
| 883 |     QDialogButtonBox::StandardButton button = (mode == AcceptOpen ? QDialogButtonBox::Open : QDialogButtonBox::Save); evaluated:  mode == AcceptOpen| yes Evaluation Count:190  | yes Evaluation Count:27  |  
   | 27-190 | 
| 884 |     d->qFileDialogUi->buttonBox->setStandardButtons(button | QDialogButtonBox::Cancel);  | - | 
| 885 |     d->qFileDialogUi->buttonBox->button(button)->setEnabled(false);  | - | 
| 886 |     d->_q_updateOkButton();  | - | 
| 887 |     if (mode == AcceptSave) { evaluated:  mode == AcceptSave| yes Evaluation Count:27  | yes Evaluation Count:190  |  
   | 27-190 | 
| 888 |         d->qFileDialogUi->lookInCombo->setEditable(false);  | - | 
| 889 |     } executed:  }Execution Count:27   | 27 | 
| 890 |     d->retranslateWindowTitle();  | - | 
| 891 |   | - | 
| 892 |     d->deletePlatformHelper();  | - | 
| 893 |   | - | 
| 894 |     setAttribute(Qt::WA_DontShowOnScreen, false);  | - | 
| 895 | } executed:  }Execution Count:217   | 217 | 
| 896 |   | - | 
| 897 |   | - | 
| 898 |   | - | 
| 899 |   | - | 
| 900 |   | - | 
| 901 | QModelIndex QFileDialogPrivate::rootIndex() const {  | - | 
| 902 |     return mapToSource(qFileDialogUi->listView->rootIndex()); executed:  return mapToSource(qFileDialogUi->listView->rootIndex());Execution Count:852   | 852 | 
| 903 | }  | - | 
| 904 |   | - | 
| 905 | QAbstractItemView *QFileDialogPrivate::currentView() const {  | - | 
| 906 |     if (!qFileDialogUi->stackedWidget) never evaluated: !qFileDialogUi->stackedWidget  | 0 | 
| 907 |         return 0; never executed: return 0;  | 0 | 
| 908 |     if (qFileDialogUi->stackedWidget->currentWidget() == qFileDialogUi->listView->parent()) never evaluated: qFileDialogUi->stackedWidget->currentWidget() == qFileDialogUi->listView->parent()  | 0 | 
| 909 |         return qFileDialogUi->listView; never executed: return qFileDialogUi->listView;  | 0 | 
| 910 |     return qFileDialogUi->treeView; never executed: return qFileDialogUi->treeView;  | 0 | 
| 911 | }  | - | 
| 912 |   | - | 
| 913 | QLineEdit *QFileDialogPrivate::lineEdit() const {  | - | 
| 914 |     return (QLineEdit*)qFileDialogUi->fileNameEdit; executed:  return (QLineEdit*)qFileDialogUi->fileNameEdit;Execution Count:1654   | 1654 | 
| 915 | }  | - | 
| 916 |   | - | 
| 917 | int QFileDialogPrivate::maxNameLength(const QString &path)  | - | 
| 918 | {  | - | 
| 919 |   | - | 
| 920 |     return ::pathconf(QFile::encodeName(path).data(), _PC_NAME_MAX); executed:  return ::pathconf(QFile::encodeName(path).data(), _PC_NAME_MAX);Execution Count:158   | 158 | 
| 921 |     return -1;  | - | 
| 922 | }  | - | 
| 923 |   | - | 
| 924 |   | - | 
| 925 |   | - | 
| 926 |   | - | 
| 927 | void QFileDialogPrivate::setRootIndex(const QModelIndex &index) const {  | - | 
| 928 |     qt_noop();  | - | 
| 929 |     QModelIndex idx = mapFromSource(index);  | - | 
| 930 |     qFileDialogUi->treeView->setRootIndex(idx);  | - | 
| 931 |     qFileDialogUi->listView->setRootIndex(idx);  | - | 
| 932 | } executed:  }Execution Count:238   | 238 | 
| 933 |   | - | 
| 934 |   | - | 
| 935 |   | - | 
| 936 |   | - | 
| 937 | QModelIndex QFileDialogPrivate::select(const QModelIndex &index) const {  | - | 
| 938 |     qt_noop();  | - | 
| 939 |   | - | 
| 940 |     QModelIndex idx = mapFromSource(index);  | - | 
| 941 |     if (idx.isValid() && !qFileDialogUi->listView->selectionModel()->isSelected(idx)) evaluated:  idx.isValid()| yes Evaluation Count:18  | yes Evaluation Count:55  |  
  partially evaluated:  !qFileDialogUi->listView->selectionModel()->isSelected(idx)| yes Evaluation Count:18  | no Evaluation Count:0  |  
   | 0-55 | 
| 942 |         qFileDialogUi->listView->selectionModel()->select(idx,  | 18 | 
| 943 |             QItemSelectionModel::Select | QItemSelectionModel::Rows); executed:  qFileDialogUi->listView->selectionModel()->select(idx, QItemSelectionModel::Select | QItemSelectionModel::Rows);Execution Count:18   | 18 | 
| 944 |     return idx; executed:  return idx;Execution Count:73   | 73 | 
| 945 | }  | - | 
| 946 |   | - | 
| 947 | QFileDialog::AcceptMode QFileDialog::acceptMode() const  | - | 
| 948 | {  | - | 
| 949 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 950 |     return static_cast<AcceptMode>(d->options->acceptMode()); executed:  return static_cast<AcceptMode>(d->options->acceptMode());Execution Count:2858   | 2858 | 
| 951 | }  | - | 
| 952 | void QFileDialog::setReadOnly(bool enabled)  | - | 
| 953 | {  | - | 
| 954 |     setOption(ReadOnly, enabled);  | - | 
| 955 | } executed:  }Execution Count:3   | 3 | 
| 956 |   | - | 
| 957 | bool QFileDialog::isReadOnly() const  | - | 
| 958 | {  | - | 
| 959 |     return testOption(ReadOnly); executed:  return testOption(ReadOnly);Execution Count:10   | 10 | 
| 960 | }  | - | 
| 961 | void QFileDialog::setResolveSymlinks(bool enabled)  | - | 
| 962 | {  | - | 
| 963 |     setOption(DontResolveSymlinks, !enabled);  | - | 
| 964 | } executed:  }Execution Count:2   | 2 | 
| 965 |   | - | 
| 966 | bool QFileDialog::resolveSymlinks() const  | - | 
| 967 | {  | - | 
| 968 |     return !testOption(DontResolveSymlinks); executed:  return !testOption(DontResolveSymlinks);Execution Count:3   | 3 | 
| 969 | }  | - | 
| 970 | void QFileDialog::setConfirmOverwrite(bool enabled)  | - | 
| 971 | {  | - | 
| 972 |     setOption(DontConfirmOverwrite, !enabled);  | - | 
| 973 | } executed:  }Execution Count:3   | 3 | 
| 974 |   | - | 
| 975 | bool QFileDialog::confirmOverwrite() const  | - | 
| 976 | {  | - | 
| 977 |     return !testOption(DontConfirmOverwrite); executed:  return !testOption(DontConfirmOverwrite);Execution Count:5   | 5 | 
| 978 | }  | - | 
| 979 | void QFileDialog::setDefaultSuffix(const QString &suffix)  | - | 
| 980 | {  | - | 
| 981 |     QFileDialogPrivate * const d = d_func();  | - | 
| 982 |     d->options->setDefaultSuffix(suffix);  | - | 
| 983 | } executed:  }Execution Count:2   | 2 | 
| 984 |   | - | 
| 985 | QString QFileDialog::defaultSuffix() const  | - | 
| 986 | {  | - | 
| 987 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 988 |     return d->options->defaultSuffix(); executed:  return d->options->defaultSuffix();Execution Count:3   | 3 | 
| 989 | }  | - | 
| 990 |   | - | 
| 991 |   | - | 
| 992 |   | - | 
| 993 |   | - | 
| 994 |   | - | 
| 995 | void QFileDialog::setHistory(const QStringList &paths)  | - | 
| 996 | {  | - | 
| 997 |     QFileDialogPrivate * const d = d_func();  | - | 
| 998 |     d->qFileDialogUi->lookInCombo->setHistory(paths);  | - | 
| 999 | } executed:  }Execution Count:346   | 346 | 
| 1000 |   | - | 
| 1001 | void QFileDialogComboBox::setHistory(const QStringList &paths)  | - | 
| 1002 | {  | - | 
| 1003 |     m_history = paths;  | - | 
| 1004 |   | - | 
| 1005 |     QList<QUrl> list;  | - | 
| 1006 |     QModelIndex idx = d_ptr->model->index(d_ptr->rootPath());  | - | 
| 1007 |   | - | 
| 1008 |     QUrl url = QUrl::fromLocalFile(QDir::toNativeSeparators(idx.data(QFileSystemModel::FilePathRole).toString()));  | - | 
| 1009 |     if (url.isValid()) partially evaluated:  url.isValid()| yes Evaluation Count:346  | no Evaluation Count:0  |  
   | 0-346 | 
| 1010 |         list.append(url); executed:  list.append(url);Execution Count:346   | 346 | 
| 1011 |     urlModel->setUrls(list);  | - | 
| 1012 | } executed:  }Execution Count:346   | 346 | 
| 1013 |   | - | 
| 1014 |   | - | 
| 1015 |   | - | 
| 1016 |   | - | 
| 1017 | QStringList QFileDialog::history() const  | - | 
| 1018 | {  | - | 
| 1019 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 1020 |     QStringList currentHistory = d->qFileDialogUi->lookInCombo->history();  | - | 
| 1021 |   | - | 
| 1022 |     QString newHistory = QDir::toNativeSeparators(d->rootIndex().data(QFileSystemModel::FilePathRole).toString());  | - | 
| 1023 |     if (!currentHistory.contains(newHistory)) evaluated:  !currentHistory.contains(newHistory)| yes Evaluation Count:121  | yes Evaluation Count:75  |  
   | 75-121 | 
| 1024 |         currentHistory << newHistory; executed:  currentHistory << newHistory;Execution Count:121   | 121 | 
| 1025 |     return currentHistory; executed:  return currentHistory;Execution Count:196   | 196 | 
| 1026 | }  | - | 
| 1027 | void QFileDialog::setItemDelegate(QAbstractItemDelegate *delegate)  | - | 
| 1028 | {  | - | 
| 1029 |     QFileDialogPrivate * const d = d_func();  | - | 
| 1030 |     d->qFileDialogUi->listView->setItemDelegate(delegate);  | - | 
| 1031 |     d->qFileDialogUi->treeView->setItemDelegate(delegate);  | - | 
| 1032 | } executed:  }Execution Count:1   | 1 | 
| 1033 |   | - | 
| 1034 |   | - | 
| 1035 |   | - | 
| 1036 |   | - | 
| 1037 | QAbstractItemDelegate *QFileDialog::itemDelegate() const  | - | 
| 1038 | {  | - | 
| 1039 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 1040 |     return d->qFileDialogUi->listView->itemDelegate(); executed:  return d->qFileDialogUi->listView->itemDelegate();Execution Count:2   | 2 | 
| 1041 | }  | - | 
| 1042 |   | - | 
| 1043 |   | - | 
| 1044 |   | - | 
| 1045 |   | - | 
| 1046 | void QFileDialog::setIconProvider(QFileIconProvider *provider)  | - | 
| 1047 | {  | - | 
| 1048 |     QFileDialogPrivate * const d = d_func();  | - | 
| 1049 |     d->model->setIconProvider(provider);  | - | 
| 1050 |   | - | 
| 1051 |     d->qFileDialogUi->sidebar->setUrls(d->qFileDialogUi->sidebar->urls());  | - | 
| 1052 | } executed:  }Execution Count:1   | 1 | 
| 1053 |   | - | 
| 1054 |   | - | 
| 1055 |   | - | 
| 1056 |   | - | 
| 1057 | QFileIconProvider *QFileDialog::iconProvider() const  | - | 
| 1058 | {  | - | 
| 1059 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 1060 |     return d->model->iconProvider(); executed:  return d->model->iconProvider();Execution Count:2   | 2 | 
| 1061 | }  | - | 
| 1062 |   | - | 
| 1063 | void QFileDialogPrivate::setLabelTextControl(QFileDialog::DialogLabel label, const QString &text)  | - | 
| 1064 | {  | - | 
| 1065 |     switch (label) {  | - | 
| 1066 |     case QFileDialog::LookIn:  | - | 
| 1067 |         qFileDialogUi->lookInLabel->setText(text);  | - | 
| 1068 |         break; executed:  break;Execution Count:1   | 1 | 
| 1069 |     case QFileDialog::FileName:  | - | 
| 1070 |         qFileDialogUi->fileNameLabel->setText(text);  | - | 
| 1071 |         break; executed:  break;Execution Count:401   | 401 | 
| 1072 |     case QFileDialog::FileType:  | - | 
| 1073 |         qFileDialogUi->fileTypeLabel->setText(text);  | - | 
| 1074 |         break; executed:  break;Execution Count:1   | 1 | 
| 1075 |     case QFileDialog::Accept:  | - | 
| 1076 |         if (q_func()->acceptMode() == QFileDialog::AcceptOpen) { evaluated:  q_func()->acceptMode() == QFileDialog::AcceptOpen| yes Evaluation Count:740  | yes Evaluation Count:51  |  
   | 51-740 | 
| 1077 |             if (QPushButton *button = qFileDialogUi->buttonBox->button(QDialogButtonBox::Open)) evaluated:  QPushButton *button = qFileDialogUi->buttonBox->button(QDialogButtonBox::Open)| yes Evaluation Count:551  | yes Evaluation Count:189  |  
   | 189-551 | 
| 1078 |                 button->setText(text); executed:  button->setText(text);Execution Count:551   | 551 | 
| 1079 |         } else { executed:  }Execution Count:740   | 740 | 
| 1080 |             if (QPushButton *button = qFileDialogUi->buttonBox->button(QDialogButtonBox::Save)) partially evaluated:  QPushButton *button = qFileDialogUi->buttonBox->button(QDialogButtonBox::Save)| yes Evaluation Count:51  | no Evaluation Count:0  |  
   | 0-51 | 
| 1081 |                 button->setText(text); executed:  button->setText(text);Execution Count:51   | 51 | 
| 1082 |         } executed:  }Execution Count:51   | 51 | 
| 1083 |         break; executed:  break;Execution Count:791   | 791 | 
| 1084 |     case QFileDialog::Reject:  | - | 
| 1085 |         if (QPushButton *button = qFileDialogUi->buttonBox->button(QDialogButtonBox::Cancel)) partially evaluated:  QPushButton *button = qFileDialogUi->buttonBox->button(QDialogButtonBox::Cancel)| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 1086 |             button->setText(text); executed:  button->setText(text);Execution Count:1   | 1 | 
| 1087 |         break; executed:  break;Execution Count:1   | 1 | 
| 1088 |     }  | - | 
| 1089 | } executed:  }Execution Count:1195   | 1195 | 
| 1090 |   | - | 
| 1091 |   | - | 
| 1092 |   | - | 
| 1093 |   | - | 
| 1094 |   | - | 
| 1095 | void QFileDialog::setLabelText(DialogLabel label, const QString &text)  | - | 
| 1096 | {  | - | 
| 1097 |     QFileDialogPrivate * const d = d_func();  | - | 
| 1098 |     d->options->setLabelText(static_cast<QFileDialogOptions::DialogLabel>(label), text);  | - | 
| 1099 |     d->setLabelTextControl(label, text);  | - | 
| 1100 | } executed:  }Execution Count:7   | 7 | 
| 1101 |   | - | 
| 1102 |   | - | 
| 1103 |   | - | 
| 1104 |   | - | 
| 1105 | QString QFileDialog::labelText(DialogLabel label) const  | - | 
| 1106 | {  | - | 
| 1107 |     QPushButton *button;  | - | 
| 1108 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 1109 |     switch (label) {  | - | 
| 1110 |     case LookIn:  | - | 
| 1111 |         return d->qFileDialogUi->lookInLabel->text(); executed:  return d->qFileDialogUi->lookInLabel->text();Execution Count:2   | 2 | 
| 1112 |     case FileName:  | - | 
| 1113 |         return d->qFileDialogUi->fileNameLabel->text(); executed:  return d->qFileDialogUi->fileNameLabel->text();Execution Count:2   | 2 | 
| 1114 |     case FileType:  | - | 
| 1115 |         return d->qFileDialogUi->fileTypeLabel->text(); executed:  return d->qFileDialogUi->fileTypeLabel->text();Execution Count:2   | 2 | 
| 1116 |     case Accept:  | - | 
| 1117 |         if (acceptMode() == AcceptOpen) partially evaluated:  acceptMode() == AcceptOpen| yes Evaluation Count:2  | no Evaluation Count:0  |  
   | 0-2 | 
| 1118 |             button = d->qFileDialogUi->buttonBox->button(QDialogButtonBox::Open); executed:  button = d->qFileDialogUi->buttonBox->button(QDialogButtonBox::Open);Execution Count:2   | 2 | 
| 1119 |         else  | - | 
| 1120 |             button = d->qFileDialogUi->buttonBox->button(QDialogButtonBox::Save); never executed: button = d->qFileDialogUi->buttonBox->button(QDialogButtonBox::Save);  | 0 | 
| 1121 |         if (button) partially evaluated:  button| yes Evaluation Count:2  | no Evaluation Count:0  |  
   | 0-2 | 
| 1122 |             return button->text(); executed:  return button->text();Execution Count:2   | 2 | 
| 1123 |     case Reject: code before this statement never executed: case Reject:  | 0 | 
| 1124 |         button = d->qFileDialogUi->buttonBox->button(QDialogButtonBox::Cancel);  | - | 
| 1125 |         if (button) partially evaluated:  button| yes Evaluation Count:2  | no Evaluation Count:0  |  
   | 0-2 | 
| 1126 |             return button->text(); executed:  return button->text();Execution Count:2   | 2 | 
| 1127 |     }  | 0 | 
| 1128 |     return QString(); never executed: return QString();  | 0 | 
| 1129 | }  | - | 
| 1130 | QString QFileDialog::getOpenFileName(QWidget *parent,  | - | 
| 1131 |                                const QString &caption,  | - | 
| 1132 |                                const QString &dir,  | - | 
| 1133 |                                const QString &filter,  | - | 
| 1134 |                                QString *selectedFilter,  | - | 
| 1135 |                                Options options)  | - | 
| 1136 | {  | - | 
| 1137 |     if (qt_filedialog_open_filename_hook && !(options & DontUseNativeDialog)) partially evaluated:  qt_filedialog_open_filename_hook| yes Evaluation Count:1  | no Evaluation Count:0  |  
  partially evaluated:  !(options & DontUseNativeDialog)| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 1138 |         return qt_filedialog_open_filename_hook(parent, caption, dir, filter, selectedFilter, options); executed:  return qt_filedialog_open_filename_hook(parent, caption, dir, filter, selectedFilter, options);Execution Count:1   | 1 | 
| 1139 |     QFileDialogArgs args;  | - | 
| 1140 |     args.parent = parent;  | - | 
| 1141 |     args.caption = caption;  | - | 
| 1142 |     args.directory = QFileDialogPrivate::workingDirectory(dir);  | - | 
| 1143 |     args.selection = QFileDialogPrivate::initialSelection(dir);  | - | 
| 1144 |     args.filter = filter;  | - | 
| 1145 |     args.mode = ExistingFile;  | - | 
| 1146 |     args.options = options;  | - | 
| 1147 |   | - | 
| 1148 |   | - | 
| 1149 |   | - | 
| 1150 |   | - | 
| 1151 |   | - | 
| 1152 |   | - | 
| 1153 |   | - | 
| 1154 |     QFileDialog dialog(args);  | - | 
| 1155 |     if (selectedFilter && !selectedFilter->isEmpty()) never evaluated: selectedFilter never evaluated: !selectedFilter->isEmpty()  | 0 | 
| 1156 |         dialog.selectNameFilter(*selectedFilter); never executed: dialog.selectNameFilter(*selectedFilter);  | 0 | 
| 1157 |     if (dialog.exec() == QDialog::Accepted) { never evaluated: dialog.exec() == QDialog::Accepted  | 0 | 
| 1158 |         if (selectedFilter) never evaluated: selectedFilter  | 0 | 
| 1159 |             *selectedFilter = dialog.selectedNameFilter(); never executed: *selectedFilter = dialog.selectedNameFilter();  | 0 | 
| 1160 |         return dialog.selectedFiles().value(0); never executed: return dialog.selectedFiles().value(0);  | 0 | 
| 1161 |     }  | - | 
| 1162 |     return QString(); never executed: return QString();  | 0 | 
| 1163 | }  | - | 
| 1164 | QStringList QFileDialog::getOpenFileNames(QWidget *parent,  | - | 
| 1165 |                                           const QString &caption,  | - | 
| 1166 |                                           const QString &dir,  | - | 
| 1167 |                                           const QString &filter,  | - | 
| 1168 |                                           QString *selectedFilter,  | - | 
| 1169 |                                           Options options)  | - | 
| 1170 | {  | - | 
| 1171 |     if (qt_filedialog_open_filenames_hook && !(options & DontUseNativeDialog)) partially evaluated:  qt_filedialog_open_filenames_hook| yes Evaluation Count:1  | no Evaluation Count:0  |  
  partially evaluated:  !(options & DontUseNativeDialog)| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 1172 |         return qt_filedialog_open_filenames_hook(parent, caption, dir, filter, selectedFilter, options); executed:  return qt_filedialog_open_filenames_hook(parent, caption, dir, filter, selectedFilter, options);Execution Count:1   | 1 | 
| 1173 |     QFileDialogArgs args;  | - | 
| 1174 |     args.parent = parent;  | - | 
| 1175 |     args.caption = caption;  | - | 
| 1176 |     args.directory = QFileDialogPrivate::workingDirectory(dir);  | - | 
| 1177 |     args.selection = QFileDialogPrivate::initialSelection(dir);  | - | 
| 1178 |     args.filter = filter;  | - | 
| 1179 |     args.mode = ExistingFiles;  | - | 
| 1180 |     args.options = options;  | - | 
| 1181 |     QFileDialog dialog(args);  | - | 
| 1182 |     if (selectedFilter && !selectedFilter->isEmpty()) never evaluated: selectedFilter never evaluated: !selectedFilter->isEmpty()  | 0 | 
| 1183 |         dialog.selectNameFilter(*selectedFilter); never executed: dialog.selectNameFilter(*selectedFilter);  | 0 | 
| 1184 |     if (dialog.exec() == QDialog::Accepted) { never evaluated: dialog.exec() == QDialog::Accepted  | 0 | 
| 1185 |         if (selectedFilter) never evaluated: selectedFilter  | 0 | 
| 1186 |             *selectedFilter = dialog.selectedNameFilter(); never executed: *selectedFilter = dialog.selectedNameFilter();  | 0 | 
| 1187 |         return dialog.selectedFiles(); never executed: return dialog.selectedFiles();  | 0 | 
| 1188 |     }  | - | 
| 1189 |     return QStringList(); never executed: return QStringList();  | 0 | 
| 1190 | }  | - | 
| 1191 | QString QFileDialog::getSaveFileName(QWidget *parent,  | - | 
| 1192 |                                      const QString &caption,  | - | 
| 1193 |                                      const QString &dir,  | - | 
| 1194 |                                      const QString &filter,  | - | 
| 1195 |                                      QString *selectedFilter,  | - | 
| 1196 |                                      Options options)  | - | 
| 1197 | {  | - | 
| 1198 |     if (qt_filedialog_save_filename_hook && !(options & DontUseNativeDialog)) partially evaluated:  qt_filedialog_save_filename_hook| yes Evaluation Count:1  | no Evaluation Count:0  |  
  partially evaluated:  !(options & DontUseNativeDialog)| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 1199 |         return qt_filedialog_save_filename_hook(parent, caption, dir, filter, selectedFilter, options); executed:  return qt_filedialog_save_filename_hook(parent, caption, dir, filter, selectedFilter, options);Execution Count:1   | 1 | 
| 1200 |     QFileDialogArgs args;  | - | 
| 1201 |     args.parent = parent;  | - | 
| 1202 |     args.caption = caption;  | - | 
| 1203 |     args.directory = QFileDialogPrivate::workingDirectory(dir);  | - | 
| 1204 |     args.selection = QFileDialogPrivate::initialSelection(dir);  | - | 
| 1205 |     args.filter = filter;  | - | 
| 1206 |     args.mode = AnyFile;  | - | 
| 1207 |     args.options = options;  | - | 
| 1208 |     QFileDialog dialog(args);  | - | 
| 1209 |     dialog.setAcceptMode(AcceptSave);  | - | 
| 1210 |     if (selectedFilter && !selectedFilter->isEmpty()) never evaluated: selectedFilter never evaluated: !selectedFilter->isEmpty()  | 0 | 
| 1211 |         dialog.selectNameFilter(*selectedFilter); never executed: dialog.selectNameFilter(*selectedFilter);  | 0 | 
| 1212 |     if (dialog.exec() == QDialog::Accepted) { never evaluated: dialog.exec() == QDialog::Accepted  | 0 | 
| 1213 |         if (selectedFilter) never evaluated: selectedFilter  | 0 | 
| 1214 |             *selectedFilter = dialog.selectedNameFilter(); never executed: *selectedFilter = dialog.selectedNameFilter();  | 0 | 
| 1215 |         return dialog.selectedFiles().value(0); never executed: return dialog.selectedFiles().value(0);  | 0 | 
| 1216 |     }  | - | 
| 1217 |   | - | 
| 1218 |     return QString(); never executed: return QString();  | 0 | 
| 1219 | }  | - | 
| 1220 | QString QFileDialog::getExistingDirectory(QWidget *parent,  | - | 
| 1221 |                                           const QString &caption,  | - | 
| 1222 |                                           const QString &dir,  | - | 
| 1223 |                                           Options options)  | - | 
| 1224 | {  | - | 
| 1225 |     if (qt_filedialog_existing_directory_hook && !(options & DontUseNativeDialog)) partially evaluated:  qt_filedialog_existing_directory_hook| yes Evaluation Count:1  | no Evaluation Count:0  |  
  partially evaluated:  !(options & DontUseNativeDialog)| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 1226 |         return qt_filedialog_existing_directory_hook(parent, caption, dir, options); executed:  return qt_filedialog_existing_directory_hook(parent, caption, dir, options);Execution Count:1   | 1 | 
| 1227 |     QFileDialogArgs args;  | - | 
| 1228 |     args.parent = parent;  | - | 
| 1229 |     args.caption = caption;  | - | 
| 1230 |     args.directory = QFileDialogPrivate::workingDirectory(dir);  | - | 
| 1231 |     args.mode = (options & ShowDirsOnly ? DirectoryOnly : Directory); never evaluated: options & ShowDirsOnly  | 0 | 
| 1232 |     args.options = options;  | - | 
| 1233 |     QFileDialog dialog(args);  | - | 
| 1234 |     if (dialog.exec() == QDialog::Accepted) { never evaluated: dialog.exec() == QDialog::Accepted  | 0 | 
| 1235 |         return dialog.selectedFiles().value(0); never executed: return dialog.selectedFiles().value(0);  | 0 | 
| 1236 |     }  | - | 
| 1237 |     return QString(); never executed: return QString();  | 0 | 
| 1238 | }  | - | 
| 1239 |   | - | 
| 1240 | inline static QString _qt_get_directory(const QString &path)  | - | 
| 1241 | {  | - | 
| 1242 |     QFileInfo info = QFileInfo(QDir::current(), path);  | - | 
| 1243 |     if (info.exists() && info.isDir()) evaluated:  info.exists()| yes Evaluation Count:203  | yes Evaluation Count:19  |  
  evaluated:  info.isDir()| yes Evaluation Count:199  | yes Evaluation Count:4  |  
   | 4-203 | 
| 1244 |         return QDir::cleanPath(info.absoluteFilePath()); executed:  return QDir::cleanPath(info.absoluteFilePath());Execution Count:199   | 199 | 
| 1245 |     info.setFile(info.absolutePath());  | - | 
| 1246 |     if (info.exists() && info.isDir()) evaluated:  info.exists()| yes Evaluation Count:21  | yes Evaluation Count:2  |  
  partially evaluated:  info.isDir()| yes Evaluation Count:21  | no Evaluation Count:0  |  
   | 0-21 | 
| 1247 |         return info.absoluteFilePath(); executed:  return info.absoluteFilePath();Execution Count:21   | 21 | 
| 1248 |     return QString(); executed:  return QString();Execution Count:2   | 2 | 
| 1249 | }  | - | 
| 1250 |   | - | 
| 1251 |   | - | 
| 1252 |   | - | 
| 1253 |   | - | 
| 1254 |   | - | 
| 1255 | QString QFileDialogPrivate::workingDirectory(const QString &path)  | - | 
| 1256 | {  | - | 
| 1257 |     if (!path.isEmpty()) { evaluated:  !path.isEmpty()| yes Evaluation Count:62  | yes Evaluation Count:158  |  
   | 62-158 | 
| 1258 |         QString directory = _qt_get_directory(path);  | - | 
| 1259 |         if (!directory.isEmpty()) evaluated:  !directory.isEmpty()| yes Evaluation Count:60  | yes Evaluation Count:2  |  
   | 2-60 | 
| 1260 |             return directory; executed:  return directory;Execution Count:60   | 60 | 
| 1261 |     } executed:  }Execution Count:2   | 2 | 
| 1262 |     QString directory = _qt_get_directory(*lastVisitedDir());  | - | 
| 1263 |     if (!directory.isEmpty()) partially evaluated:  !directory.isEmpty()| yes Evaluation Count:160  | no Evaluation Count:0  |  
   | 0-160 | 
| 1264 |         return directory; executed:  return directory;Execution Count:160   | 160 | 
| 1265 |     return QDir::currentPath(); never executed: return QDir::currentPath();  | 0 | 
| 1266 | }  | - | 
| 1267 | QString QFileDialogPrivate::initialSelection(const QString &path)  | - | 
| 1268 | {  | - | 
| 1269 |     if (!path.isEmpty()) { evaluated:  !path.isEmpty()| yes Evaluation Count:31  | yes Evaluation Count:158  |  
   | 31-158 | 
| 1270 |         QFileInfo info(path);  | - | 
| 1271 |         if (!info.isDir()) evaluated:  !info.isDir()| yes Evaluation Count:9  | yes Evaluation Count:22  |  
   | 9-22 | 
| 1272 |             return info.fileName(); executed:  return info.fileName();Execution Count:9   | 9 | 
| 1273 |     } executed:  }Execution Count:22   | 22 | 
| 1274 |     return QString(); executed:  return QString();Execution Count:180   | 180 | 
| 1275 | }  | - | 
| 1276 |   | - | 
| 1277 |   | - | 
| 1278 |   | - | 
| 1279 |   | - | 
| 1280 | void QFileDialog::done(int result)  | - | 
| 1281 | {  | - | 
| 1282 |     QFileDialogPrivate * const d = d_func();  | - | 
| 1283 |   | - | 
| 1284 |     QDialog::done(result);  | - | 
| 1285 |   | - | 
| 1286 |     if (d->receiverToDisconnectOnClose) { partially evaluated:  d->receiverToDisconnectOnClose| no Evaluation Count:0  | yes Evaluation Count:8  |  
   | 0-8 | 
| 1287 |         disconnect(this, d->signalToDisconnectOnClose,  | - | 
| 1288 |                    d->receiverToDisconnectOnClose, d->memberToDisconnectOnClose);  | - | 
| 1289 |         d->receiverToDisconnectOnClose = 0;  | - | 
| 1290 |     }  | 0 | 
| 1291 |     d->memberToDisconnectOnClose.clear();  | - | 
| 1292 |     d->signalToDisconnectOnClose.clear();  | - | 
| 1293 | } executed:  }Execution Count:8   | 8 | 
| 1294 |   | - | 
| 1295 |   | - | 
| 1296 |   | - | 
| 1297 |   | - | 
| 1298 | void QFileDialog::accept()  | - | 
| 1299 | {  | - | 
| 1300 |     QFileDialogPrivate * const d = d_func();  | - | 
| 1301 |     QStringList files = selectedFiles();  | - | 
| 1302 |     if (files.isEmpty()) partially evaluated:  files.isEmpty()| no Evaluation Count:0  | yes Evaluation Count:6  |  
   | 0-6 | 
| 1303 |         return;  | 0 | 
| 1304 |     if (d->nativeDialogInUse){ partially evaluated:  d->nativeDialogInUse| no Evaluation Count:0  | yes Evaluation Count:6  |  
   | 0-6 | 
| 1305 |         d->emitFilesSelected(files);  | - | 
| 1306 |         QDialog::accept();  | - | 
| 1307 |         return;  | 0 | 
| 1308 |     }  | - | 
| 1309 |   | - | 
| 1310 |     QString lineEditText = d->lineEdit()->text();  | - | 
| 1311 |   | - | 
| 1312 |   | - | 
| 1313 |     if (lineEditText == QLatin1String("..")) { partially evaluated:  lineEditText == QLatin1String("..")| no Evaluation Count:0  | yes Evaluation Count:6  |  
   | 0-6 | 
| 1314 |         d->_q_navigateToParent();  | - | 
| 1315 |         bool block = d->qFileDialogUi->fileNameEdit->blockSignals(true);  | - | 
| 1316 |         d->lineEdit()->selectAll();  | - | 
| 1317 |         d->qFileDialogUi->fileNameEdit->blockSignals(block);  | - | 
| 1318 |         return;  | 0 | 
| 1319 |     }  | - | 
| 1320 |   | - | 
| 1321 |     switch (fileMode()) {  | - | 
| 1322 |     case DirectoryOnly:  | - | 
| 1323 |     case Directory: {  | - | 
| 1324 |         QString fn = files.first();  | - | 
| 1325 |         QFileInfo info(fn);  | - | 
| 1326 |         if (!info.exists()) partially evaluated:  !info.exists()| no Evaluation Count:0  | yes Evaluation Count:3  |  
   | 0-3 | 
| 1327 |             info = QFileInfo(d->getEnvironmentVariable(fn)); never executed: info = QFileInfo(d->getEnvironmentVariable(fn));  | 0 | 
| 1328 |         if (!info.exists()) { partially evaluated:  !info.exists()| no Evaluation Count:0  | yes Evaluation Count:3  |  
   | 0-3 | 
| 1329 |   | - | 
| 1330 |             QString message = tr("%1\nDirectory not found.\nPlease verify the "  | - | 
| 1331 |                                           "correct directory name was given.");  | - | 
| 1332 |             QMessageBox::warning(this, windowTitle(), message.arg(info.fileName()));  | - | 
| 1333 |   | - | 
| 1334 |             return;  | 0 | 
| 1335 |         }  | - | 
| 1336 |         if (info.isDir()) { partially evaluated:  info.isDir()| yes Evaluation Count:3  | no Evaluation Count:0  |  
   | 0-3 | 
| 1337 |             d->emitFilesSelected(files);  | - | 
| 1338 |             QDialog::accept();  | - | 
| 1339 |         } executed:  }Execution Count:3   | 3 | 
| 1340 |         return; executed:  return;Execution Count:3   | 3 | 
| 1341 |     }  | - | 
| 1342 |   | - | 
| 1343 |     case AnyFile: {  | - | 
| 1344 |         QString fn = files.first();  | - | 
| 1345 |         QFileInfo info(fn);  | - | 
| 1346 |         if (info.isDir()) { partially evaluated:  info.isDir()| no Evaluation Count:0  | yes Evaluation Count:1  |  
   | 0-1 | 
| 1347 |             setDirectory(info.absoluteFilePath());  | - | 
| 1348 |             return;  | 0 | 
| 1349 |         }  | - | 
| 1350 |   | - | 
| 1351 |         if (!info.exists()) { partially evaluated:  !info.exists()| no Evaluation Count:0  | yes Evaluation Count:1  |  
   | 0-1 | 
| 1352 |             int maxNameLength = d->maxNameLength(info.path());  | - | 
| 1353 |             if (maxNameLength >= 0 && info.fileName().length() > maxNameLength) never evaluated: maxNameLength >= 0 never evaluated: info.fileName().length() > maxNameLength  | 0 | 
| 1354 |                 return;  | 0 | 
| 1355 |         }  | 0 | 
| 1356 |   | - | 
| 1357 |   | - | 
| 1358 |         if (!info.exists() || !confirmOverwrite() || acceptMode() == AcceptOpen) { partially evaluated:  !info.exists()| no Evaluation Count:0  | yes Evaluation Count:1  |  
  partially evaluated:  !confirmOverwrite()| no Evaluation Count:0  | yes Evaluation Count:1  |  
  partially evaluated:  acceptMode() == AcceptOpen| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 1359 |             d->emitFilesSelected(QStringList(fn));  | - | 
| 1360 |             QDialog::accept();  | - | 
| 1361 |   | - | 
| 1362 |         } else { executed:  }Execution Count:1   | 1 | 
| 1363 |             if (QMessageBox::warning(this, windowTitle(),  | 0 | 
| 1364 |                                      tr("%1 already exists.\nDo you want to replace it?")  | 0 | 
| 1365 |                                      .arg(info.fileName()),  | 0 | 
| 1366 |                                      QMessageBox::Yes | QMessageBox::No, QMessageBox::No)  | 0 | 
| 1367 |                     == QMessageBox::Yes) { never evaluated: QMessageBox::warning(this, windowTitle(), tr("%1 already exists.\nDo you want to replace it?") .arg(info.fileName()), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes  | 0 | 
| 1368 |                 d->emitFilesSelected(QStringList(fn));  | - | 
| 1369 |                 QDialog::accept();  | - | 
| 1370 |             }  | 0 | 
| 1371 |   | - | 
| 1372 |         }  | 0 | 
| 1373 |         return; executed:  return;Execution Count:1   | 1 | 
| 1374 |     }  | - | 
| 1375 |   | - | 
| 1376 |     case ExistingFile:  | - | 
| 1377 |     case ExistingFiles:  | - | 
| 1378 |         for (int i = 0; i < files.count(); ++i) { evaluated:  i < files.count()| yes Evaluation Count:2  | yes Evaluation Count:2  |  
   | 2 | 
| 1379 |             QFileInfo info(files.at(i));  | - | 
| 1380 |             if (!info.exists()) partially evaluated:  !info.exists()| no Evaluation Count:0  | yes Evaluation Count:2  |  
   | 0-2 | 
| 1381 |                 info = QFileInfo(d->getEnvironmentVariable(files.at(i))); never executed: info = QFileInfo(d->getEnvironmentVariable(files.at(i)));  | 0 | 
| 1382 |             if (!info.exists()) { partially evaluated:  !info.exists()| no Evaluation Count:0  | yes Evaluation Count:2  |  
   | 0-2 | 
| 1383 |   | - | 
| 1384 |                 QString message = tr("%1\nFile not found.\nPlease verify the "  | - | 
| 1385 |                                      "correct file name was given.");  | - | 
| 1386 |                 QMessageBox::warning(this, windowTitle(), message.arg(info.fileName()));  | - | 
| 1387 |   | - | 
| 1388 |                 return;  | 0 | 
| 1389 |             }  | - | 
| 1390 |             if (info.isDir()) { partially evaluated:  info.isDir()| no Evaluation Count:0  | yes Evaluation Count:2  |  
   | 0-2 | 
| 1391 |                 setDirectory(info.absoluteFilePath());  | - | 
| 1392 |                 d->lineEdit()->clear();  | - | 
| 1393 |                 return;  | 0 | 
| 1394 |             }  | - | 
| 1395 |         } executed:  }Execution Count:2   | 2 | 
| 1396 |         d->emitFilesSelected(files);  | - | 
| 1397 |         QDialog::accept();  | - | 
| 1398 |         return; executed:  return;Execution Count:2   | 2 | 
| 1399 |     }  | - | 
| 1400 | }  | 0 | 
| 1401 |   | - | 
| 1402 |   | - | 
| 1403 |   | - | 
| 1404 |   | - | 
| 1405 |   | - | 
| 1406 |   | - | 
| 1407 | void QFileDialogPrivate::init(const QString &directory, const QString &nameFilter,  | - | 
| 1408 |                               const QString &caption)  | - | 
| 1409 | {  | - | 
| 1410 |     QFileDialog * const q = q_func();  | - | 
| 1411 |     if (!caption.isEmpty()) { evaluated:  !caption.isEmpty()| yes Evaluation Count:28  | yes Evaluation Count:161  |  
   | 28-161 | 
| 1412 |         useDefaultCaption = false;  | - | 
| 1413 |         setWindowTitle = caption;  | - | 
| 1414 |         q->setWindowTitle(caption);  | - | 
| 1415 |     } executed:  }Execution Count:28   | 28 | 
| 1416 |   | - | 
| 1417 |     createWidgets();  | - | 
| 1418 |     createMenuActions();  | - | 
| 1419 |     retranslateStrings();  | - | 
| 1420 |     q->setFileMode(QFileDialog::AnyFile);  | - | 
| 1421 |   | - | 
| 1422 |   | - | 
| 1423 |     QSettings settings(QSettings::UserScope, QLatin1String("QtProject"));  | - | 
| 1424 |     settings.beginGroup(QLatin1String("Qt"));  | - | 
| 1425 |     if (!directory.isEmpty()) evaluated:  !directory.isEmpty()| yes Evaluation Count:31  | yes Evaluation Count:158  |  
   | 31-158 | 
| 1426 |         setLastVisitedDirectory(workingDirectory(directory)); executed:  setLastVisitedDirectory(workingDirectory(directory));Execution Count:31   | 31 | 
| 1427 |     q->restoreState(settings.value(QLatin1String("filedialog")).toByteArray());  | - | 
| 1428 |     if (!nameFilter.isEmpty()) evaluated:  !nameFilter.isEmpty()| yes Evaluation Count:1  | yes Evaluation Count:188  |  
   | 1-188 | 
| 1429 |         q->setNameFilter(nameFilter); executed:  q->setNameFilter(nameFilter);Execution Count:1   | 1 | 
| 1430 |     q->setAcceptMode(QFileDialog::AcceptOpen);  | - | 
| 1431 |     q->setDirectory(workingDirectory(directory));  | - | 
| 1432 |     q->selectFile(initialSelection(directory));  | - | 
| 1433 |   | - | 
| 1434 |     _q_updateOkButton();  | - | 
| 1435 |     q->resize(q->sizeHint());  | - | 
| 1436 | } executed:  }Execution Count:189   | 189 | 
| 1437 |   | - | 
| 1438 |   | - | 
| 1439 |   | - | 
| 1440 |   | - | 
| 1441 |   | - | 
| 1442 |   | - | 
| 1443 | void QFileDialogPrivate::createWidgets()  | - | 
| 1444 | {  | - | 
| 1445 |     QFileDialog * const q = q_func();  | - | 
| 1446 |     model = new QFileSystemModel(q);  | - | 
| 1447 |     options->setFilter(model->filter());  | - | 
| 1448 |     model->setObjectName(QLatin1String("qt_filesystem_model"));  | - | 
| 1449 |     if (QPlatformFileDialogHelper *helper = platformFileDialogHelper()) partially evaluated:  QPlatformFileDialogHelper *helper = platformFileDialogHelper()| no Evaluation Count:0  | yes Evaluation Count:189  |  
   | 0-189 | 
| 1450 |         model->setNameFilterDisables(helper->defaultNameFilterDisables()); never executed: model->setNameFilterDisables(helper->defaultNameFilterDisables());  | 0 | 
| 1451 |     else  | - | 
| 1452 |         model->setNameFilterDisables(false); executed:  model->setNameFilterDisables(false);Execution Count:189   | 189 | 
| 1453 |     model->d_func()->disableRecursiveSort = true;  | - | 
| 1454 |     QFileDialog::connect(model, "2""fileRenamed(QString,QString,QString)", q, "1""_q_fileRenamed(QString,QString,QString)");  | - | 
| 1455 |     QFileDialog::connect(model, "2""rootPathChanged(QString)",  | - | 
| 1456 |             q, "1""_q_pathChanged(QString)");  | - | 
| 1457 |     QFileDialog::connect(model, "2""rowsInserted(QModelIndex,int,int)",  | - | 
| 1458 |             q, "1""_q_rowsInserted(QModelIndex)");  | - | 
| 1459 |     model->setReadOnly(false);  | - | 
| 1460 |   | - | 
| 1461 |     qFileDialogUi.reset(new Ui_QFileDialog());  | - | 
| 1462 |     qFileDialogUi->setupUi(q);  | - | 
| 1463 |   | - | 
| 1464 |     QList<QUrl> initialBookmarks;  | - | 
| 1465 |     initialBookmarks << QUrl::fromLocalFile(QLatin1String(""))  | - | 
| 1466 |                      << QUrl::fromLocalFile(QDir::homePath());  | - | 
| 1467 |     qFileDialogUi->sidebar->setModelAndUrls(model, initialBookmarks);  | - | 
| 1468 |     QFileDialog::connect(qFileDialogUi->sidebar, "2""goToUrl(QUrl)",  | - | 
| 1469 |                          q, "1""_q_goToUrl(QUrl)");  | - | 
| 1470 |   | - | 
| 1471 |     QObject::connect(qFileDialogUi->buttonBox, "2""accepted()", q, "1""accept()");  | - | 
| 1472 |     QObject::connect(qFileDialogUi->buttonBox, "2""rejected()", q, "1""reject()");  | - | 
| 1473 |   | - | 
| 1474 |     qFileDialogUi->lookInCombo->setFileDialogPrivate(this);  | - | 
| 1475 |     QObject::connect(qFileDialogUi->lookInCombo, "2""activated(QString)", q, "1""_q_goToDirectory(QString)");  | - | 
| 1476 |   | - | 
| 1477 |     qFileDialogUi->lookInCombo->setInsertPolicy(QComboBox::NoInsert);  | - | 
| 1478 |     qFileDialogUi->lookInCombo->setDuplicatesEnabled(false);  | - | 
| 1479 |   | - | 
| 1480 |   | - | 
| 1481 |     qFileDialogUi->fileNameEdit->setFileDialogPrivate(this);  | - | 
| 1482 |   | - | 
| 1483 |     qFileDialogUi->fileNameLabel->setBuddy(qFileDialogUi->fileNameEdit);  | - | 
| 1484 |   | - | 
| 1485 |   | - | 
| 1486 |     completer = new QFSCompleter(model, q);  | - | 
| 1487 |     qFileDialogUi->fileNameEdit->setCompleter(completer);  | - | 
| 1488 |   | - | 
| 1489 |     QObject::connect(qFileDialogUi->fileNameEdit, "2""textChanged(QString)",  | - | 
| 1490 |             q, "1""_q_autoCompleteFileName(QString)");  | - | 
| 1491 |     QObject::connect(qFileDialogUi->fileNameEdit, "2""textChanged(QString)",  | - | 
| 1492 |                      q, "1""_q_updateOkButton()");  | - | 
| 1493 |   | - | 
| 1494 |     QObject::connect(qFileDialogUi->fileNameEdit, "2""returnPressed()", q, "1""accept()");  | - | 
| 1495 |   | - | 
| 1496 |   | - | 
| 1497 |     qFileDialogUi->fileTypeCombo->setDuplicatesEnabled(false);  | - | 
| 1498 |     qFileDialogUi->fileTypeCombo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength);  | - | 
| 1499 |     qFileDialogUi->fileTypeCombo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);  | - | 
| 1500 |     QObject::connect(qFileDialogUi->fileTypeCombo, "2""activated(int)",  | - | 
| 1501 |                      q, "1""_q_useNameFilter(int)");  | - | 
| 1502 |     QObject::connect(qFileDialogUi->fileTypeCombo, "2""activated(QString)",  | - | 
| 1503 |                      q, "2""filterSelected(QString)");  | - | 
| 1504 |   | - | 
| 1505 |     qFileDialogUi->listView->setFileDialogPrivate(this);  | - | 
| 1506 |     qFileDialogUi->listView->setModel(model);  | - | 
| 1507 |     QObject::connect(qFileDialogUi->listView, "2""activated(QModelIndex)",  | - | 
| 1508 |                      q, "1""_q_enterDirectory(QModelIndex)");  | - | 
| 1509 |     QObject::connect(qFileDialogUi->listView, "2""customContextMenuRequested(QPoint)",  | - | 
| 1510 |                     q, "1""_q_showContextMenu(QPoint)");  | - | 
| 1511 |   | - | 
| 1512 |     QShortcut *shortcut = new QShortcut(qFileDialogUi->listView);  | - | 
| 1513 |     shortcut->setKey(QKeySequence(QLatin1String("Delete")));  | - | 
| 1514 |     QObject::connect(shortcut, "2""activated()", q, "1""_q_deleteCurrent()");  | - | 
| 1515 |   | - | 
| 1516 |   | - | 
| 1517 |     qFileDialogUi->treeView->setFileDialogPrivate(this);  | - | 
| 1518 |     qFileDialogUi->treeView->setModel(model);  | - | 
| 1519 |     QHeaderView *treeHeader = qFileDialogUi->treeView->header();  | - | 
| 1520 |     QFontMetrics fm(q->font());  | - | 
| 1521 |     treeHeader->resizeSection(0, fm.width(QLatin1String("wwwwwwwwwwwwwwwwwwwwwwwwww")));  | - | 
| 1522 |     treeHeader->resizeSection(1, fm.width(QLatin1String("128.88 GB")));  | - | 
| 1523 |     treeHeader->resizeSection(2, fm.width(QLatin1String("mp3Folder")));  | - | 
| 1524 |     treeHeader->resizeSection(3, fm.width(QLatin1String("10/29/81 02:02PM")));  | - | 
| 1525 |     treeHeader->setContextMenuPolicy(Qt::ActionsContextMenu);  | - | 
| 1526 |   | - | 
| 1527 |     QActionGroup *showActionGroup = new QActionGroup(q);  | - | 
| 1528 |     showActionGroup->setExclusive(false);  | - | 
| 1529 |     QObject::connect(showActionGroup, "2""triggered(QAction*)",  | - | 
| 1530 |                      q, "1""_q_showHeader(QAction*)");;  | - | 
| 1531 |   | - | 
| 1532 |     QAbstractItemModel *abstractModel = model;  | - | 
| 1533 |   | - | 
| 1534 |     if (proxyModel) partially evaluated:  proxyModel| no Evaluation Count:0  | yes Evaluation Count:189  |  
   | 0-189 | 
| 1535 |         abstractModel = proxyModel; never executed: abstractModel = proxyModel;  | 0 | 
| 1536 |   | - | 
| 1537 |     for (int i = 1; i < abstractModel->columnCount(QModelIndex()); ++i) { evaluated:  i < abstractModel->columnCount(QModelIndex())| yes Evaluation Count:567  | yes Evaluation Count:189  |  
   | 189-567 | 
| 1538 |         QAction *showHeader = new QAction(showActionGroup);  | - | 
| 1539 |         showHeader->setCheckable(true);  | - | 
| 1540 |         showHeader->setChecked(true);  | - | 
| 1541 |         treeHeader->addAction(showHeader);  | - | 
| 1542 |     } executed:  }Execution Count:567   | 567 | 
| 1543 |   | - | 
| 1544 |     QScopedPointer<QItemSelectionModel> selModel(qFileDialogUi->treeView->selectionModel());  | - | 
| 1545 |     qFileDialogUi->treeView->setSelectionModel(qFileDialogUi->listView->selectionModel());  | - | 
| 1546 |   | - | 
| 1547 |     QObject::connect(qFileDialogUi->treeView, "2""activated(QModelIndex)",  | - | 
| 1548 |                      q, "1""_q_enterDirectory(QModelIndex)");  | - | 
| 1549 |     QObject::connect(qFileDialogUi->treeView, "2""customContextMenuRequested(QPoint)",  | - | 
| 1550 |                      q, "1""_q_showContextMenu(QPoint)");  | - | 
| 1551 |   | - | 
| 1552 |     shortcut = new QShortcut(qFileDialogUi->treeView);  | - | 
| 1553 |     shortcut->setKey(QKeySequence(QLatin1String("Delete")));  | - | 
| 1554 |     QObject::connect(shortcut, "2""activated()", q, "1""_q_deleteCurrent()");  | - | 
| 1555 |   | - | 
| 1556 |   | - | 
| 1557 |   | - | 
| 1558 |     QItemSelectionModel *selections = qFileDialogUi->listView->selectionModel();  | - | 
| 1559 |     QObject::connect(selections, "2""selectionChanged(QItemSelection,QItemSelection)",  | - | 
| 1560 |                      q, "1""_q_selectionChanged()");  | - | 
| 1561 |     QObject::connect(selections, "2""currentChanged(QModelIndex,QModelIndex)",  | - | 
| 1562 |                      q, "1""_q_currentChanged(QModelIndex)");  | - | 
| 1563 |     qFileDialogUi->splitter->setStretchFactor(qFileDialogUi->splitter->indexOf(qFileDialogUi->splitter->widget(1)), QSizePolicy::Expanding);  | - | 
| 1564 |   | - | 
| 1565 |     createToolButtons();  | - | 
| 1566 | } executed:  }Execution Count:189   | 189 | 
| 1567 |   | - | 
| 1568 | void QFileDialogPrivate::_q_showHeader(QAction *action)  | - | 
| 1569 | {  | - | 
| 1570 |     QFileDialog * const q = q_func();  | - | 
| 1571 |     QActionGroup *actionGroup = qobject_cast<QActionGroup*>(q->sender());  | - | 
| 1572 |     qFileDialogUi->treeView->header()->setSectionHidden(actionGroup->actions().indexOf(action) + 1, !action->isChecked());  | - | 
| 1573 | }  | 0 | 
| 1574 | void QFileDialog::setProxyModel(QAbstractProxyModel *proxyModel)  | - | 
| 1575 | {  | - | 
| 1576 |     QFileDialogPrivate * const d = d_func();  | - | 
| 1577 |     if ((!proxyModel && !d->proxyModel) evaluated:  !proxyModel| yes Evaluation Count:2  | yes Evaluation Count:1  |  
  evaluated:  !d->proxyModel| yes Evaluation Count:1  | yes Evaluation Count:1  |  
   | 1-2 | 
| 1578 |         || (proxyModel == d->proxyModel)) partially evaluated:  (proxyModel == d->proxyModel)| no Evaluation Count:0  | yes Evaluation Count:2  |  
   | 0-2 | 
| 1579 |         return; executed:  return;Execution Count:1   | 1 | 
| 1580 |   | - | 
| 1581 |     QModelIndex idx = d->rootIndex();  | - | 
| 1582 |     if (d->proxyModel) { evaluated:  d->proxyModel| yes Evaluation Count:1  | yes Evaluation Count:1  |  
   | 1 | 
| 1583 |         disconnect(d->proxyModel, "2""rowsInserted(QModelIndex,int,int)",  | - | 
| 1584 |             this, "1""_q_rowsInserted(QModelIndex)");  | - | 
| 1585 |     } else { executed:  }Execution Count:1   | 1 | 
| 1586 |         disconnect(d->model, "2""rowsInserted(QModelIndex,int,int)",  | - | 
| 1587 |             this, "1""_q_rowsInserted(QModelIndex)");  | - | 
| 1588 |     } executed:  }Execution Count:1   | 1 | 
| 1589 |   | - | 
| 1590 |     if (proxyModel != 0) { evaluated:  proxyModel != 0| yes Evaluation Count:1  | yes Evaluation Count:1  |  
   | 1 | 
| 1591 |         proxyModel->setParent(this);  | - | 
| 1592 |         d->proxyModel = proxyModel;  | - | 
| 1593 |         proxyModel->setSourceModel(d->model);  | - | 
| 1594 |         d->qFileDialogUi->listView->setModel(d->proxyModel);  | - | 
| 1595 |         d->qFileDialogUi->treeView->setModel(d->proxyModel);  | - | 
| 1596 |   | - | 
| 1597 |         d->completer->setModel(d->proxyModel);  | - | 
| 1598 |         d->completer->proxyModel = d->proxyModel;  | - | 
| 1599 |   | - | 
| 1600 |         connect(d->proxyModel, "2""rowsInserted(QModelIndex,int,int)",  | - | 
| 1601 |             this, "1""_q_rowsInserted(QModelIndex)");  | - | 
| 1602 |     } else { executed:  }Execution Count:1   | 1 | 
| 1603 |         d->proxyModel = 0;  | - | 
| 1604 |         d->qFileDialogUi->listView->setModel(d->model);  | - | 
| 1605 |         d->qFileDialogUi->treeView->setModel(d->model);  | - | 
| 1606 |   | - | 
| 1607 |         d->completer->setModel(d->model);  | - | 
| 1608 |         d->completer->sourceModel = d->model;  | - | 
| 1609 |         d->completer->proxyModel = 0;  | - | 
| 1610 |   | - | 
| 1611 |         connect(d->model, "2""rowsInserted(QModelIndex,int,int)",  | - | 
| 1612 |             this, "1""_q_rowsInserted(QModelIndex)");  | - | 
| 1613 |     } executed:  }Execution Count:1   | 1 | 
| 1614 |     QScopedPointer<QItemSelectionModel> selModel(d->qFileDialogUi->treeView->selectionModel());  | - | 
| 1615 |     d->qFileDialogUi->treeView->setSelectionModel(d->qFileDialogUi->listView->selectionModel());  | - | 
| 1616 |   | - | 
| 1617 |     d->setRootIndex(idx);  | - | 
| 1618 |   | - | 
| 1619 |   | - | 
| 1620 |     QItemSelectionModel *selections = d->qFileDialogUi->listView->selectionModel();  | - | 
| 1621 |     QObject::connect(selections, "2""selectionChanged(QItemSelection,QItemSelection)",  | - | 
| 1622 |                      this, "1""_q_selectionChanged()");  | - | 
| 1623 |     QObject::connect(selections, "2""currentChanged(QModelIndex,QModelIndex)",  | - | 
| 1624 |                      this, "1""_q_currentChanged(QModelIndex)");  | - | 
| 1625 | } executed:  }Execution Count:2   | 2 | 
| 1626 |   | - | 
| 1627 |   | - | 
| 1628 |   | - | 
| 1629 |   | - | 
| 1630 |   | - | 
| 1631 |   | - | 
| 1632 | QAbstractProxyModel *QFileDialog::proxyModel() const  | - | 
| 1633 | {  | - | 
| 1634 |     const QFileDialogPrivate * const d = d_func();  | - | 
| 1635 |     return d->proxyModel; executed:  return d->proxyModel;Execution Count:4   | 4 | 
| 1636 | }  | - | 
| 1637 |   | - | 
| 1638 |   | - | 
| 1639 |   | - | 
| 1640 |   | - | 
| 1641 |   | - | 
| 1642 |   | - | 
| 1643 |   | - | 
| 1644 | void QFileDialogPrivate::createToolButtons()  | - | 
| 1645 | {  | - | 
| 1646 |     QFileDialog * const q = q_func();  | - | 
| 1647 |     qFileDialogUi->backButton->setIcon(q->style()->standardIcon(QStyle::SP_ArrowBack, 0, q));  | - | 
| 1648 |     qFileDialogUi->backButton->setAutoRaise(true);  | - | 
| 1649 |     qFileDialogUi->backButton->setEnabled(false);  | - | 
| 1650 |     QObject::connect(qFileDialogUi->backButton, "2""clicked()", q, "1""_q_navigateBackward()");  | - | 
| 1651 |   | - | 
| 1652 |     qFileDialogUi->forwardButton->setIcon(q->style()->standardIcon(QStyle::SP_ArrowForward, 0, q));  | - | 
| 1653 |     qFileDialogUi->forwardButton->setAutoRaise(true);  | - | 
| 1654 |     qFileDialogUi->forwardButton->setEnabled(false);  | - | 
| 1655 |     QObject::connect(qFileDialogUi->forwardButton, "2""clicked()", q, "1""_q_navigateForward()");  | - | 
| 1656 |   | - | 
| 1657 |     qFileDialogUi->toParentButton->setIcon(q->style()->standardIcon(QStyle::SP_FileDialogToParent, 0, q));  | - | 
| 1658 |     qFileDialogUi->toParentButton->setAutoRaise(true);  | - | 
| 1659 |     qFileDialogUi->toParentButton->setEnabled(false);  | - | 
| 1660 |     QObject::connect(qFileDialogUi->toParentButton, "2""clicked()", q, "1""_q_navigateToParent()");  | - | 
| 1661 |   | - | 
| 1662 |     qFileDialogUi->listModeButton->setIcon(q->style()->standardIcon(QStyle::SP_FileDialogListView, 0, q));  | - | 
| 1663 |     qFileDialogUi->listModeButton->setAutoRaise(true);  | - | 
| 1664 |     qFileDialogUi->listModeButton->setDown(true);  | - | 
| 1665 |     QObject::connect(qFileDialogUi->listModeButton, "2""clicked()", q, "1""_q_showListView()");  | - | 
| 1666 |   | - | 
| 1667 |     qFileDialogUi->detailModeButton->setIcon(q->style()->standardIcon(QStyle::SP_FileDialogDetailedView, 0, q));  | - | 
| 1668 |     qFileDialogUi->detailModeButton->setAutoRaise(true);  | - | 
| 1669 |     QObject::connect(qFileDialogUi->detailModeButton, "2""clicked()", q, "1""_q_showDetailsView()");  | - | 
| 1670 |   | - | 
| 1671 |     QSize toolSize(qFileDialogUi->fileNameEdit->sizeHint().height(), qFileDialogUi->fileNameEdit->sizeHint().height());  | - | 
| 1672 |     qFileDialogUi->backButton->setFixedSize(toolSize);  | - | 
| 1673 |     qFileDialogUi->listModeButton->setFixedSize(toolSize);  | - | 
| 1674 |     qFileDialogUi->detailModeButton->setFixedSize(toolSize);  | - | 
| 1675 |     qFileDialogUi->forwardButton->setFixedSize(toolSize);  | - | 
| 1676 |     qFileDialogUi->toParentButton->setFixedSize(toolSize);  | - | 
| 1677 |   | - | 
| 1678 |     qFileDialogUi->newFolderButton->setIcon(q->style()->standardIcon(QStyle::SP_FileDialogNewFolder, 0, q));  | - | 
| 1679 |     qFileDialogUi->newFolderButton->setFixedSize(toolSize);  | - | 
| 1680 |     qFileDialogUi->newFolderButton->setAutoRaise(true);  | - | 
| 1681 |     qFileDialogUi->newFolderButton->setEnabled(false);  | - | 
| 1682 |     QObject::connect(qFileDialogUi->newFolderButton, "2""clicked()", q, "1""_q_createDirectory()");  | - | 
| 1683 | } executed:  }Execution Count:189   | 189 | 
| 1684 |   | - | 
| 1685 |   | - | 
| 1686 |   | - | 
| 1687 |   | - | 
| 1688 |   | - | 
| 1689 |   | - | 
| 1690 | void QFileDialogPrivate::createMenuActions()  | - | 
| 1691 | {  | - | 
| 1692 |     QFileDialog * const q = q_func();  | - | 
| 1693 |   | - | 
| 1694 |     QAction *goHomeAction = new QAction(q);  | - | 
| 1695 |   | - | 
| 1696 |     goHomeAction->setShortcut(Qt::CTRL + Qt::Key_H + Qt::SHIFT);  | - | 
| 1697 |   | - | 
| 1698 |     QObject::connect(goHomeAction, "2""triggered()", q, "1""_q_goHome()");  | - | 
| 1699 |     q->addAction(goHomeAction);  | - | 
| 1700 |   | - | 
| 1701 |   | - | 
| 1702 |   | - | 
| 1703 |     QAction *goToParent = new QAction(q);  | - | 
| 1704 |     goToParent->setObjectName(QLatin1String("qt_goto_parent_action"));  | - | 
| 1705 |   | - | 
| 1706 |     goToParent->setShortcut(Qt::CTRL + Qt::UpArrow);  | - | 
| 1707 |   | - | 
| 1708 |     QObject::connect(goToParent, "2""triggered()", q, "1""_q_navigateToParent()");  | - | 
| 1709 |     q->addAction(goToParent);  | - | 
| 1710 |   | - | 
| 1711 |     renameAction = new QAction(q);  | - | 
| 1712 |     renameAction->setEnabled(false);  | - | 
| 1713 |     renameAction->setObjectName(QLatin1String("qt_rename_action"));  | - | 
| 1714 |     QObject::connect(renameAction, "2""triggered()", q, "1""_q_renameCurrent()");  | - | 
| 1715 |   | - | 
| 1716 |     deleteAction = new QAction(q);  | - | 
| 1717 |     deleteAction->setEnabled(false);  | - | 
| 1718 |     deleteAction->setObjectName(QLatin1String("qt_delete_action"));  | - | 
| 1719 |     QObject::connect(deleteAction, "2""triggered()", q, "1""_q_deleteCurrent()");  | - | 
| 1720 |   | - | 
| 1721 |     showHiddenAction = new QAction(q);  | - | 
| 1722 |     showHiddenAction->setObjectName(QLatin1String("qt_show_hidden_action"));  | - | 
| 1723 |     showHiddenAction->setCheckable(true);  | - | 
| 1724 |     QObject::connect(showHiddenAction, "2""triggered()", q, "1""_q_showHidden()");  | - | 
| 1725 |   | - | 
| 1726 |     newFolderAction = new QAction(q);  | - | 
| 1727 |     newFolderAction->setObjectName(QLatin1String("qt_new_folder_action"));  | - | 
| 1728 |     QObject::connect(newFolderAction, "2""triggered()", q, "1""_q_createDirectory()");  | - | 
| 1729 | } executed:  }Execution Count:189   | 189 | 
| 1730 |   | - | 
| 1731 | void QFileDialogPrivate::_q_goHome()  | - | 
| 1732 | {  | - | 
| 1733 |     QFileDialog * const q = q_func();  | - | 
| 1734 |     q->setDirectory(QDir::homePath());  | - | 
| 1735 | }  | 0 | 
| 1736 |   | - | 
| 1737 |   | - | 
| 1738 |   | - | 
| 1739 |   | - | 
| 1740 |   | - | 
| 1741 |   | - | 
| 1742 | void QFileDialogPrivate::_q_pathChanged(const QString &newPath)  | - | 
| 1743 | {  | - | 
| 1744 |     QFileDialog * const q = q_func();  | - | 
| 1745 |     QDir dir(model->rootDirectory());  | - | 
| 1746 |     qFileDialogUi->toParentButton->setEnabled(dir.exists());  | - | 
| 1747 |     qFileDialogUi->sidebar->selectUrl(QUrl::fromLocalFile(newPath));  | - | 
| 1748 |     q->setHistory(qFileDialogUi->lookInCombo->history());  | - | 
| 1749 |   | - | 
| 1750 |     if (currentHistoryLocation < 0 || currentHistory.value(currentHistoryLocation) != QDir::toNativeSeparators(newPath)) { evaluated:  currentHistoryLocation < 0| yes Evaluation Count:189  | yes Evaluation Count:47  |  
  evaluated:  currentHistory.value(currentHistoryLocation) != QDir::toNativeSeparators(newPath)| yes Evaluation Count:35  | yes Evaluation Count:12  |  
   | 12-189 | 
| 1751 |         while (currentHistoryLocation >= 0 && currentHistoryLocation + 1 < currentHistory.count()) { evaluated:  currentHistoryLocation >= 0| yes Evaluation Count:37  | yes Evaluation Count:189  |  
  evaluated:  currentHistoryLocation + 1 < currentHistory.count()| yes Evaluation Count:2  | yes Evaluation Count:35  |  
   | 2-189 | 
| 1752 |             currentHistory.removeLast();  | - | 
| 1753 |         } executed:  }Execution Count:2   | 2 | 
| 1754 |         currentHistory.append(QDir::toNativeSeparators(newPath));  | - | 
| 1755 |         ++currentHistoryLocation;  | - | 
| 1756 |     } executed:  }Execution Count:224   | 224 | 
| 1757 |     qFileDialogUi->forwardButton->setEnabled(currentHistory.size() - currentHistoryLocation > 1);  | - | 
| 1758 |     qFileDialogUi->backButton->setEnabled(currentHistoryLocation > 0);  | - | 
| 1759 | } executed:  }Execution Count:236   | 236 | 
| 1760 |   | - | 
| 1761 |   | - | 
| 1762 |   | - | 
| 1763 |   | - | 
| 1764 |   | - | 
| 1765 |   | - | 
| 1766 | void QFileDialogPrivate::_q_navigateBackward()  | - | 
| 1767 | {  | - | 
| 1768 |     QFileDialog * const q = q_func();  | - | 
| 1769 |     if (!currentHistory.isEmpty() && currentHistoryLocation > 0) { partially evaluated:  !currentHistory.isEmpty()| yes Evaluation Count:8  | no Evaluation Count:0  |  
  partially evaluated:  currentHistoryLocation > 0| yes Evaluation Count:8  | no Evaluation Count:0  |  
   | 0-8 | 
| 1770 |         --currentHistoryLocation;  | - | 
| 1771 |         QString previousHistory = currentHistory.at(currentHistoryLocation);  | - | 
| 1772 |         q->setDirectory(previousHistory);  | - | 
| 1773 |     } executed:  }Execution Count:8   | 8 | 
| 1774 | } executed:  }Execution Count:8   | 8 | 
| 1775 |   | - | 
| 1776 |   | - | 
| 1777 |   | - | 
| 1778 |   | - | 
| 1779 |   | - | 
| 1780 |   | - | 
| 1781 | void QFileDialogPrivate::_q_navigateForward()  | - | 
| 1782 | {  | - | 
| 1783 |     QFileDialog * const q = q_func();  | - | 
| 1784 |     if (!currentHistory.isEmpty() && currentHistoryLocation < currentHistory.size() - 1) { partially evaluated:  !currentHistory.isEmpty()| yes Evaluation Count:4  | no Evaluation Count:0  |  
  partially evaluated:  currentHistoryLocation < currentHistory.size() - 1| yes Evaluation Count:4  | no Evaluation Count:0  |  
   | 0-4 | 
| 1785 |         ++currentHistoryLocation;  | - | 
| 1786 |         QString nextHistory = currentHistory.at(currentHistoryLocation);  | - | 
| 1787 |         q->setDirectory(nextHistory);  | - | 
| 1788 |     } executed:  }Execution Count:4   | 4 | 
| 1789 | } executed:  }Execution Count:4   | 4 | 
| 1790 |   | - | 
| 1791 |   | - | 
| 1792 |   | - | 
| 1793 |   | - | 
| 1794 |   | - | 
| 1795 |   | - | 
| 1796 |   | - | 
| 1797 | void QFileDialogPrivate::_q_navigateToParent()  | - | 
| 1798 | {  | - | 
| 1799 |     QFileDialog * const q = q_func();  | - | 
| 1800 |     QDir dir(model->rootDirectory());  | - | 
| 1801 |     QString newDirectory;  | - | 
| 1802 |     if (dir.isRoot()) { partially evaluated:  dir.isRoot()| no Evaluation Count:0  | yes Evaluation Count:1  |  
   | 0-1 | 
| 1803 |         newDirectory = model->myComputer().toString();  | - | 
| 1804 |     } else {  | 0 | 
| 1805 |         dir.cdUp();  | - | 
| 1806 |         newDirectory = dir.absolutePath();  | - | 
| 1807 |     } executed:  }Execution Count:1   | 1 | 
| 1808 |     q->setDirectory(newDirectory);  | - | 
| 1809 |     q->directoryEntered(newDirectory);  | - | 
| 1810 | } executed:  }Execution Count:1   | 1 | 
| 1811 |   | - | 
| 1812 |   | - | 
| 1813 |   | - | 
| 1814 |   | - | 
| 1815 |   | - | 
| 1816 |   | - | 
| 1817 | void QFileDialogPrivate::_q_createDirectory()  | - | 
| 1818 | {  | - | 
| 1819 |     QFileDialog * const q = q_func();  | - | 
| 1820 |     qFileDialogUi->listView->clearSelection();  | - | 
| 1821 |   | - | 
| 1822 |     QString newFolderString = QFileDialog::tr("New Folder");  | - | 
| 1823 |     QString folderName = newFolderString;  | - | 
| 1824 |     QString prefix = q->directory().absolutePath() + QDir::separator();  | - | 
| 1825 |     if (QFile::exists(prefix + folderName)) { never evaluated: QFile::exists(prefix + folderName)  | 0 | 
| 1826 |         qlonglong suffix = 2;  | - | 
| 1827 |         while (QFile::exists(prefix + folderName)) { never evaluated: QFile::exists(prefix + folderName)  | 0 | 
| 1828 |             folderName = newFolderString + QString::number(suffix++);  | - | 
| 1829 |         }  | 0 | 
| 1830 |     }  | 0 | 
| 1831 |   | - | 
| 1832 |     QModelIndex parent = rootIndex();  | - | 
| 1833 |     QModelIndex index = model->mkdir(parent, folderName);  | - | 
| 1834 |     if (!index.isValid()) never evaluated: !index.isValid()  | 0 | 
| 1835 |         return;  | 0 | 
| 1836 |   | - | 
| 1837 |     index = select(index);  | - | 
| 1838 |     if (index.isValid()) { never evaluated: index.isValid()  | 0 | 
| 1839 |         qFileDialogUi->treeView->setCurrentIndex(index);  | - | 
| 1840 |         currentView()->edit(index);  | - | 
| 1841 |     }  | 0 | 
| 1842 | }  | 0 | 
| 1843 |   | - | 
| 1844 | void QFileDialogPrivate::_q_showListView()  | - | 
| 1845 | {  | - | 
| 1846 |     qFileDialogUi->listModeButton->setDown(true);  | - | 
| 1847 |     qFileDialogUi->detailModeButton->setDown(false);  | - | 
| 1848 |     qFileDialogUi->treeView->hide();  | - | 
| 1849 |     qFileDialogUi->listView->show();  | - | 
| 1850 |     qFileDialogUi->stackedWidget->setCurrentWidget(qFileDialogUi->listView->parentWidget());  | - | 
| 1851 |     qFileDialogUi->listView->doItemsLayout();  | - | 
| 1852 | } executed:  }Execution Count:125   | 125 | 
| 1853 |   | - | 
| 1854 | void QFileDialogPrivate::_q_showDetailsView()  | - | 
| 1855 | {  | - | 
| 1856 |     qFileDialogUi->listModeButton->setDown(false);  | - | 
| 1857 |     qFileDialogUi->detailModeButton->setDown(true);  | - | 
| 1858 |     qFileDialogUi->listView->hide();  | - | 
| 1859 |     qFileDialogUi->treeView->show();  | - | 
| 1860 |     qFileDialogUi->stackedWidget->setCurrentWidget(qFileDialogUi->treeView->parentWidget());  | - | 
| 1861 |     qFileDialogUi->treeView->doItemsLayout();  | - | 
| 1862 | } executed:  }Execution Count:4   | 4 | 
| 1863 |   | - | 
| 1864 |   | - | 
| 1865 |   | - | 
| 1866 |   | - | 
| 1867 |   | - | 
| 1868 |   | - | 
| 1869 | void QFileDialogPrivate::_q_showContextMenu(const QPoint &position)  | - | 
| 1870 | {  | - | 
| 1871 |   | - | 
| 1872 |   | - | 
| 1873 |   | - | 
| 1874 |     QFileDialog * const q = q_func();  | - | 
| 1875 |     QAbstractItemView *view = 0;  | - | 
| 1876 |     if (q->viewMode() == QFileDialog::Detail) partially evaluated:  q->viewMode() == QFileDialog::Detail| no Evaluation Count:0  | yes Evaluation Count:3  |  
   | 0-3 | 
| 1877 |         view = qFileDialogUi->treeView; never executed: view = qFileDialogUi->treeView;  | 0 | 
| 1878 |     else  | - | 
| 1879 |         view = qFileDialogUi->listView; executed:  view = qFileDialogUi->listView;Execution Count:3   | 3 | 
| 1880 |     QModelIndex index = view->indexAt(position);  | - | 
| 1881 |     index = mapToSource(index.sibling(index.row(), 0));  | - | 
| 1882 |   | - | 
| 1883 |     QMenu menu(view);  | - | 
| 1884 |     if (index.isValid()) { partially evaluated:  index.isValid()| yes Evaluation Count:3  | no Evaluation Count:0  |  
   | 0-3 | 
| 1885 |   | - | 
| 1886 |         const bool ro = model && model->isReadOnly(); partially evaluated:  model| yes Evaluation Count:3  | no Evaluation Count:0  |  
  evaluated:  model->isReadOnly()| yes Evaluation Count:1  | yes Evaluation Count:2  |  
   | 0-3 | 
| 1887 |         QFile::Permissions p(index.parent().data(QFileSystemModel::FilePermissions).toInt());  | - | 
| 1888 |         renameAction->setEnabled(!ro && p & QFile::WriteUser);  | - | 
| 1889 |         menu.addAction(renameAction);  | - | 
| 1890 |         deleteAction->setEnabled(!ro && p & QFile::WriteUser);  | - | 
| 1891 |         menu.addAction(deleteAction);  | - | 
| 1892 |         menu.addSeparator();  | - | 
| 1893 |     } executed:  }Execution Count:3   | 3 | 
| 1894 |     menu.addAction(showHiddenAction);  | - | 
| 1895 |     if (qFileDialogUi->newFolderButton->isVisible()) { partially evaluated:  qFileDialogUi->newFolderButton->isVisible()| yes Evaluation Count:3  | no Evaluation Count:0  |  
   | 0-3 | 
| 1896 |         newFolderAction->setEnabled(qFileDialogUi->newFolderButton->isEnabled());  | - | 
| 1897 |         menu.addAction(newFolderAction);  | - | 
| 1898 |     } executed:  }Execution Count:3   | 3 | 
| 1899 |     menu.exec(view->viewport()->mapToGlobal(position));  | - | 
| 1900 |   | - | 
| 1901 | } executed:  }Execution Count:3   | 3 | 
| 1902 |   | - | 
| 1903 |   | - | 
| 1904 |   | - | 
| 1905 |   | - | 
| 1906 | void QFileDialogPrivate::_q_renameCurrent()  | - | 
| 1907 | {  | - | 
| 1908 |     QFileDialog * const q = q_func();  | - | 
| 1909 |     QModelIndex index = qFileDialogUi->listView->currentIndex();  | - | 
| 1910 |     index = index.sibling(index.row(), 0);  | - | 
| 1911 |     if (q->viewMode() == QFileDialog::List) never evaluated: q->viewMode() == QFileDialog::List  | 0 | 
| 1912 |         qFileDialogUi->listView->edit(index); never executed: qFileDialogUi->listView->edit(index);  | 0 | 
| 1913 |     else  | - | 
| 1914 |         qFileDialogUi->treeView->edit(index); never executed: qFileDialogUi->treeView->edit(index);  | 0 | 
| 1915 | }  | - | 
| 1916 |   | - | 
| 1917 | bool QFileDialogPrivate::removeDirectory(const QString &path)  | - | 
| 1918 | {  | - | 
| 1919 |     QModelIndex modelIndex = model->index(path);  | - | 
| 1920 |     return model->remove(modelIndex); never executed: return model->remove(modelIndex);  | 0 | 
| 1921 | }  | - | 
| 1922 |   | - | 
| 1923 |   | - | 
| 1924 |   | - | 
| 1925 |   | - | 
| 1926 |   | - | 
| 1927 |   | - | 
| 1928 | void QFileDialogPrivate::_q_deleteCurrent()  | - | 
| 1929 | {  | - | 
| 1930 |     if (model->isReadOnly()) never evaluated: model->isReadOnly()  | 0 | 
| 1931 |         return;  | 0 | 
| 1932 |   | - | 
| 1933 |     QModelIndexList list = qFileDialogUi->listView->selectionModel()->selectedRows();  | - | 
| 1934 |     for (int i = list.count() - 1; i >= 0; --i) {  | 0 | 
| 1935 |         QModelIndex index = list.at(i);  | - | 
| 1936 |         if (index == qFileDialogUi->listView->rootIndex()) never evaluated: index == qFileDialogUi->listView->rootIndex()  | 0 | 
| 1937 |             continue; never executed: continue;  | 0 | 
| 1938 |   | - | 
| 1939 |         index = mapToSource(index.sibling(index.row(), 0));  | - | 
| 1940 |         if (!index.isValid()) never evaluated: !index.isValid()  | 0 | 
| 1941 |             continue; never executed: continue;  | 0 | 
| 1942 |   | - | 
| 1943 |     QString fileName = index.data(QFileSystemModel::FileNameRole).toString();  | - | 
| 1944 |     QString filePath = index.data(QFileSystemModel::FilePathRole).toString();  | - | 
| 1945 |     bool isDir = model->isDir(index);  | - | 
| 1946 |   | - | 
| 1947 |     QFile::Permissions p(index.parent().data(QFileSystemModel::FilePermissions).toInt());  | - | 
| 1948 |   | - | 
| 1949 |     QFileDialog * const q = q_func();  | - | 
| 1950 |     if (!(p & QFile::WriteUser) && (QMessageBox::warning(q_func(), QFileDialog::tr("Delete"), never evaluated: !(p & QFile::WriteUser)  | 0 | 
| 1951 |                                 QFileDialog::tr("'%1' is write protected.\nDo you want to delete it anyway?")  | 0 | 
| 1952 |                                 .arg(fileName),  | 0 | 
| 1953 |                                  QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No)) never evaluated: (QMessageBox::warning(q_func(), QFileDialog::tr("Delete"), QFileDialog::tr("'%1' is write protected.\nDo you want to delete it anyway?") .arg(fileName), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No)  | 0 | 
| 1954 |         return;  | 0 | 
| 1955 |     else if (QMessageBox::warning(q_func(), QFileDialog::tr("Delete"),  | 0 | 
| 1956 |                                   QFileDialog::tr("Are you sure you want to delete '%1'?")  | 0 | 
| 1957 |                                   .arg(fileName),  | 0 | 
| 1958 |                                   QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No) never evaluated: QMessageBox::warning(q_func(), QFileDialog::tr("Delete"), QFileDialog::tr("Are you sure you want to delete '%1'?") .arg(fileName), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::No  | 0 | 
| 1959 |         return;  | 0 | 
| 1960 |   | - | 
| 1961 |   | - | 
| 1962 |   | - | 
| 1963 |   | - | 
| 1964 |   | - | 
| 1965 |   | - | 
| 1966 |   | - | 
| 1967 |         if (isDir) {  | 0 | 
| 1968 |             if (!removeDirectory(filePath)) { never evaluated: !removeDirectory(filePath)  | 0 | 
| 1969 |   | - | 
| 1970 |             QMessageBox::warning(q, q->windowTitle(),  | - | 
| 1971 |                                 QFileDialog::tr("Could not delete directory."));  | - | 
| 1972 |   | - | 
| 1973 |             }  | 0 | 
| 1974 |         } else {  | 0 | 
| 1975 |             model->remove(index);  | - | 
| 1976 |         }  | 0 | 
| 1977 |     }  | - | 
| 1978 | }  | 0 | 
| 1979 |   | - | 
| 1980 | void QFileDialogPrivate::_q_autoCompleteFileName(const QString &text)  | - | 
| 1981 | {  | - | 
| 1982 |     if (text.startsWith(QLatin1String("//")) || text.startsWith(QLatin1Char('\\'))) { partially evaluated:  text.startsWith(QLatin1String("//"))| no Evaluation Count:0  | yes Evaluation Count:87  |  
  evaluated:  text.startsWith(QLatin1Char('\\'))| yes Evaluation Count:3  | yes Evaluation Count:84  |  
   | 0-87 | 
| 1983 |         qFileDialogUi->listView->selectionModel()->clearSelection();  | - | 
| 1984 |         return; executed:  return;Execution Count:3   | 3 | 
| 1985 |     }  | - | 
| 1986 |   | - | 
| 1987 |     QStringList multipleFiles = typedFiles();  | - | 
| 1988 |     if (multipleFiles.count() > 0) { partially evaluated:  multipleFiles.count() > 0| yes Evaluation Count:84  | no Evaluation Count:0  |  
   | 0-84 | 
| 1989 |         QModelIndexList oldFiles = qFileDialogUi->listView->selectionModel()->selectedRows();  | - | 
| 1990 |         QModelIndexList newFiles;  | - | 
| 1991 |         for (int i = 0; i < multipleFiles.count(); ++i) { evaluated:  i < multipleFiles.count()| yes Evaluation Count:100  | yes Evaluation Count:84  |  
   | 84-100 | 
| 1992 |             QModelIndex idx = model->index(multipleFiles.at(i));  | - | 
| 1993 |             if (oldFiles.contains(idx)) evaluated:  oldFiles.contains(idx)| yes Evaluation Count:27  | yes Evaluation Count:73  |  
   | 27-73 | 
| 1994 |                 oldFiles.removeAll(idx); executed:  oldFiles.removeAll(idx);Execution Count:27   | 27 | 
| 1995 |             else  | - | 
| 1996 |                 newFiles.append(idx); executed:  newFiles.append(idx);Execution Count:73   | 73 | 
| 1997 |         }  | - | 
| 1998 |         for (int i = 0; i < newFiles.count(); ++i) evaluated:  i < newFiles.count()| yes Evaluation Count:73  | yes Evaluation Count:84  |  
   | 73-84 | 
| 1999 |             select(newFiles.at(i)); executed:  select(newFiles.at(i));Execution Count:73   | 73 | 
| 2000 |         if (lineEdit()->hasFocus()) evaluated:  lineEdit()->hasFocus()| yes Evaluation Count:47  | yes Evaluation Count:37  |  
   | 37-47 | 
| 2001 |             for (int i = 0; i < oldFiles.count(); ++i) evaluated:  i < oldFiles.count()| yes Evaluation Count:2  | yes Evaluation Count:47  |  
   | 2-47 | 
| 2002 |                 qFileDialogUi->listView->selectionModel()->select(oldFiles.at(i),  | 2 | 
| 2003 |                     QItemSelectionModel::Toggle | QItemSelectionModel::Rows); executed:  qFileDialogUi->listView->selectionModel()->select(oldFiles.at(i), QItemSelectionModel::Toggle | QItemSelectionModel::Rows);Execution Count:2   | 2 | 
| 2004 |     } executed:  }Execution Count:84   | 84 | 
| 2005 | } executed:  }Execution Count:84   | 84 | 
| 2006 |   | - | 
| 2007 |   | - | 
| 2008 |   | - | 
| 2009 |   | - | 
| 2010 | void QFileDialogPrivate::_q_updateOkButton()  | - | 
| 2011 | {  | - | 
| 2012 |     QFileDialog * const q = q_func();  | - | 
| 2013 |     QPushButton *button = qFileDialogUi->buttonBox->button((q->acceptMode() == QFileDialog::AcceptOpen)  | - | 
| 2014 |                     ? QDialogButtonBox::Open : QDialogButtonBox::Save);  | - | 
| 2015 |     if (!button) evaluated:  !button| yes Evaluation Count:189  | yes Evaluation Count:577  |  
   | 189-577 | 
| 2016 |         return; executed:  return;Execution Count:189   | 189 | 
| 2017 |     const QFileDialog::FileMode fileMode = q->fileMode();  | - | 
| 2018 |   | - | 
| 2019 |     bool enableButton = true;  | - | 
| 2020 |     bool isOpenDirectory = false;  | - | 
| 2021 |   | - | 
| 2022 |     QStringList files = q->selectedFiles();  | - | 
| 2023 |     QString lineEditText = lineEdit()->text();  | - | 
| 2024 |   | - | 
| 2025 |     if (lineEditText.startsWith(QLatin1String("//")) || lineEditText.startsWith(QLatin1Char('\\'))) { partially evaluated:  lineEditText.startsWith(QLatin1String("//"))| no Evaluation Count:0  | yes Evaluation Count:577  |  
  evaluated:  lineEditText.startsWith(QLatin1Char('\\'))| yes Evaluation Count:3  | yes Evaluation Count:574  |  
   | 0-577 | 
| 2026 |         button->setEnabled(true);  | - | 
| 2027 |         updateOkButtonText();  | - | 
| 2028 |         return; executed:  return;Execution Count:3   | 3 | 
| 2029 |     }  | - | 
| 2030 |   | - | 
| 2031 |     if (files.isEmpty()) { evaluated:  files.isEmpty()| yes Evaluation Count:5  | yes Evaluation Count:569  |  
   | 5-569 | 
| 2032 |         enableButton = false;  | - | 
| 2033 |     } else if (lineEditText == QLatin1String("..")) { executed:  }Execution Count:5  evaluated:  lineEditText == QLatin1String("..")| yes Evaluation Count:5  | yes Evaluation Count:564  |  
   | 5-564 | 
| 2034 |         isOpenDirectory = true;  | - | 
| 2035 |     } else { executed:  }Execution Count:5   | 5 | 
| 2036 |         switch (fileMode) {  | - | 
| 2037 |         case QFileDialog::DirectoryOnly:  | - | 
| 2038 |         case QFileDialog::Directory: {  | - | 
| 2039 |             QString fn = files.first();  | - | 
| 2040 |             QModelIndex idx = model->index(fn);  | - | 
| 2041 |             if (!idx.isValid()) evaluated:  !idx.isValid()| yes Evaluation Count:3  | yes Evaluation Count:24  |  
   | 3-24 | 
| 2042 |                 idx = model->index(getEnvironmentVariable(fn)); executed:  idx = model->index(getEnvironmentVariable(fn));Execution Count:3   | 3 | 
| 2043 |             if (!idx.isValid() || !model->isDir(idx)) evaluated:  !idx.isValid()| yes Evaluation Count:3  | yes Evaluation Count:24  |  
  evaluated:  !model->isDir(idx)| yes Evaluation Count:2  | yes Evaluation Count:22  |  
   | 2-24 | 
| 2044 |                 enableButton = false; executed:  enableButton = false;Execution Count:5   | 5 | 
| 2045 |             break; executed:  break;Execution Count:27   | 27 | 
| 2046 |         }  | - | 
| 2047 |         case QFileDialog::AnyFile: {  | - | 
| 2048 |             QString fn = files.first();  | - | 
| 2049 |             QFileInfo info(fn);  | - | 
| 2050 |             QModelIndex idx = model->index(fn);  | - | 
| 2051 |             QString fileDir;  | - | 
| 2052 |             QString fileName;  | - | 
| 2053 |             if (info.isDir()) { evaluated:  info.isDir()| yes Evaluation Count:374  | yes Evaluation Count:139  |  
   | 139-374 | 
| 2054 |                 fileDir = info.canonicalFilePath();  | - | 
| 2055 |             } else { executed:  }Execution Count:374   | 374 | 
| 2056 |                 fileDir = fn.mid(0, fn.lastIndexOf(QLatin1Char('/')));  | - | 
| 2057 |                 fileName = fn.mid(fileDir.length() + 1);  | - | 
| 2058 |             } executed:  }Execution Count:139   | 139 | 
| 2059 |             if (lineEditText.contains(QLatin1String(".."))) { evaluated:  lineEditText.contains(QLatin1String(".."))| yes Evaluation Count:37  | yes Evaluation Count:476  |  
   | 37-476 | 
| 2060 |                 fileDir = info.canonicalFilePath();  | - | 
| 2061 |                 fileName = info.fileName();  | - | 
| 2062 |             } executed:  }Execution Count:37   | 37 | 
| 2063 |   | - | 
| 2064 |             if (fileDir == q->directory().canonicalPath() && fileName.isEmpty()) { evaluated:  fileDir == q->directory().canonicalPath()| yes Evaluation Count:369  | yes Evaluation Count:144  |  
  evaluated:  fileName.isEmpty()| yes Evaluation Count:317  | yes Evaluation Count:52  |  
   | 52-369 | 
| 2065 |                 enableButton = false;  | - | 
| 2066 |                 break; executed:  break;Execution Count:317   | 317 | 
| 2067 |             }  | - | 
| 2068 |             if (idx.isValid() && model->isDir(idx)) { evaluated:  idx.isValid()| yes Evaluation Count:38  | yes Evaluation Count:158  |  
  evaluated:  model->isDir(idx)| yes Evaluation Count:21  | yes Evaluation Count:17  |  
   | 17-158 | 
| 2069 |                 isOpenDirectory = true;  | - | 
| 2070 |                 enableButton = true;  | - | 
| 2071 |                 break; executed:  break;Execution Count:21   | 21 | 
| 2072 |             }  | - | 
| 2073 |             if (!idx.isValid()) { evaluated:  !idx.isValid()| yes Evaluation Count:158  | yes Evaluation Count:17  |  
   | 17-158 | 
| 2074 |                 int maxLength = maxNameLength(fileDir);  | - | 
| 2075 |                 enableButton = maxLength < 0 || fileName.length() <= maxLength; evaluated:  maxLength < 0| yes Evaluation Count:87  | yes Evaluation Count:71  |  
  evaluated:  fileName.length() <= maxLength| yes Evaluation Count:68  | yes Evaluation Count:3  |  
   | 3-87 | 
| 2076 |             } executed:  }Execution Count:158   | 158 | 
| 2077 |             break; executed:  break;Execution Count:175   | 175 | 
| 2078 |         }  | - | 
| 2079 |         case QFileDialog::ExistingFile:  | - | 
| 2080 |         case QFileDialog::ExistingFiles:  | - | 
| 2081 |             for (int i = 0; i < files.count(); ++i) { evaluated:  i < files.count()| yes Evaluation Count:40  | yes Evaluation Count:24  |  
   | 24-40 | 
| 2082 |                 QModelIndex idx = model->index(files.at(i));  | - | 
| 2083 |                 if (!idx.isValid()) partially evaluated:  !idx.isValid()| no Evaluation Count:0  | yes Evaluation Count:40  |  
   | 0-40 | 
| 2084 |                     idx = model->index(getEnvironmentVariable(files.at(i))); never executed: idx = model->index(getEnvironmentVariable(files.at(i)));  | 0 | 
| 2085 |                 if (!idx.isValid()) { partially evaluated:  !idx.isValid()| no Evaluation Count:0  | yes Evaluation Count:40  |  
   | 0-40 | 
| 2086 |                     enableButton = false;  | - | 
| 2087 |                     break;  | 0 | 
| 2088 |                 }  | - | 
| 2089 |                 if (idx.isValid() && model->isDir(idx)) { partially evaluated:  idx.isValid()| yes Evaluation Count:40  | no Evaluation Count:0  |  
  partially evaluated:  model->isDir(idx)| no Evaluation Count:0  | yes Evaluation Count:40  |  
   | 0-40 | 
| 2090 |                     isOpenDirectory = true;  | - | 
| 2091 |                     break;  | 0 | 
| 2092 |                 }  | - | 
| 2093 |             } executed:  }Execution Count:40   | 40 | 
| 2094 |             break; executed:  break;Execution Count:24   | 24 | 
| 2095 |         default:  | - | 
| 2096 |             break;  | 0 | 
| 2097 |         }  | - | 
| 2098 |     } executed:  }Execution Count:564   | 564 | 
| 2099 |   | - | 
| 2100 |     button->setEnabled(enableButton);  | - | 
| 2101 |     updateOkButtonText(isOpenDirectory);  | - | 
| 2102 | } executed:  }Execution Count:574   | 574 | 
| 2103 |   | - | 
| 2104 |   | - | 
| 2105 |   | - | 
| 2106 |   | - | 
| 2107 | void QFileDialogPrivate::_q_currentChanged(const QModelIndex &index)  | - | 
| 2108 | {  | - | 
| 2109 |     _q_updateOkButton();  | - | 
| 2110 |     q_func()->currentChanged(index.data(QFileSystemModel::FilePathRole).toString());  | - | 
| 2111 | } executed:  }Execution Count:24   | 24 | 
| 2112 |   | - | 
| 2113 |   | - | 
| 2114 |   | - | 
| 2115 |   | - | 
| 2116 |   | - | 
| 2117 |   | - | 
| 2118 |   | - | 
| 2119 | void QFileDialogPrivate::_q_enterDirectory(const QModelIndex &index)  | - | 
| 2120 | {  | - | 
| 2121 |     QFileDialog * const q = q_func();  | - | 
| 2122 |   | - | 
| 2123 |     QModelIndex sourceIndex = index.model() == proxyModel ? mapToSource(index) : index; partially evaluated:  index.model() == proxyModel| no Evaluation Count:0  | yes Evaluation Count:5  |  
   | 0-5 | 
| 2124 |     QString path = sourceIndex.data(QFileSystemModel::FilePathRole).toString();  | - | 
| 2125 |     if (path.isEmpty() || model->isDir(sourceIndex)) { partially evaluated:  path.isEmpty()| no Evaluation Count:0  | yes Evaluation Count:5  |  
  partially evaluated:  model->isDir(sourceIndex)| yes Evaluation Count:5  | no Evaluation Count:0  |  
   | 0-5 | 
| 2126 |         const QFileDialog::FileMode fileMode = q->fileMode();  | - | 
| 2127 |         q->setDirectory(path);  | - | 
| 2128 |         q->directoryEntered(path);  | - | 
| 2129 |         if (fileMode == QFileDialog::Directory evaluated:  fileMode == QFileDialog::Directory| yes Evaluation Count:2  | yes Evaluation Count:3  |  
   | 2-3 | 
| 2130 |                 || fileMode == QFileDialog::DirectoryOnly) { partially evaluated:  fileMode == QFileDialog::DirectoryOnly| no Evaluation Count:0  | yes Evaluation Count:3  |  
   | 0-3 | 
| 2131 |   | - | 
| 2132 |             lineEdit()->setText(QString());  | - | 
| 2133 |             lineEdit()->clear();  | - | 
| 2134 |         } executed:  }Execution Count:2   | 2 | 
| 2135 |     } else { executed:  }Execution Count:5   | 5 | 
| 2136 |   | - | 
| 2137 |         if (!q->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick) never evaluated: !q->style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick)  | 0 | 
| 2138 |             || q->fileMode() != QFileDialog::ExistingFiles || !(QGuiApplication::keyboardModifiers() & Qt::CTRL)) { never evaluated: q->fileMode() != QFileDialog::ExistingFiles never evaluated: !(QGuiApplication::keyboardModifiers() & Qt::CTRL)  | 0 | 
| 2139 |             q->accept();  | - | 
| 2140 |         }  | 0 | 
| 2141 |     }  | 0 | 
| 2142 | }  | - | 
| 2143 |   | - | 
| 2144 |   | - | 
| 2145 |   | - | 
| 2146 |   | - | 
| 2147 |   | - | 
| 2148 |   | - | 
| 2149 |   | - | 
| 2150 | void QFileDialogPrivate::_q_goToDirectory(const QString &path)  | - | 
| 2151 | {  | - | 
| 2152 |   | - | 
| 2153 |     QFileDialog * const q = q_func();  | - | 
| 2154 |   | - | 
| 2155 |     QModelIndex index = qFileDialogUi->lookInCombo->model()->index(qFileDialogUi->lookInCombo->currentIndex(),  | - | 
| 2156 |                                                     qFileDialogUi->lookInCombo->modelColumn(),  | - | 
| 2157 |                                                     qFileDialogUi->lookInCombo->rootModelIndex());  | - | 
| 2158 |     QString path2 = path;  | - | 
| 2159 |     if (!index.isValid()) never evaluated: !index.isValid()  | 0 | 
| 2160 |         index = mapFromSource(model->index(getEnvironmentVariable(path))); never executed: index = mapFromSource(model->index(getEnvironmentVariable(path)));  | 0 | 
| 2161 |     else {  | - | 
| 2162 |         path2 = index.data((Qt::UserRole + 1)).toUrl().toLocalFile();  | - | 
| 2163 |         index = mapFromSource(model->index(path2));  | - | 
| 2164 |     }  | 0 | 
| 2165 |     QDir dir(path2);  | - | 
| 2166 |     if (!dir.exists()) never evaluated: !dir.exists()  | 0 | 
| 2167 |         dir = getEnvironmentVariable(path2); never executed: dir = getEnvironmentVariable(path2);  | 0 | 
| 2168 |   | - | 
| 2169 |     if (dir.exists() || path2.isEmpty() || path2 == model->myComputer().toString()) { never evaluated: dir.exists() never evaluated: path2.isEmpty() never evaluated: path2 == model->myComputer().toString()  | 0 | 
| 2170 |         _q_enterDirectory(index);  | - | 
| 2171 |   | - | 
| 2172 |     } else {  | 0 | 
| 2173 |         QString message = QFileDialog::tr("%1\nDirectory not found.\nPlease verify the "  | - | 
| 2174 |                                           "correct directory name was given.");  | - | 
| 2175 |         QMessageBox::warning(q, q->windowTitle(), message.arg(path2));  | - | 
| 2176 |   | - | 
| 2177 |     }  | 0 | 
| 2178 | }  | - | 
| 2179 |   | - | 
| 2180 |   | - | 
| 2181 |   | - | 
| 2182 |   | - | 
| 2183 |   | - | 
| 2184 |   | - | 
| 2185 |   | - | 
| 2186 | void QFileDialogPrivate::_q_useNameFilter(int index)  | - | 
| 2187 | {  | - | 
| 2188 |     QStringList nameFilters = options->nameFilters();  | - | 
| 2189 |     if (index == nameFilters.size()) { evaluated:  index == nameFilters.size()| yes Evaluation Count:1  | yes Evaluation Count:224  |  
   | 1-224 | 
| 2190 |         QAbstractItemModel *comboModel = qFileDialogUi->fileTypeCombo->model();  | - | 
| 2191 |         nameFilters.append(comboModel->index(comboModel->rowCount() - 1, 0).data().toString());  | - | 
| 2192 |         options->setNameFilters(nameFilters);  | - | 
| 2193 |     } executed:  }Execution Count:1   | 1 | 
| 2194 |   | - | 
| 2195 |     QString nameFilter = nameFilters.at(index);  | - | 
| 2196 |     QStringList newNameFilters = QPlatformFileDialogHelper::cleanFilterList(nameFilter);  | - | 
| 2197 |     if (q_func()->acceptMode() == QFileDialog::AcceptSave) { evaluated:  q_func()->acceptMode() == QFileDialog::AcceptSave| yes Evaluation Count:8  | yes Evaluation Count:217  |  
   | 8-217 | 
| 2198 |         QString newNameFilterExtension;  | - | 
| 2199 |         if (newNameFilters.count() > 0) partially evaluated:  newNameFilters.count() > 0| yes Evaluation Count:8  | no Evaluation Count:0  |  
   | 0-8 | 
| 2200 |             newNameFilterExtension = QFileInfo(newNameFilters.at(0)).suffix(); executed:  newNameFilterExtension = QFileInfo(newNameFilters.at(0)).suffix();Execution Count:8   | 8 | 
| 2201 |   | - | 
| 2202 |         QString fileName = lineEdit()->text();  | - | 
| 2203 |         const QString fileNameExtension = QFileInfo(fileName).suffix();  | - | 
| 2204 |         if (!fileNameExtension.isEmpty() && !newNameFilterExtension.isEmpty()) { partially evaluated:  !fileNameExtension.isEmpty()| no Evaluation Count:0  | yes Evaluation Count:8  |  
  never evaluated: !newNameFilterExtension.isEmpty()  | 0-8 | 
| 2205 |             const int fileNameExtensionLength = fileNameExtension.count();  | - | 
| 2206 |             fileName.replace(fileName.count() - fileNameExtensionLength,  | - | 
| 2207 |                              fileNameExtensionLength, newNameFilterExtension);  | - | 
| 2208 |             qFileDialogUi->listView->clearSelection();  | - | 
| 2209 |             lineEdit()->setText(fileName);  | - | 
| 2210 |         }  | 0 | 
| 2211 |     } executed:  }Execution Count:8   | 8 | 
| 2212 |   | - | 
| 2213 |     model->setNameFilters(newNameFilters);  | - | 
| 2214 | } executed:  }Execution Count:225   | 225 | 
| 2215 |   | - | 
| 2216 |   | - | 
| 2217 |   | - | 
| 2218 |   | - | 
| 2219 |   | - | 
| 2220 |   | - | 
| 2221 |   | - | 
| 2222 | void QFileDialogPrivate::_q_selectionChanged()  | - | 
| 2223 | {  | - | 
| 2224 |     const QFileDialog::FileMode fileMode = q_func()->fileMode();  | - | 
| 2225 |     QModelIndexList indexes = qFileDialogUi->listView->selectionModel()->selectedRows();  | - | 
| 2226 |     bool stripDirs = (fileMode != QFileDialog::DirectoryOnly && fileMode != QFileDialog::Directory); evaluated:  fileMode != QFileDialog::DirectoryOnly| yes Evaluation Count:53  | yes Evaluation Count:1  |  
  evaluated:  fileMode != QFileDialog::Directory| yes Evaluation Count:48  | yes Evaluation Count:5  |  
   | 1-53 | 
| 2227 |   | - | 
| 2228 |     QStringList allFiles;  | - | 
| 2229 |     for (int i = 0; i < indexes.count(); ++i) { evaluated:  i < indexes.count()| yes Evaluation Count:58  | yes Evaluation Count:54  |  
   | 54-58 | 
| 2230 |         if (stripDirs && model->isDir(mapToSource(indexes.at(i)))) evaluated:  stripDirs| yes Evaluation Count:53  | yes Evaluation Count:5  |  
  evaluated:  model->isDir(mapToSource(indexes.at(i)))| yes Evaluation Count:15  | yes Evaluation Count:38  |  
   | 5-53 | 
| 2231 |             continue; executed:  continue;Execution Count:15   | 15 | 
| 2232 |         allFiles.append(indexes.at(i).data().toString());  | - | 
| 2233 |     } executed:  }Execution Count:43   | 43 | 
| 2234 |     if (allFiles.count() > 1) evaluated:  allFiles.count() > 1| yes Evaluation Count:7  | yes Evaluation Count:47  |  
   | 7-47 | 
| 2235 |         for (int i = 0; i < allFiles.count(); ++i) { evaluated:  i < allFiles.count()| yes Evaluation Count:23  | yes Evaluation Count:7  |  
   | 7-23 | 
| 2236 |             allFiles.replace(i, QString(QLatin1Char('"') + allFiles.at(i) + QLatin1Char('"')));  | - | 
| 2237 |     } executed:  }Execution Count:23   | 23 | 
| 2238 |   | - | 
| 2239 |     QString finalFiles = allFiles.join(QLatin1Char(' '));  | - | 
| 2240 |     if (!finalFiles.isEmpty() && !lineEdit()->hasFocus() && lineEdit()->isVisible()) evaluated:  !finalFiles.isEmpty()| yes Evaluation Count:27  | yes Evaluation Count:27  |  
  evaluated:  !lineEdit()->hasFocus()| yes Evaluation Count:20  | yes Evaluation Count:7  |  
  evaluated:  lineEdit()->isVisible()| yes Evaluation Count:16  | yes Evaluation Count:4  |  
   | 4-27 | 
| 2241 |         lineEdit()->setText(finalFiles); executed:  lineEdit()->setText(finalFiles);Execution Count:16   | 16 | 
| 2242 |     else  | - | 
| 2243 |         _q_updateOkButton(); executed:  _q_updateOkButton();Execution Count:38   | 38 | 
| 2244 | }  | - | 
| 2245 |   | - | 
| 2246 |   | - | 
| 2247 |   | - | 
| 2248 |   | - | 
| 2249 |   | - | 
| 2250 |   | - | 
| 2251 | void QFileDialogPrivate::_q_showHidden()  | - | 
| 2252 | {  | - | 
| 2253 |     QFileDialog * const q = q_func();  | - | 
| 2254 |     QDir::Filters dirFilters = q->filter();  | - | 
| 2255 |     if (showHiddenAction->isChecked()) never evaluated: showHiddenAction->isChecked()  | 0 | 
| 2256 |         dirFilters |= QDir::Hidden; never executed: dirFilters |= QDir::Hidden;  | 0 | 
| 2257 |     else  | - | 
| 2258 |         dirFilters &= ~QDir::Hidden; never executed: dirFilters &= ~QDir::Hidden;  | 0 | 
| 2259 |     q->setFilter(dirFilters);  | - | 
| 2260 | }  | 0 | 
| 2261 |   | - | 
| 2262 |   | - | 
| 2263 |   | - | 
| 2264 |   | - | 
| 2265 |   | - | 
| 2266 |   | - | 
| 2267 |   | - | 
| 2268 | void QFileDialogPrivate::_q_rowsInserted(const QModelIndex &parent)  | - | 
| 2269 | {  | - | 
| 2270 |     if (!qFileDialogUi->treeView partially evaluated:  !qFileDialogUi->treeView| no Evaluation Count:0  | yes Evaluation Count:2263  |  
   | 0-2263 | 
| 2271 |         || parent != qFileDialogUi->treeView->rootIndex() evaluated:  parent != qFileDialogUi->treeView->rootIndex()| yes Evaluation Count:2021  | yes Evaluation Count:242  |  
   | 242-2021 | 
| 2272 |         || !qFileDialogUi->treeView->selectionModel() evaluated:  !qFileDialogUi->treeView->selectionModel()| yes Evaluation Count:189  | yes Evaluation Count:53  |  
   | 53-189 | 
| 2273 |         || qFileDialogUi->treeView->selectionModel()->hasSelection() evaluated:  qFileDialogUi->treeView->selectionModel()->hasSelection()| yes Evaluation Count:5  | yes Evaluation Count:48  |  
   | 5-48 | 
| 2274 |         || qFileDialogUi->treeView->model()->rowCount(parent) == 0) partially evaluated:  qFileDialogUi->treeView->model()->rowCount(parent) == 0| no Evaluation Count:0  | yes Evaluation Count:48  |  
   | 0-48 | 
| 2275 |         return; executed:  return;Execution Count:2215   | 2215 | 
| 2276 | } executed:  }Execution Count:48   | 48 | 
| 2277 |   | - | 
| 2278 | void QFileDialogPrivate::_q_fileRenamed(const QString &path, const QString oldName, const QString newName)  | - | 
| 2279 | {  | - | 
| 2280 |     const QFileDialog::FileMode fileMode = q_func()->fileMode();  | - | 
| 2281 |     if (fileMode == QFileDialog::Directory || fileMode == QFileDialog::DirectoryOnly) { never evaluated: fileMode == QFileDialog::Directory never evaluated: fileMode == QFileDialog::DirectoryOnly  | 0 | 
| 2282 |         if (path == rootPath() && lineEdit()->text() == oldName) never evaluated: path == rootPath() never evaluated: lineEdit()->text() == oldName  | 0 | 
| 2283 |             lineEdit()->setText(newName); never executed: lineEdit()->setText(newName);  | 0 | 
| 2284 |     }  | 0 | 
| 2285 | }  | 0 | 
| 2286 |   | - | 
| 2287 | void QFileDialogPrivate::_q_nativeEnterDirectory(const QString &directory)  | - | 
| 2288 | {  | - | 
| 2289 |     if (!directory.isEmpty()) never evaluated: !directory.isEmpty()  | 0 | 
| 2290 |         *lastVisitedDir() = directory; never executed: *lastVisitedDir() = directory;  | 0 | 
| 2291 | }  | 0 | 
| 2292 | bool QFileDialogPrivate::itemViewKeyboardEvent(QKeyEvent *event) {  | - | 
| 2293 |   | - | 
| 2294 |     QFileDialog * const q = q_func();  | - | 
| 2295 |     switch (event->key()) {  | - | 
| 2296 |     case Qt::Key_Backspace:  | - | 
| 2297 |         _q_navigateToParent();  | - | 
| 2298 |         return true; executed:  return true;Execution Count:1   | 1 | 
| 2299 |     case Qt::Key_Back:  | - | 
| 2300 |   | - | 
| 2301 |   | - | 
| 2302 |   | - | 
| 2303 |   | - | 
| 2304 |     case Qt::Key_Left:  | - | 
| 2305 |         if (event->key() == Qt::Key_Back || event->modifiers() == Qt::AltModifier) { never evaluated: event->key() == Qt::Key_Back never evaluated: event->modifiers() == Qt::AltModifier  | 0 | 
| 2306 |             _q_navigateBackward();  | - | 
| 2307 |             return true; never executed: return true;  | 0 | 
| 2308 |         }  | - | 
| 2309 |         break;  | 0 | 
| 2310 |     case Qt::Key_Escape:  | - | 
| 2311 |         q->hide();  | - | 
| 2312 |         return true; executed:  return true;Execution Count:1   | 1 | 
| 2313 |     default:  | - | 
| 2314 |         break; executed:  break;Execution Count:12   | 12 | 
| 2315 |     }  | - | 
| 2316 |     return false; executed:  return false;Execution Count:12   | 12 | 
| 2317 | }  | - | 
| 2318 |   | - | 
| 2319 | QString QFileDialogPrivate::getEnvironmentVariable(const QString &string)  | - | 
| 2320 | {  | - | 
| 2321 |   | - | 
| 2322 |     if (string.size() > 1 && string.startsWith(QLatin1Char('$'))) { partially evaluated:  string.size() > 1| yes Evaluation Count:3  | no Evaluation Count:0  |  
  partially evaluated:  string.startsWith(QLatin1Char('$'))| no Evaluation Count:0  | yes Evaluation Count:3  |  
   | 0-3 | 
| 2323 |         return QString::fromLocal8Bit(getenv(string.mid(1).toLatin1().constData())); never executed: return QString::fromLocal8Bit(getenv(string.mid(1).toLatin1().constData()));  | 0 | 
| 2324 |     }  | - | 
| 2325 |   | - | 
| 2326 |   | - | 
| 2327 |   | - | 
| 2328 |   | - | 
| 2329 |   | - | 
| 2330 |     return string; executed:  return string;Execution Count:3   | 3 | 
| 2331 | }  | - | 
| 2332 |   | - | 
| 2333 | void QFileDialogComboBox::setFileDialogPrivate(QFileDialogPrivate *d_pointer) {  | - | 
| 2334 |     d_ptr = d_pointer;  | - | 
| 2335 |     urlModel = new QUrlModel(this);  | - | 
| 2336 |     urlModel->showFullPath = true;  | - | 
| 2337 |     urlModel->setFileSystemModel(d_ptr->model);  | - | 
| 2338 |     setModel(urlModel);  | - | 
| 2339 | } executed:  }Execution Count:189   | 189 | 
| 2340 |   | - | 
| 2341 | void QFileDialogComboBox::showPopup()  | - | 
| 2342 | {  | - | 
| 2343 |     if (model()->rowCount() > 1) never evaluated: model()->rowCount() > 1  | 0 | 
| 2344 |         QComboBox::showPopup(); never executed: QComboBox::showPopup();  | 0 | 
| 2345 |   | - | 
| 2346 |     urlModel->setUrls(QList<QUrl>());  | - | 
| 2347 |     QList<QUrl> list;  | - | 
| 2348 |     QModelIndex idx = d_ptr->model->index(d_ptr->rootPath());  | - | 
| 2349 |     while (idx.isValid()) { never evaluated: idx.isValid()  | 0 | 
| 2350 |         QUrl url = QUrl::fromLocalFile(idx.data(QFileSystemModel::FilePathRole).toString());  | - | 
| 2351 |         if (url.isValid()) never evaluated: url.isValid()  | 0 | 
| 2352 |             list.append(url); never executed: list.append(url);  | 0 | 
| 2353 |         idx = idx.parent();  | - | 
| 2354 |     }  | 0 | 
| 2355 |   | - | 
| 2356 |     list.append(QUrl::fromLocalFile(QLatin1String("")));  | - | 
| 2357 |     urlModel->addUrls(list, 0);  | - | 
| 2358 |     idx = model()->index(model()->rowCount() - 1, 0);  | - | 
| 2359 |   | - | 
| 2360 |   | - | 
| 2361 |     QList<QUrl> urls;  | - | 
| 2362 |     for (int i = 0; i < m_history.count(); ++i) { never evaluated: i < m_history.count()  | 0 | 
| 2363 |         QUrl path = QUrl::fromLocalFile(m_history.at(i));  | - | 
| 2364 |         if (!urls.contains(path)) never evaluated: !urls.contains(path)  | 0 | 
| 2365 |             urls.prepend(path); never executed: urls.prepend(path);  | 0 | 
| 2366 |     }  | 0 | 
| 2367 |     if (urls.count() > 0) { never evaluated: urls.count() > 0  | 0 | 
| 2368 |         model()->insertRow(model()->rowCount());  | - | 
| 2369 |         idx = model()->index(model()->rowCount()-1, 0);  | - | 
| 2370 |   | - | 
| 2371 |         model()->setData(idx, QFileDialog::tr("Recent Places"));  | - | 
| 2372 |         QStandardItemModel *m = qobject_cast<QStandardItemModel*>(model());  | - | 
| 2373 |         if (m) {  | 0 | 
| 2374 |             Qt::ItemFlags flags = m->flags(idx);  | - | 
| 2375 |             flags &= ~Qt::ItemIsEnabled;  | - | 
| 2376 |             m->item(idx.row(), idx.column())->setFlags(flags);  | - | 
| 2377 |         }  | 0 | 
| 2378 |         urlModel->addUrls(urls, -1, false);  | - | 
| 2379 |     }  | 0 | 
| 2380 |     setCurrentIndex(0);  | - | 
| 2381 |   | - | 
| 2382 |     QComboBox::showPopup();  | - | 
| 2383 | }  | 0 | 
| 2384 |   | - | 
| 2385 |   | - | 
| 2386 | void QFileDialogComboBox::paintEvent(QPaintEvent *)  | - | 
| 2387 | {  | - | 
| 2388 |     QStylePainter painter(this);  | - | 
| 2389 |     painter.setPen(palette().color(QPalette::Text));  | - | 
| 2390 |   | - | 
| 2391 |   | - | 
| 2392 |     QStyleOptionComboBox opt;  | - | 
| 2393 |     initStyleOption(&opt);  | - | 
| 2394 |   | - | 
| 2395 |     QRect editRect = style()->subControlRect(QStyle::CC_ComboBox, &opt,  | - | 
| 2396 |                                                 QStyle::SC_ComboBoxEditField, this);  | - | 
| 2397 |     int size = editRect.width() - opt.iconSize.width() - 4;  | - | 
| 2398 |     opt.currentText = opt.fontMetrics.elidedText(opt.currentText, Qt::ElideMiddle, size);  | - | 
| 2399 |     painter.drawComplexControl(QStyle::CC_ComboBox, opt);  | - | 
| 2400 |   | - | 
| 2401 |   | - | 
| 2402 |     painter.drawControl(QStyle::CE_ComboBoxLabel, opt);  | - | 
| 2403 | } executed:  }Execution Count:58   | 58 | 
| 2404 |   | - | 
| 2405 | QFileDialogListView::QFileDialogListView(QWidget *parent) : QListView(parent)  | - | 
| 2406 | {  | - | 
| 2407 | } executed:  }Execution Count:189   | 189 | 
| 2408 |   | - | 
| 2409 | void QFileDialogListView::setFileDialogPrivate(QFileDialogPrivate *d_pointer)  | - | 
| 2410 | {  | - | 
| 2411 |     d_ptr = d_pointer;  | - | 
| 2412 |     setSelectionBehavior(QAbstractItemView::SelectRows);  | - | 
| 2413 |     setWrapping(true);  | - | 
| 2414 |     setResizeMode(QListView::Adjust);  | - | 
| 2415 |     setEditTriggers(QAbstractItemView::EditKeyPressed);  | - | 
| 2416 |     setContextMenuPolicy(Qt::CustomContextMenu);  | - | 
| 2417 |   | - | 
| 2418 |     setDragDropMode(QAbstractItemView::InternalMove);  | - | 
| 2419 |   | - | 
| 2420 | } executed:  }Execution Count:189   | 189 | 
| 2421 |   | - | 
| 2422 | QSize QFileDialogListView::sizeHint() const  | - | 
| 2423 | {  | - | 
| 2424 |     int height = qMax(10, sizeHintForRow(0));  | - | 
| 2425 |     return QSize(QListView::sizeHint().width() * 2, height * 30); executed:  return QSize(QListView::sizeHint().width() * 2, height * 30);Execution Count:190   | 190 | 
| 2426 | }  | - | 
| 2427 |   | - | 
| 2428 | void QFileDialogListView::keyPressEvent(QKeyEvent *e)  | - | 
| 2429 | {  | - | 
| 2430 |   | - | 
| 2431 |   | - | 
| 2432 |   | - | 
| 2433 |   | - | 
| 2434 |   | - | 
| 2435 |   | - | 
| 2436 |   | - | 
| 2437 |     if (!d_ptr->itemViewKeyboardEvent(e)) evaluated:  !d_ptr->itemViewKeyboardEvent(e)| yes Evaluation Count:12  | yes Evaluation Count:2  |  
   | 2-12 | 
| 2438 |         QListView::keyPressEvent(e); executed:  QListView::keyPressEvent(e);Execution Count:12   | 12 | 
| 2439 |     e->accept();  | - | 
| 2440 | } executed:  }Execution Count:14   | 14 | 
| 2441 |   | - | 
| 2442 | QFileDialogTreeView::QFileDialogTreeView(QWidget *parent) : QTreeView(parent)  | - | 
| 2443 | {  | - | 
| 2444 | } executed:  }Execution Count:189   | 189 | 
| 2445 |   | - | 
| 2446 | void QFileDialogTreeView::setFileDialogPrivate(QFileDialogPrivate *d_pointer)  | - | 
| 2447 | {  | - | 
| 2448 |     d_ptr = d_pointer;  | - | 
| 2449 |     setSelectionBehavior(QAbstractItemView::SelectRows);  | - | 
| 2450 |     setRootIsDecorated(false);  | - | 
| 2451 |     setItemsExpandable(false);  | - | 
| 2452 |     setSortingEnabled(true);  | - | 
| 2453 |     header()->setSortIndicator(0, Qt::AscendingOrder);  | - | 
| 2454 |     header()->setStretchLastSection(false);  | - | 
| 2455 |     setTextElideMode(Qt::ElideMiddle);  | - | 
| 2456 |     setEditTriggers(QAbstractItemView::EditKeyPressed);  | - | 
| 2457 |     setContextMenuPolicy(Qt::CustomContextMenu);  | - | 
| 2458 |   | - | 
| 2459 |     setDragDropMode(QAbstractItemView::InternalMove);  | - | 
| 2460 |   | - | 
| 2461 | } executed:  }Execution Count:189   | 189 | 
| 2462 |   | - | 
| 2463 | void QFileDialogTreeView::keyPressEvent(QKeyEvent *e)  | - | 
| 2464 | {  | - | 
| 2465 |   | - | 
| 2466 |   | - | 
| 2467 |   | - | 
| 2468 |   | - | 
| 2469 |   | - | 
| 2470 |   | - | 
| 2471 |   | - | 
| 2472 |     if (!d_ptr->itemViewKeyboardEvent(e)) never evaluated: !d_ptr->itemViewKeyboardEvent(e)  | 0 | 
| 2473 |         QTreeView::keyPressEvent(e); never executed: QTreeView::keyPressEvent(e);  | 0 | 
| 2474 |     e->accept();  | - | 
| 2475 | }  | 0 | 
| 2476 |   | - | 
| 2477 | QSize QFileDialogTreeView::sizeHint() const  | - | 
| 2478 | {  | - | 
| 2479 |     int height = qMax(10, sizeHintForRow(0));  | - | 
| 2480 |     QSize sizeHint = header()->sizeHint();  | - | 
| 2481 |     return QSize(sizeHint.width() * 4, height * 30); executed:  return QSize(sizeHint.width() * 4, height * 30);Execution Count:193   | 193 | 
| 2482 | }  | - | 
| 2483 |   | - | 
| 2484 |   | - | 
| 2485 |   | - | 
| 2486 |   | - | 
| 2487 |   | - | 
| 2488 | void QFileDialogLineEdit::keyPressEvent(QKeyEvent *e)  | - | 
| 2489 | {  | - | 
| 2490 |   | - | 
| 2491 |   | - | 
| 2492 |   | - | 
| 2493 |   | - | 
| 2494 |   | - | 
| 2495 |   | - | 
| 2496 |   | - | 
| 2497 |     int key = e->key();  | - | 
| 2498 |     QLineEdit::keyPressEvent(e);  | - | 
| 2499 |     if (key != Qt::Key_Escape) evaluated:  key != Qt::Key_Escape| yes Evaluation Count:16  | yes Evaluation Count:1  |  
   | 1-16 | 
| 2500 |         e->accept(); executed:  e->accept();Execution Count:16   | 16 | 
| 2501 |     if (hideOnEsc && (key == Qt::Key_Escape || key == Qt::Key_Return || key == Qt::Key_Enter)) { partially evaluated:  hideOnEsc| no Evaluation Count:0  | yes Evaluation Count:17  |  
  never evaluated: key == Qt::Key_Escape never evaluated: key == Qt::Key_Return never evaluated: key == Qt::Key_Enter  | 0-17 | 
| 2502 |         e->accept();  | - | 
| 2503 |         hide();  | - | 
| 2504 |         d_ptr->currentView()->setFocus(Qt::ShortcutFocusReason);  | - | 
| 2505 |     }  | 0 | 
| 2506 | } executed:  }Execution Count:17   | 17 | 
| 2507 |   | - | 
| 2508 |   | - | 
| 2509 |   | - | 
| 2510 | QString QFSCompleter::pathFromIndex(const QModelIndex &index) const  | - | 
| 2511 | {  | - | 
| 2512 |     const QFileSystemModel *dirModel;  | - | 
| 2513 |     if (proxyModel) partially evaluated:  proxyModel| no Evaluation Count:0  | yes Evaluation Count:1  |  
   | 0-1 | 
| 2514 |         dirModel = qobject_cast<const QFileSystemModel *>(proxyModel->sourceModel()); never executed: dirModel = qobject_cast<const QFileSystemModel *>(proxyModel->sourceModel());  | 0 | 
| 2515 |     else  | - | 
| 2516 |         dirModel = sourceModel; executed:  dirModel = sourceModel;Execution Count:1   | 1 | 
| 2517 |     QString currentLocation = dirModel->rootPath();  | - | 
| 2518 |     QString path = index.data(QFileSystemModel::FilePathRole).toString();  | - | 
| 2519 |     if (!currentLocation.isEmpty() && path.startsWith(currentLocation)) { partially evaluated:  !currentLocation.isEmpty()| yes Evaluation Count:1  | no Evaluation Count:0  |  
  partially evaluated:  path.startsWith(currentLocation)| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 2520 |   | - | 
| 2521 |         if (currentLocation == QDir::separator()) partially evaluated:  currentLocation == QDir::separator()| yes Evaluation Count:1  | no Evaluation Count:0  |  
   | 0-1 | 
| 2522 |             return path.mid(currentLocation.length()); executed:  return path.mid(currentLocation.length());Execution Count:1   | 1 | 
| 2523 |   | - | 
| 2524 |         if (currentLocation.endsWith(QLatin1Char('/'))) never evaluated: currentLocation.endsWith(QLatin1Char('/'))  | 0 | 
| 2525 |             return path.mid(currentLocation.length()); never executed: return path.mid(currentLocation.length());  | 0 | 
| 2526 |         else  | - | 
| 2527 |             return path.mid(currentLocation.length()+1); never executed: return path.mid(currentLocation.length()+1);  | 0 | 
| 2528 |     }  | - | 
| 2529 |     return index.data(QFileSystemModel::FilePathRole).toString(); never executed: return index.data(QFileSystemModel::FilePathRole).toString();  | 0 | 
| 2530 | }  | - | 
| 2531 |   | - | 
| 2532 | QStringList QFSCompleter::splitPath(const QString &path) const  | - | 
| 2533 | {  | - | 
| 2534 |     if (path.isEmpty()) partially evaluated:  path.isEmpty()| no Evaluation Count:0  | yes Evaluation Count:368  |  
   | 0-368 | 
| 2535 |         return QStringList(completionPrefix()); never executed: return QStringList(completionPrefix());  | 0 | 
| 2536 |   | - | 
| 2537 |     QString pathCopy = QDir::toNativeSeparators(path);  | - | 
| 2538 |     QString sep = QDir::separator();  | - | 
| 2539 |     bool expanded;  | - | 
| 2540 |     pathCopy = qt_tildeExpansion(pathCopy, &expanded);  | - | 
| 2541 |     if (expanded) { partially evaluated:  expanded| no Evaluation Count:0  | yes Evaluation Count:368  |  
   | 0-368 | 
| 2542 |         QFileSystemModel *dirModel;  | - | 
| 2543 |         if (proxyModel) never evaluated: proxyModel  | 0 | 
| 2544 |             dirModel = qobject_cast<QFileSystemModel *>(proxyModel->sourceModel()); never executed: dirModel = qobject_cast<QFileSystemModel *>(proxyModel->sourceModel());  | 0 | 
| 2545 |         else  | - | 
| 2546 |             dirModel = sourceModel; never executed: dirModel = sourceModel;  | 0 | 
| 2547 |         dirModel->fetchMore(dirModel->index(pathCopy));  | - | 
| 2548 |     }  | 0 | 
| 2549 |   | - | 
| 2550 |   | - | 
| 2551 |     QRegExp re(QLatin1Char('[') + QRegExp::escape(sep) + QLatin1Char(']'));  | - | 
| 2552 |     QStringList parts = pathCopy.split(re);  | - | 
| 2553 |     if (pathCopy[0] == sep[0]) evaluated:  pathCopy[0] == sep[0]| yes Evaluation Count:303  | yes Evaluation Count:65  |  
   | 65-303 | 
| 2554 |         parts[0] = sep[0]; executed:  parts[0] = sep[0];Execution Count:303   | 303 | 
| 2555 |   | - | 
| 2556 |   | - | 
| 2557 |   | - | 
| 2558 |   | - | 
| 2559 |   | - | 
| 2560 |     bool startsFromRoot = pathCopy[0] == sep[0];  | - | 
| 2561 |   | - | 
| 2562 |     if (parts.count() == 1 || (parts.count() > 1 && !startsFromRoot)) { evaluated:  parts.count() == 1| yes Evaluation Count:26  | yes Evaluation Count:342  |  
  partially evaluated:  parts.count() > 1| yes Evaluation Count:342  | no Evaluation Count:0  |  
  evaluated:  !startsFromRoot| yes Evaluation Count:39  | yes Evaluation Count:303  |  
   | 0-342 | 
| 2563 |         const QFileSystemModel *dirModel;  | - | 
| 2564 |         if (proxyModel) partially evaluated:  proxyModel| no Evaluation Count:0  | yes Evaluation Count:65  |  
   | 0-65 | 
| 2565 |             dirModel = qobject_cast<const QFileSystemModel *>(proxyModel->sourceModel()); never executed: dirModel = qobject_cast<const QFileSystemModel *>(proxyModel->sourceModel());  | 0 | 
| 2566 |         else  | - | 
| 2567 |             dirModel = sourceModel; executed:  dirModel = sourceModel;Execution Count:65   | 65 | 
| 2568 |         QString currentLocation = QDir::toNativeSeparators(dirModel->rootPath());  | - | 
| 2569 |   | - | 
| 2570 |   | - | 
| 2571 |   | - | 
| 2572 |   | - | 
| 2573 |         if (currentLocation.contains(sep) && path != currentLocation) { partially evaluated:  currentLocation.contains(sep)| yes Evaluation Count:65  | no Evaluation Count:0  |  
  partially evaluated:  path != currentLocation| yes Evaluation Count:65  | no Evaluation Count:0  |  
   | 0-65 | 
| 2574 |             QStringList currentLocationList = splitPath(currentLocation);  | - | 
| 2575 |             while (!currentLocationList.isEmpty() evaluated:  !currentLocationList.isEmpty()| yes Evaluation Count:108  | yes Evaluation Count:34  |  
   | 34-108 | 
| 2576 |                    && parts.count() > 0 evaluated:  parts.count() > 0| yes Evaluation Count:104  | yes Evaluation Count:4  |  
   | 4-104 | 
| 2577 |                    && parts.at(0) == QLatin1String("..")) { evaluated:  parts.at(0) == QLatin1String("..")| yes Evaluation Count:77  | yes Evaluation Count:27  |  
   | 27-77 | 
| 2578 |                 parts.removeFirst();  | - | 
| 2579 |                 currentLocationList.removeLast();  | - | 
| 2580 |             } executed:  }Execution Count:77   | 77 | 
| 2581 |             if (!currentLocationList.isEmpty() && currentLocationList.last().isEmpty()) evaluated:  !currentLocationList.isEmpty()| yes Evaluation Count:31  | yes Evaluation Count:34  |  
  evaluated:  currentLocationList.last().isEmpty()| yes Evaluation Count:6  | yes Evaluation Count:25  |  
   | 6-34 | 
| 2582 |                 currentLocationList.removeLast(); executed:  currentLocationList.removeLast();Execution Count:6   | 6 | 
| 2583 |             return currentLocationList + parts; executed:  return currentLocationList + parts;Execution Count:65   | 65 | 
| 2584 |         }  | - | 
| 2585 |     }  | 0 | 
| 2586 |     return parts; executed:  return parts;Execution Count:303   | 303 | 
| 2587 | }  | - | 
| 2588 |   | - | 
| 2589 |   | - | 
| 2590 |   | - | 
| 2591 |   | - | 
| 2592 |   | - | 
| 2593 |   | - | 
| 2594 |   | - | 
 |  |  |