Task: Make sure file contains non-native separators

This commit is contained in:
Tobias Hunger
2010-10-20 12:56:06 +02:00
parent cda261db58
commit dd62bcc824
10 changed files with 33 additions and 15 deletions

View File

@@ -33,6 +33,7 @@
#include <coreplugin/coreconstants.h> #include <coreplugin/coreconstants.h>
#include <QtCore/QDir>
#include <QtGui/QAction> #include <QtGui/QAction>
#include <QtGui/QApplication> #include <QtGui/QApplication>
#include <QtGui/QClipboard> #include <QtGui/QClipboard>
@@ -48,16 +49,18 @@ void CopyTaskHandler::handle(const ProjectExplorer::Task &task)
QString type; QString type;
switch (task.type) { switch (task.type) {
case Task::Error: case Task::Error:
type = tr("error: ", "Task is of type error"); //: Task is of type: error
type = tr("error: ");
break; break;
case Task::Warning: case Task::Warning:
type = tr("warning: ", "Task is of type warning"); //: Task is of type: warning
type = tr("warning: ");
break; break;
default: default:
break; break;
} }
QApplication::clipboard()->setText(task.file + ':' + QApplication::clipboard()->setText(QDir::toNativeSeparators(task.file) + ':' +
QString::number(task.line) + ": " QString::number(task.line) + ": "
+ type + task.description); + type + task.description);
} }

View File

@@ -32,6 +32,8 @@
#include "taskwindow.h" #include "taskwindow.h"
#include "projectexplorerconstants.h" #include "projectexplorerconstants.h"
#include <QtCore/QDir>
using namespace ProjectExplorer; using namespace ProjectExplorer;
namespace { namespace {
@@ -100,7 +102,7 @@ void GccParser::stdError(const QString &line)
int lineno = m_regExp.cap(3).toInt(); int lineno = m_regExp.cap(3).toInt();
Task task(Task::Unknown, Task task(Task::Unknown,
m_regExp.cap(8) /* description */, m_regExp.cap(8) /* description */,
filename, lineno, QDir::fromNativeSeparators(filename), lineno,
Constants::TASK_CATEGORY_COMPILE); Constants::TASK_CATEGORY_COMPILE);
if (m_regExp.cap(7) == QLatin1String("warning")) if (m_regExp.cap(7) == QLatin1String("warning"))
task.type = Task::Warning; task.type = Task::Warning;
@@ -118,7 +120,7 @@ void GccParser::stdError(const QString &line)
} else if (m_regExpIncluded.indexIn(lne) > -1) { } else if (m_regExpIncluded.indexIn(lne) > -1) {
emit addTask(Task(Task::Unknown, emit addTask(Task(Task::Unknown,
lne /* description */, lne /* description */,
m_regExpIncluded.cap(1) /* filename */, QDir::fromNativeSeparators(m_regExpIncluded.cap(1)) /* filename */,
m_regExpIncluded.cap(3).toInt() /* linenumber */, m_regExpIncluded.cap(3).toInt() /* linenumber */,
Constants::TASK_CATEGORY_COMPILE)); Constants::TASK_CATEGORY_COMPILE));
return; return;

View File

@@ -87,7 +87,7 @@ void GnuMakeParser::stdError(const QString &line)
m_suppressIssues = true; m_suppressIssues = true;
addTask(Task(Task::Error, addTask(Task(Task::Error,
m_makefileError.cap(3), m_makefileError.cap(3),
m_makefileError.cap(1), QDir::fromNativeSeparators(m_makefileError.cap(1)),
m_makefileError.cap(2).toInt(), m_makefileError.cap(2).toInt(),
Constants::TASK_CATEGORY_BUILDSYSTEM)); Constants::TASK_CATEGORY_BUILDSYSTEM));
} }

View File

