void MainWindow::addChild(const QString& imageFileName) { if (!imageFileName.isEmpty()) { QString canonicalImageFileName = QFileInfo(imageFileName).canonicalFilePath(); for (int i = 0; i < tabWidget->count(); ++i) { ChildWidget* child = qobject_cast<ChildWidget*> (tabWidget->widget(i)); if (canonicalImageFileName == child->canonicalImageFileName()) { tabWidget->setCurrentIndex(i); return; } } ChildWidget* child = new ChildWidget(this); if (child->loadImage(imageFileName)) { statusBar()->showMessage(tr("File loaded"), 2000); tabWidget->setCurrentIndex(tabWidget->addTab(child, child->userFriendlyCurrentFile())); tabWidget->setTabToolTip(tabWidget->currentIndex(), imageFileName); connect(child, SIGNAL(boxChanged()), this, SLOT(updateCommandActions())); connect(child, SIGNAL(modifiedChanged()), this, SLOT(updateTabTitle())); connect(child, SIGNAL(modifiedChanged()), this, SLOT(updateSaveAction())); connect(child, SIGNAL(zoomRatioChanged(qreal)), this, SLOT(zoomRatioChanged(qreal))); connect(child, SIGNAL(statusBarMessage(QString)), this, SLOT(statusBarMessage(QString))); connect(child, SIGNAL(drawRectangleChoosen()), this, SLOT(updateCommandActions())); child->setZoomStatus(); // save path of open image file QSettings settings(QSettings::IniFormat, QSettings::UserScope, SETTING_ORGANIZATION, SETTING_APPLICATION); QString filePath = QFileInfo(imageFileName).absolutePath(); settings.setValue("last_path", filePath); QStringList files = settings.value("recentFileList").toStringList(); files.removeAll(imageFileName); files.prepend(imageFileName); while (files.size() > MaxRecentFiles) files.removeLast(); settings.setValue("recentFileList", files); foreach(QWidget * widget, QApplication::topLevelWidgets()) { MainWindow* mainWin = qobject_cast<MainWindow*>(widget); if (mainWin) mainWin->updateRecentFileActions(); }
void MainWindow::addChild(const QString &imageFileName) { if (!imageFileName.isEmpty()) { QString canonicalImageFileName = QFileInfo(imageFileName).canonicalFilePath(); for (int i = 0; i < tabWidget->count(); ++i) { ChildWidget *child = qobject_cast<ChildWidget *> (tabWidget->widget(i)); if (canonicalImageFileName == child->canonicalImageFileName()) { tabWidget->setCurrentIndex(i); return; } } ChildWidget *child = new ChildWidget; if (child->loadImage(imageFileName)) { statusBar()->showMessage(tr("File loaded"), 2000); tabWidget->setCurrentIndex(tabWidget->addTab(child, child->userFriendlyCurrentFile())); connect(child, SIGNAL(boxChanged()), this, SLOT(updateCommandActions())); connect(child, SIGNAL(modifiedChanged()), this, SLOT(updateTabTitle())); connect(child, SIGNAL(modifiedChanged()), this, SLOT(updateSaveAction())); } else { child->close(); } } }