08 recentFiles.removeAll(curFile);
09 recentFiles.prepend(curFile);
10 updateRecentFileActions;
11 }
12 setWindowTitle(tr("%1[*] - %2").arg(shownName)
13 .arg(tr("Spreadsheet")));
14 }
15 QString MainWindow::strippedName(const QString &fullFileName)
16 {
17 return QFileInfo(fullFileName).fileName;
18 }
В функции
Каждый
В функцию
tr("%1[*] - %2").arg(shownName)
.arg(tr("Spreadsheet"))
Функция
setWindowTitle(shownName + tr("[*] - Spreadsheet"));
но применение
Если задано имя файла, мы обновляем
01 void MainWindow::updateRecentFileActions
02 {
03 QMutableStringListIterator i(recentFiles);
04 while (i.hasNext) {
05 if (!QFile::exists(i.next))
06 i.remove;
07 }
08 for (int j = 0; j < MaxRecentFiles; ++j) {
09 if (j < recentFiles.count) {
10 QString text = tr("&%1 %2")
11 .arg(j + 1)
12 .arg(strippedName(recent Files[j]));
13 recentFileActions[j]->setText(text);
14 recentFileActions[j]->setData(recentFiles[j]);
15 recentFileActions[j]->setVisible(true);
16 } else {
17 recentFileActions[j]->setVisible(false);
18 }
19 }
20 separatorAction->setVisible(!recentFiles.isEmpty);
21 }
Сначала мы удаляем все файлы, которые больше не существуют, используя итератор в стиле Java. Некоторые файлы могли использоваться в предыдущем сеансе, но с этого момента их уже не будет. Переменная