@@ -31,6 +31,8 @@
#include "projectexplorerconstants.h" #include "projectexplorerconstants.h"
#include "taskwindow.h" #include "taskwindow.h"
#include <QtCore/QDir>
using namespace ProjectExplorer; using namespace ProjectExplorer;
namespace { namespace {
@@ -98,7 +100,7 @@ void LdParser::stdError(const QString &line)
&& !m_regExpLinker.cap(4).startsWith(QLatin1String("(.text+0x"))) && !m_regExpLinker.cap(4).startsWith(QLatin1String("(.text+0x")))
filename = m_regExpLinker.cap(4); filename = m_regExpLinker.cap(4);
QString description = m_regExpLinker.cap(8).trimmed(); QString description = m_regExpLinker.cap(8).trimmed();
Task task(Task::Error, description, filename, lineno, Task task(Task::Error, description, QDir::fromNativeSeparators(filename), lineno,
Constants::TASK_CATEGORY_COMPILE); Constants::TASK_CATEGORY_COMPILE);
if (m_regExpInFunction.indexIn(description) > -1 || if (m_regExpInFunction.indexIn(description) > -1 ||
description.startsWith(QLatin1String("At global scope")) || description.startsWith(QLatin1String("At global scope")) ||

View File

@@ -31,7 +31,8 @@
#include "ldparser.h" #include "ldparser.h"
#include "taskwindow.h" #include "taskwindow.h"
#include "projectexplorerconstants.h" #include "projectexplorerconstants.h"
#include <QtCore/QDebug>
#include <QtCore/QDir>
using namespace ProjectExplorer; using namespace ProjectExplorer;
@@ -71,7 +72,8 @@ void LinuxIccParser::stdError(const QString &line)
if (m_expectFirstLine && m_firstLine.indexIn(line) != -1) { if (m_expectFirstLine && m_firstLine.indexIn(line) != -1) {
// Clear out old task // Clear out old task
m_temporary = ProjectExplorer::Task(Task::Unknown, m_firstLine.cap(6).trimmed(), m_temporary = ProjectExplorer::Task(Task::Unknown, m_firstLine.cap(6).trimmed(),
m_firstLine.cap(1), m_firstLine.cap(2).toInt(), QDir::fromNativeSeparators(m_firstLine.cap(1)),
m_firstLine.cap(2).toInt(),
QLatin1String(Constants::TASK_CATEGORY_COMPILE)); QLatin1String(Constants::TASK_CATEGORY_COMPILE));
QString category = m_firstLine.cap(4); QString category = m_firstLine.cap(4);
if (category == QLatin1String("error")) if (category == QLatin1String("error"))

View File

@@ -32,6 +32,8 @@
#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/taskwindow.h> #include <projectexplorer/taskwindow.h>
#include <QtCore/QDir>
using namespace Qt4ProjectManager; using namespace Qt4ProjectManager;
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace ProjectExplorer::Constants; using namespace ProjectExplorer::Constants;
@@ -73,7 +75,7 @@ void AbldParser::stdOutput(const QString &line)
if (m_perlIssue.indexIn(lne) > -1) { if (m_perlIssue.indexIn(lne) > -1) {
m_waitingForStdOutContinuation = true; m_waitingForStdOutContinuation = true;
m_currentFile = m_perlIssue.cap(2); m_currentFile = QDir::fromNativeSeparators(m_perlIssue.cap(2));
m_currentLine = m_perlIssue.cap(3).toInt(); m_currentLine = m_perlIssue.cap(3).toInt();
Task task(Task::Unknown, Task task(Task::Unknown,
@@ -143,7 +145,7 @@ void AbldParser::stdError(const QString &line)
} }
if (lne.startsWith(QLatin1String("MMPFILE \""))) { if (lne.startsWith(QLatin1String("MMPFILE \""))) {
m_currentFile = lne.mid(9, lne.size() - 10); m_currentFile = QDir::fromNativeSeparators(lne.mid(9, lne.size() - 10));
m_waitingForStdErrContinuation = false; m_waitingForStdErrContinuation = false;
return; return;
} }

View File

@@ -31,6 +31,8 @@
#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/taskwindow.h> #include <projectexplorer/taskwindow.h>
#include <QtCore/QDir>
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace ProjectExplorer::Constants; using namespace ProjectExplorer::Constants;
using namespace Qt4ProjectManager; using namespace Qt4ProjectManager;
@@ -80,7 +82,8 @@ void RvctParser::stdError(const QString &line)
m_task = new Task(Task::Unknown, m_task = new Task(Task::Unknown,
m_warningOrError.cap(5) /* description */, m_warningOrError.cap(5) /* description */,
m_warningOrError.cap(1) /* file */, m_warningOrError.cap(2).toInt() /* line */, QDir::fromNativeSeparators(m_warningOrError.cap(1)) /* file */,
m_warningOrError.cap(2).toInt() /* line */,
TASK_CATEGORY_COMPILE); TASK_CATEGORY_COMPILE);
if (m_warningOrError.cap(4) == "Warning") if (m_warningOrError.cap(4) == "Warning")
m_task->type = Task::Warning; m_task->type = Task::Warning;

View File

@@ -65,7 +65,7 @@ void SbsV2Parser::stdOutput(const QString &line)
{ {
// Eat most output! // Eat most output!
if (line.startsWith(QLatin1String("sbs: build log in "))) { if (line.startsWith(QLatin1String("sbs: build log in "))) {
QString logfile = line.mid(18).trimmed(); QString logfile = QDir::fromNativeSeparators(line.mid(18).trimmed());
parseLogFile(logfile); parseLogFile(logfile);
addTask(ProjectExplorer::Task(Task::Unknown, tr("SBSv2 build log"), addTask(ProjectExplorer::Task(Task::Unknown, tr("SBSv2 build log"),
logfile, -1, logfile, -1,

View File

@@ -31,6 +31,8 @@
#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/taskwindow.h> #include <projectexplorer/taskwindow.h>
#include <QtCore/QDir>
using namespace Qt4ProjectManager; using namespace Qt4ProjectManager;
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace ProjectExplorer::Constants; using namespace ProjectExplorer::Constants;
@@ -54,7 +56,7 @@ void WinscwParser::stdOutput(const QString &line)
if (m_compilerProblem.indexIn(lne) > -1) { if (m_compilerProblem.indexIn(lne) > -1) {
Task task(Task::Error, Task task(Task::Error,
m_compilerProblem.cap(3) /* description */, m_compilerProblem.cap(3) /* description */,
m_compilerProblem.cap(1) /* filename */, QDir::fromNativeSeparators(m_compilerProblem.cap(1)) /* filename */,
m_compilerProblem.cap(2).toInt() /* linenumber */, m_compilerProblem.cap(2).toInt() /* linenumber */,
TASK_CATEGORY_COMPILE); TASK_CATEGORY_COMPILE);
if (task.description.startsWith(QLatin1String("warning: "))) { if (task.description.startsWith(QLatin1String("warning: "))) {
@@ -74,7 +76,7 @@ void WinscwParser::stdError(const QString &line)
if (m_linkerProblem.indexIn(lne) > -1) { if (m_linkerProblem.indexIn(lne) > -1) {
emit addTask(Task(Task::Error, emit addTask(Task(Task::Error,
m_linkerProblem.cap(2) /* description */, m_linkerProblem.cap(2) /* description */,
m_linkerProblem.cap(1) /* filename */, QDir::fromNativeSeparators(m_linkerProblem.cap(1)) /* filename */,
-1 /* linenumber */, -1 /* linenumber */,
TASK_CATEGORY_COMPILE)); TASK_CATEGORY_COMPILE));
return; return;

View File

@@ -41,6 +41,7 @@
#include <projectexplorer/task.h> #include <projectexplorer/task.h>
#include <projectexplorer/taskhub.h> #include <projectexplorer/taskhub.h>
#include <QtCore/QDir>
#include <QtCore/QStringList> #include <QtCore/QStringList>
#include <QtCore/QtPlugin> #include <QtCore/QtPlugin>
@@ -105,6 +106,7 @@ public:
description = chunks.at(3); description = chunks.at(3);
} }
if (!file.isEmpty()) { if (!file.isEmpty()) {
file = QDir::fromNativeSeparators(file);
QFileInfo fi(file); QFileInfo fi(file);
if (fi.isRelative() && context) { if (fi.isRelative() && context) {
QString fullPath = context->projectDirectory() + '/' + file; QString fullPath = context->projectDirectory() + '/' + file;