/** Open a QFileDialog to browse for Tor config file. */ void AdvancedPage::browseTorConfig() { /* Prompt the user to select a file or create a new one */ QString filename = QFileDialog::getOpenFileName(this, tr("Select Tor Configuration File"), QFileInfo(ui.lineTorConfig->text()).filePath(), tr("Tor Configuration File (torrc);;All Files (*)")); /* Make sure a filename was selected */ if (filename.isEmpty()) { return; } /* Check if the file exists */ QFile torrcFile(filename); if (!QFileInfo(filename).exists()) { /* The given file does not exist. Should we create it? */ int response = VMessageBox::question(this, tr("File Not Found"), tr("%1 does not exist. Would you like to create it?") .arg(filename), VMessageBox::Yes, VMessageBox::No); if (response == VMessageBox::No) { /* Don't create it. Just bail. */ return; } /* Attempt to create the specified file */ QString errmsg; if (!touch_file(filename, false, &errmsg)) { VMessageBox::warning(this, tr("Failed to Create File"), tr("Unable to create %1 [%2]").arg(filename) .arg(errmsg), VMessageBox::Ok); return; } } ui.lineTorConfig->setText(filename); }
/** Open a QFileDialog to browse for a pem/pqi file. */ void NetworkDialog::loadcert() { /* Create a new input dialog, which allows users to create files, too */ QFileDialog *dialog = new QFileDialog(this, tr("Select a pem/pqi File")); //dialog->setDirectory(QFileInfo(ui.lineTorConfig->text()).absoluteDir()); //dialog->selectFile(QFileInfo(ui.lineTorConfig->text()).fileName()); dialog->setFileMode(QFileDialog::AnyFile); dialog->setReadOnly(false); /* Prompt the user to select a file or create a new one */ if (!dialog->exec() || dialog->selectedFiles().isEmpty()) { return; } QString filename = QDir::convertSeparators(dialog->selectedFiles().at(0)); /* Check if the file exists */ QFile torrcFile(filename); if (!QFileInfo(filename).exists()) { /* The given file does not exist. Should we create it? */ int response = VMessageBox::question(this, tr("File Not Found"), tr("%1 does not exist. Would you like to create it?") .arg(filename), VMessageBox::Yes, VMessageBox::No); if (response == VMessageBox::No) { /* Don't create it. Just bail. */ return; } /* Attempt to create the specified file */ if (!torrcFile.open(QIODevice::WriteOnly)) { VMessageBox::warning(this, tr("Failed to Create File"), tr("Unable to create %1 [%2]").arg(filename) .arg(torrcFile.errorString()), VMessageBox::Ok); return; } } //ui.lineTorConfig->setText(filename); }