mirror of
https://github.com/rizinorg/cutter.git
synced 2024-12-19 03:16:10 +00:00
Wrong path separators have been used. The fix makes them consistent and correspond the Operating System.
This commit is contained in:
parent
3f76ee000c
commit
b95620907a
@ -2045,9 +2045,10 @@ void CutterCore::openProject(const QString &name)
|
||||
|
||||
void CutterCore::saveProject(const QString &name)
|
||||
{
|
||||
cmd("Ps " + name);
|
||||
const QString &rv = cmd("Ps " + name.trimmed()).trimmed();
|
||||
const bool ok = rv == name.trimmed();
|
||||
cmd("Pnj " + notes.toUtf8().toBase64());
|
||||
emit projectSaved(name);
|
||||
emit projectSaved(ok, name);
|
||||
}
|
||||
|
||||
void CutterCore::deleteProject(const QString &name)
|
||||
|
@ -628,7 +628,7 @@ signals:
|
||||
void refreshCodeViews();
|
||||
void stackChanged();
|
||||
|
||||
void projectSaved(const QString &name);
|
||||
void projectSaved(bool successfully, const QString &name);
|
||||
|
||||
/*!
|
||||
* emitted when config regarding disassembly display changes
|
||||
|
@ -246,7 +246,7 @@ void MainWindow::initUI()
|
||||
QShortcut *refresh_shortcut = new QShortcut(QKeySequence(QKeySequence::Refresh), this);
|
||||
connect(refresh_shortcut, SIGNAL(activated()), this, SLOT(refreshAll()));
|
||||
|
||||
connect(core, SIGNAL(projectSaved(const QString &)), this, SLOT(projectSaved(const QString &)));
|
||||
connect(core, SIGNAL(projectSaved(bool, const QString &)), this, SLOT(projectSaved(bool, const QString &)));
|
||||
|
||||
connect(core, &CutterCore::changeDebugView, this, &MainWindow::changeDebugView);
|
||||
connect(core, &CutterCore::changeDefinedView, this, &MainWindow::changeDefinedView);
|
||||
@ -762,9 +762,8 @@ void MainWindow::on_actionRun_Script_triggered()
|
||||
dialog.setViewMode(QFileDialog::Detail);
|
||||
dialog.setDirectory(QDir::home());
|
||||
|
||||
QString fileName;
|
||||
fileName = dialog.getOpenFileName(this, tr("Select radare2 script"));
|
||||
if (!fileName.length()) // Cancel was pressed
|
||||
const QString &fileName = QDir::toNativeSeparators(dialog.getOpenFileName(this, tr("Select radare2 script")));
|
||||
if (fileName.isEmpty()) // Cancel was pressed
|
||||
return;
|
||||
core->loadScript(fileName);
|
||||
}
|
||||
@ -878,7 +877,7 @@ void MainWindow::on_actionImportPDB_triggered()
|
||||
return;
|
||||
}
|
||||
|
||||
QString pdbFile = dialog.selectedFiles().first();
|
||||
const QString &pdbFile = QDir::toNativeSeparators(dialog.selectedFiles().first());
|
||||
|
||||
if (!pdbFile.isEmpty()) {
|
||||
core->loadPDB(pdbFile);
|
||||
@ -938,9 +937,12 @@ void MainWindow::on_actionExport_as_code_triggered()
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::projectSaved(const QString &name)
|
||||
void MainWindow::projectSaved(bool successfully, const QString &name)
|
||||
{
|
||||
core->message(tr("Project saved:") + " " + name);
|
||||
if (successfully)
|
||||
core->message(tr("Project saved: %1").arg(name));
|
||||
else
|
||||
core->message(tr("Failed to save project: %1").arg(name));
|
||||
}
|
||||
|
||||
void MainWindow::changeDebugView()
|
||||
|
@ -167,7 +167,7 @@ private slots:
|
||||
|
||||
void on_actionExport_as_code_triggered();
|
||||
|
||||
void projectSaved(const QString &name);
|
||||
void projectSaved(bool successfully, const QString &name);
|
||||
|
||||
void updateTasksIndicator();
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "Configuration.h"
|
||||
#include <QJsonObject>
|
||||
#include <QJsonArray>
|
||||
#include <QDir>
|
||||
#include <QFontDatabase>
|
||||
#include <QFile>
|
||||
#include <QApplication>
|
||||
@ -73,12 +74,12 @@ QString Configuration::getDirProjects()
|
||||
setDirProjects(projectsDir);
|
||||
}
|
||||
|
||||
return projectsDir;
|
||||
return QDir::toNativeSeparators(projectsDir);
|
||||
}
|
||||
|
||||
void Configuration::setDirProjects(const QString &dir)
|
||||
{
|
||||
s.setValue("dir.projects", dir);
|
||||
s.setValue("dir.projects", QDir::toNativeSeparators(dir));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -386,7 +386,7 @@ void InitialOptionsDialog::on_pdbSelectButton_clicked()
|
||||
return;
|
||||
}
|
||||
|
||||
QString fileName = dialog.selectedFiles().first();
|
||||
const QString &fileName = QDir::toNativeSeparators(dialog.selectedFiles().first());
|
||||
|
||||
if (!fileName.isEmpty()) {
|
||||
ui->pdbLineEdit->setText(fileName);
|
||||
@ -409,7 +409,7 @@ void InitialOptionsDialog::on_scriptSelectButton_clicked()
|
||||
return;
|
||||
}
|
||||
|
||||
QString fileName = dialog.selectedFiles().first();
|
||||
const QString &fileName = QDir::toNativeSeparators(dialog.selectedFiles().first());
|
||||
|
||||
if (!fileName.isEmpty()) {
|
||||
ui->scriptLineEdit->setText(fileName);
|
||||
|
@ -84,7 +84,7 @@ void NewFileDialog::on_loadFileButton_clicked()
|
||||
|
||||
void NewFileDialog::on_selectFileButton_clicked()
|
||||
{
|
||||
QString fileName = QFileDialog::getOpenFileName(this, tr("Select file"), QDir::homePath());
|
||||
const QString &fileName = QDir::toNativeSeparators(QFileDialog::getOpenFileName(this, tr("Select file"), QDir::homePath()));
|
||||
|
||||
if (!fileName.isEmpty()) {
|
||||
ui->newFileEdit->setText(fileName);
|
||||
@ -94,28 +94,22 @@ void NewFileDialog::on_selectFileButton_clicked()
|
||||
|
||||
void NewFileDialog::on_selectProjectsDirButton_clicked()
|
||||
{
|
||||
QFileDialog dialog(this);
|
||||
dialog.setFileMode(QFileDialog::DirectoryOnly);
|
||||
|
||||
auto currentDir = Config()->getDirProjects();
|
||||
|
||||
if (currentDir.startsWith("~")) {
|
||||
currentDir = QDir::homePath() + currentDir.mid(1);
|
||||
}
|
||||
dialog.setDirectory(currentDir);
|
||||
const QString &dir = QDir::toNativeSeparators(QFileDialog::getExistingDirectory(this,
|
||||
tr("Select project path (dir.projects)"),
|
||||
currentDir));
|
||||
|
||||
dialog.setWindowTitle(tr("Select project path (dir.projects)"));
|
||||
|
||||
if (!dialog.exec()) {
|
||||
if (!dir.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
QString dir = dialog.selectedFiles().first();
|
||||
if (!dir.isEmpty()) {
|
||||
Config()->setDirProjects(dir);
|
||||
fillProjectsList();
|
||||
}
|
||||
}
|
||||
|
||||
void NewFileDialog::on_loadProjectButton_clicked()
|
||||
{
|
||||
@ -265,7 +259,7 @@ bool NewFileDialog::fillRecentFilesList()
|
||||
QMutableListIterator<QString> it(files);
|
||||
int i = 0;
|
||||
while (it.hasNext()) {
|
||||
const QString &file = it.next();
|
||||
const QString &file = QDir::toNativeSeparators(it.next());
|
||||
// Get stored files
|
||||
|
||||
// Remove all but the file name
|
||||
@ -310,7 +304,7 @@ bool NewFileDialog::fillProjectsList()
|
||||
|
||||
int i = 0;
|
||||
for (const QString &project : projects) {
|
||||
QString info = core->cmd("Pi " + project);
|
||||
QString info = QDir::toNativeSeparators(core->cmd("Pi " + project));
|
||||
|
||||
QListWidgetItem *item = new QListWidgetItem(getIconFor(project, i++), project + "\n" + info);
|
||||
|
||||
@ -342,7 +336,8 @@ void NewFileDialog::fillIOPluginsList()
|
||||
|
||||
void NewFileDialog::loadFile(const QString &filename)
|
||||
{
|
||||
if (ui->ioPlugin->currentIndex() == 0 && !Core()->tryFile(filename, false)
|
||||
const QString &nativeFn = QDir::toNativeSeparators(filename);
|
||||
if (ui->ioPlugin->currentIndex() == 0 && !Core()->tryFile(nativeFn, false)
|
||||
&& !ui->checkBox_FilelessOpen->isChecked()) {
|
||||
QMessageBox msgBox(this);
|
||||
msgBox.setText(tr("Select a new program or a previous one before continuing."));
|
||||
@ -353,8 +348,8 @@ void NewFileDialog::loadFile(const QString &filename)
|
||||
// Add file to recent file list
|
||||
QSettings settings;
|
||||
QStringList files = settings.value("recentFileList").toStringList();
|
||||
files.removeAll(filename);
|
||||
files.prepend(filename);
|
||||
files.removeAll(nativeFn);
|
||||
files.prepend(nativeFn);
|
||||
while (files.size() > MaxRecentFiles)
|
||||
files.removeLast();
|
||||
|
||||
@ -366,7 +361,7 @@ void NewFileDialog::loadFile(const QString &filename)
|
||||
if (ui->ioPlugin->currentIndex()) {
|
||||
ioFile = ui->ioPlugin->currentText() + "://";
|
||||
}
|
||||
ioFile += filename;
|
||||
ioFile += nativeFn;
|
||||
InitialOptions options;
|
||||
options.filename = ioFile;
|
||||
main->openNewFile(options, ui->checkBox_FilelessOpen->isChecked());
|
||||
|
@ -23,10 +23,10 @@ void OpenFileDialog::on_selectFileButton_clicked()
|
||||
|
||||
void OpenFileDialog::on_buttonBox_accepted()
|
||||
{
|
||||
QString filePath = ui->filenameLineEdit->text();
|
||||
const QString &filePath = QDir::toNativeSeparators(ui->filenameLineEdit->text());
|
||||
RVA mapAddress = RVA_INVALID;
|
||||
QString mapAddressStr = ui->mapAddressLineEdit->text();
|
||||
if (mapAddressStr.length()) {
|
||||
if (!mapAddressStr.isEmpty()) {
|
||||
mapAddress = Core()->math(mapAddressStr);
|
||||
}
|
||||
Core()->openFile(filePath, mapAddress);
|
||||
|
@ -38,22 +38,15 @@ SaveProjectDialog::~SaveProjectDialog()
|
||||
|
||||
void SaveProjectDialog::on_selectProjectsDirButton_clicked()
|
||||
{
|
||||
QFileDialog dialog(this);
|
||||
dialog.setFileMode(QFileDialog::DirectoryOnly);
|
||||
|
||||
QString currentDir = ui->projectsDirEdit->text();
|
||||
if (currentDir.startsWith("~")) {
|
||||
currentDir = QDir::homePath() + currentDir.mid(1);
|
||||
}
|
||||
dialog.setDirectory(currentDir);
|
||||
|
||||
dialog.setWindowTitle(tr("Select project path (dir.projects)"));
|
||||
const QString& dir = QDir::toNativeSeparators(QFileDialog::getExistingDirectory(this,
|
||||
tr("Select project path (dir.projects)"),
|
||||
currentDir));
|
||||
|
||||
if (!dialog.exec()) {
|
||||
return;
|
||||
}
|
||||
|
||||
QString dir = dialog.selectedFiles().first();
|
||||
if (!dir.isEmpty()) {
|
||||
ui->projectsDirEdit->setText(dir);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user