bool MainWindow::memoryOpen(const QByteArray& ba, const QString& assocPath) { QFileInfo fileInfo(assocPath); if(!fileInfo.isFile() || !fileInfo.isReadable()) return false; for(int i = 0; i < ui_tabWidget->count(); ++i) { SourceFile* sourceFile = dynamic_cast<SourceFile*>(ui_tabWidget->widget(i)); if(sourceFile && sourceFile->associatedFile() == assocPath) { ui_tabWidget->setCurrentIndex(i); on_ui_tabWidget_currentChanged(i); return true; } } /* Attempt to open the selected file */ SourceFile *sourceFile = new SourceFile(this); if(!sourceFile->memoryOpen(ba, assocPath)) { MessageDialog::showError(this, "simple_error", QStringList() << tr("Could not open ") + sourceFile->associatedFileName() << tr("Unable to open file from memory.")); delete sourceFile; return false; } addTab(sourceFile); UiEventManager::ref().sendEvent(UI_EVENT_OPEN_FILE); hideProjectDock(); return true; }
bool MainWindow::openFile(const QString& file) { QFileInfo fileInfo(file); if(!fileInfo.isFile() || !fileInfo.isReadable()) return false; for(int i = 0;i < ui_tabWidget->count();i++) { SourceFile* sourceFile = dynamic_cast<SourceFile*>(ui_tabWidget->widget(i)); if(sourceFile && sourceFile->associatedFile() == file) { ui_tabWidget->setCurrentIndex(i); on_ui_tabWidget_currentChanged(i); return true; } } /* Attempt to open the selected file */ SourceFile *sourceFile = new SourceFile(this); if(!sourceFile->fileOpen(file)) { MessageDialog::showError(this, "simple_error", QStringList() << tr("Could not open ") + sourceFile->associatedFileName() << tr("Unable to open file for reading.")); delete sourceFile; return false; } QSettings settings; QStringList current = settings.value(RECENTS).toStringList().mid(0, 5); current.push_front(fileInfo.absoluteFilePath()); current.removeDuplicates(); settings.setValue(RECENTS, current); addTab(sourceFile); UiEventManager::ref().sendEvent(UI_EVENT_OPEN_FILE); return true; }