Fix logfile/directory opening in Windows

knobtest
Phil Taylor 2022-09-23 15:45:39 +01:00
rodzic 1aff6b9cb6
commit 3ee237e736
2 zmienionych plików z 27 dodań i 22 usunięć

Wyświetl plik

@ -142,37 +142,39 @@ void loggingWindow::on_clearDisplayBtn_clicked()
void loggingWindow::on_openDirBtn_clicked()
{
QString cmd;
int rtnval = 0;
#ifdef Q_OS_MAC
cmd = "open " + logDirectory;
#endif
bool rtn = false;
QStringList arg;
const QFileInfo dir(logDirectory);
#ifdef Q_OS_LINUX
cmd = "xdg-open " + logDirectory;
cmd = "xdg-open";
#elif defined(Q_OS_WIN)
cmd = QStandardPaths::findExecutable("explorer.exe");
if (!dir.isDir())
arg += QLatin1String("/select,");
#else
cmd = "open";
#endif
#ifdef Q_OS_WIN
cmd = "start " + logDirectory;
#endif
rtnval = system(cmd.toLocal8Bit().data());
if(rtnval)
qInfo(logLogger()) << "Error, open log directory command returned error code " << rtnval;
arg += QDir::toNativeSeparators(dir.canonicalFilePath());;
rtn = QProcess::startDetached(cmd, arg);
if(!rtn)
qInfo(logLogger()) << "Error, open log directory" << logDirectory << "command failed";
}
void loggingWindow::on_openLogFileBtn_clicked()
{
QString cmd;
int rtnval = 0;
#ifdef Q_OS_MAC
cmd = "open " + logFilename;
#endif
bool rtn = false;
#ifdef Q_OS_LINUX
cmd = "xdg-open " + logFilename;
cmd = "xdg-open";
#elif defined(Q_OS_WIN)
cmd = QStandardPaths::findExecutable("notepad.exe");
#else
cmd = "open";
#endif
#ifdef Q_OS_WIN
cmd = "notepad " + logFilename;
#endif
rtnval = system(cmd.toLocal8Bit().data());
if(rtnval)
qInfo(logLogger()) << "Error, open log file command returned error code " << rtnval;
rtn = QProcess::startDetached(cmd, { logFilename });
if(!rtn)
qInfo(logLogger()) << "Error, open log file command failed";
}
void loggingWindow::on_sendToPasteBtn_clicked()

Wyświetl plik

@ -10,6 +10,9 @@
#include <QTextStream>
#include <QMessageBox>
#include <QScrollBar>
#include <QProcess>
#include <QFileInfo>
#include <QDir>
#include "logcategories.h"