diff --git a/outputview/filtereditem.h b/outputview/filtereditem.h --- a/outputview/filtereditem.h +++ b/outputview/filtereditem.h @@ -56,7 +56,6 @@ QString originalLine; FilteredOutputItemType type; - QString shortenedText; bool isActivatable; QUrl url; /// lineNo starts with 0 diff --git a/outputview/filtereditem.cpp b/outputview/filtereditem.cpp --- a/outputview/filtereditem.cpp +++ b/outputview/filtereditem.cpp @@ -27,7 +27,6 @@ FilteredItem::FilteredItem( const QString& line ) : originalLine( line ) , type( InvalidItem ) -, shortenedText( line ) , isActivatable(false) , lineNo(-1) , columnNo(-1) @@ -37,7 +36,6 @@ FilteredItem::FilteredItem( const QString& line, FilteredOutputItemType type ) : originalLine( line ) , type( type ) -, shortenedText( line ) , isActivatable(false) , lineNo(-1) , columnNo(-1) diff --git a/outputview/outputfilteringstrategies.cpp b/outputview/outputfilteringstrategies.cpp --- a/outputview/outputfilteringstrategies.cpp +++ b/outputview/outputfilteringstrategies.cpp @@ -141,70 +141,58 @@ { // A list of filters for possible compiler, linker, and make actions static const ActionFormat ACTION_FILTERS[] = { - ActionFormat( ki18nc("compiling a file: %1 file %2 compiler", "compiling %1 (%2)"), 1, 2, + ActionFormat( 1, 2, QStringLiteral("(?:^|[^=])\\b(gcc|CC|cc|distcc|c\\+\\+|g\\+\\+|clang(?:\\+\\+)|mpicc|icc|icpc)\\s+.*-c.*[/ '\\\\]+(\\w+\\.(?:cpp|CPP|c|C|cxx|CXX|cs|java|hpf|f|F|f90|F90|f95|F95))")), //moc and uic - ActionFormat( ki18nc("generating a file: %1 file %2 generator tool", "generating %1 (%2)"), 1, 2, + ActionFormat( 1, 2, QStringLiteral("/(moc|uic)\\b.*\\s-o\\s([^\\s;]+)")), //libtool linking - ActionFormat( ki18nc("Linking object files into a library or executable: %1 target, %2 linker", "linking %1 (%2)"), - QStringLiteral("libtool"), QStringLiteral("/bin/sh\\s.*libtool.*--mode=link\\s.*\\s-o\\s([^\\s;]+)"), 1 ), + ActionFormat( QStringLiteral("libtool"), QStringLiteral("/bin/sh\\s.*libtool.*--mode=link\\s.*\\s-o\\s([^\\s;]+)"), 1 ), //unsermake - ActionFormat( ki18nc("compiling a file: %1 file %2 compiler", "compiling %1 (%2)"), 1, 1, + ActionFormat( 1, 1, QStringLiteral("^compiling (.*)") ), - ActionFormat( ki18nc("generating a file: %1 file %2 generator tool", "generating %1 (%2)"), 1, 2, + ActionFormat( 1, 2, QStringLiteral("^generating (.*)") ), - ActionFormat( ki18nc("Linking object files into a library or executable: %1 file, %2 linker", "linking %1 (%2)"), 1, 2, + ActionFormat( 1, 2, QStringLiteral("(gcc|cc|c\\+\\+|g\\+\\+|clang(?:\\+\\+)|mpicc|icc|icpc)\\S* (?:\\S* )*-o ([^\\s;]+)")), - ActionFormat( ki18nc("Linking object files into a library or executable: %1 file, %2 compiler", "linking %1 (%2)"), 1, 2, + ActionFormat( 1, 2, QStringLiteral("^linking (.*)") ), //cmake - ActionFormat( ki18nc("finished building a target: %1 target name", "built %1"), -1, 1, + ActionFormat( -1, 1, QStringLiteral("\\[.+%\\] Built target (.*)") ), - ActionFormat( ki18nc("compiling a file: %1 file %2 compiler", "compiling %1 (%2)"), QStringLiteral("cmake"), + ActionFormat( QStringLiteral("cmake"), QStringLiteral("\\[.+%\\] Building .* object (.*)"), 1 ), - ActionFormat( ki18nc("generating a file: %1 file %2 generator tool", "generating %1 (%2)"), -1, 1, + ActionFormat( -1, 1, QStringLiteral("\\[.+%\\] Generating (.*)") ), - ActionFormat( ki18nc("Linking object files into a library or executable: %1 target", "linking %1"), -1, 1, + ActionFormat( -1, 1, QStringLiteral("^Linking (.*)") ), - ActionFormat( ki18nc("configuring a project: %1 tool", "configuring (%1)"), QStringLiteral("cmake"), + ActionFormat( QStringLiteral("cmake"), QStringLiteral("(-- Configuring (done|incomplete)|-- Found|-- Adding|-- Enabling)"), -1 ), - ActionFormat( ki18nc("installing a file: %1 file", "installing %1"), -1, 1, + ActionFormat( -1, 1, QStringLiteral("-- Installing (.*)") ), //libtool install - ActionFormat( ki18nc("creating a folder: %1 path", "creating %1"), {}, + ActionFormat( {}, QStringLiteral("/(?:bin/sh\\s.*mkinstalldirs).*\\s([^\\s;]+)"), 1 ), - ActionFormat( ki18nc("installing a file: %1 file", "installing %1"), {}, + ActionFormat( {}, QStringLiteral("/(?:usr/bin/install|bin/sh\\s.*mkinstalldirs|bin/sh\\s.*libtool.*--mode=install).*\\s([^\\s;]+)"), 1 ), //dcop - ActionFormat( ki18nc("generating a file: %1 file %2 generator tool", "generating %1 (%2)"), QStringLiteral("dcopidl"), + ActionFormat( QStringLiteral("dcopidl"), QStringLiteral("dcopidl .* > ([^\\s;]+)"), 1 ), - ActionFormat( ki18nc("compiling a file: %1 file %2 compiler", "compiling %1 (%2)"), QStringLiteral("dcopidl2cpp"), + ActionFormat( QStringLiteral("dcopidl2cpp"), QStringLiteral("dcopidl2cpp (?:\\S* )*([^\\s;]+)"), 1 ), // match against Entering directory to update current build dir - ActionFormat( ki18nc("change directory: %1: path", "entering %1 (%2)"), QStringLiteral("cd"), + ActionFormat( QStringLiteral("cd"), QStringLiteral("make\\[\\d+\\]: Entering directory (\\`|\\')(.+)'"), 2), // waf and scons use the same basic convention as make - ActionFormat( ki18nc("change directory: %1: path", "entering %1 (%2)"), QStringLiteral("cd"), + ActionFormat( QStringLiteral("cd"), QStringLiteral("(Waf|scons): Entering directory (\\`|\\')(.+)'"), 3) }; FilteredItem item(line); for (const auto& curActFilter : ACTION_FILTERS) { const auto match = curActFilter.expression.match(line); if( match.hasMatch() ) { item.type = FilteredItem::ActionItem; - KLocalizedString shortened = curActFilter.label; - if (curActFilter.fileGroup != -1) { - shortened = shortened.subs(match.captured(curActFilter.fileGroup)); - } - if (curActFilter.toolGroup != -1 ) { - shortened = shortened.subs(match.captured(curActFilter.toolGroup)); - } else if (!curActFilter.tool.isEmpty()) { - shortened = shortened.subs(curActFilter.tool); - } - - item.shortenedText = shortened.toString(); if( curActFilter.tool == "cd" ) { const Path path(match.captured(curActFilter.fileGroup)); diff --git a/outputview/outputformats.h b/outputview/outputformats.h --- a/outputview/outputformats.h +++ b/outputview/outputformats.h @@ -22,12 +22,10 @@ struct ActionFormat { ActionFormat() = default; - ActionFormat( const KLocalizedString& label, const QString& _tool, const QString& regExp, int file ); - ActionFormat( const KLocalizedString& label, int tool, int file, const QString& regExp ); - KLocalizedString label; + ActionFormat( const QString& _tool, const QString& regExp, int file ); + ActionFormat( int tool, int file, const QString& regExp ); QRegularExpression expression; QString tool; - int toolGroup; int fileGroup; }; diff --git a/outputview/outputformats.cpp b/outputview/outputformats.cpp --- a/outputview/outputformats.cpp +++ b/outputview/outputformats.cpp @@ -34,19 +34,16 @@ , compiler( comp ) {} -ActionFormat::ActionFormat( const KLocalizedString& label, const QString& _tool, const QString& regExp, int file ) - : label( label ) - , expression( regExp ) +ActionFormat::ActionFormat(const QString& _tool, const QString& regExp, int file ) + : expression( regExp ) , tool( _tool ) - , toolGroup(-1) , fileGroup( file ) { } -ActionFormat::ActionFormat( const KLocalizedString& label, int tool, int file, const QString& regExp) - : label( label ) - , expression( regExp ) - , toolGroup( tool ) +ActionFormat::ActionFormat(int tool, int file, const QString& regExp) + : expression( regExp ) + , tool( tool) , fileGroup( file ) { } diff --git a/outputview/outputmodel.cpp b/outputview/outputmodel.cpp --- a/outputview/outputmodel.cpp +++ b/outputview/outputmodel.cpp @@ -250,7 +250,7 @@ switch( role ) { case Qt::DisplayRole: - return d->m_filteredItems.at( idx.row() ).shortenedText; + return d->m_filteredItems.at( idx.row() ).originalLine; break; case OutputModel::OutputItemTypeRole: return static_cast(d->m_filteredItems.at( idx.row() ).type); diff --git a/outputview/tests/test_filteringstrategy.h b/outputview/tests/test_filteringstrategy.h --- a/outputview/tests/test_filteringstrategy.h +++ b/outputview/tests/test_filteringstrategy.h @@ -33,8 +33,6 @@ void testCompilerFilterStrategy(); void testCompilerFilterstrategyMultipleKeywords_data(); void testCompilerFilterstrategyMultipleKeywords(); - void testCompilerFilterStrategyShortenedText(); - void testCompilerFilterStrategyShortenedText_data(); void testCompilerFilterstrategyUrlFromAction_data(); void testCompilerFilterstrategyUrlFromAction(); void testScriptErrorFilterStrategy_data(); diff --git a/outputview/tests/test_filteringstrategy.cpp b/outputview/tests/test_filteringstrategy.cpp --- a/outputview/tests/test_filteringstrategy.cpp +++ b/outputview/tests/test_filteringstrategy.cpp @@ -173,38 +173,6 @@ QCOMPARE(item1.type, expectedAction); } -void TestFilteringStrategy::testCompilerFilterStrategyShortenedText_data() -{ - QTest::addColumn("line"); - QTest::addColumn("expectedShortenedText"); - - QTest::newRow("c++-compile") - << "g++ -c main.cpp -o main.o" << "compiling main.cpp (g++)"; - QTest::newRow("clang++-link") - << "clang++ -c main.cpp -o main.o" << "compiling main.cpp (clang++)"; - // see bug: https://bugs.kde.org/show_bug.cgi?id=240017 - QTest::newRow("mpicc-link") - << "/usr/bin/mpicc -c main.cpp -o main.o" << "compiling main.cpp (mpicc)"; - - QTest::newRow("c++-link") - << "/usr/bin/g++ main.cpp -o main" << "linking main (g++)"; - QTest::newRow("clang++-link") - << "/usr/bin/clang++ main.cpp -o a.out" << "linking a.out (clang++)"; - QTest::newRow("mpicc-link") - << "mpicc main.cpp -o main" << "linking main (mpicc)"; -} - -void TestFilteringStrategy::testCompilerFilterStrategyShortenedText() -{ - QFETCH(QString, line); - QFETCH(QString, expectedShortenedText); - - QUrl projecturl = QUrl::fromLocalFile( projectPath() ); - CompilerFilterStrategy testee(projecturl); - FilteredItem item = testee.actionInLine(line); - QCOMPARE(item.shortenedText, expectedShortenedText); -} - void TestFilteringStrategy::testScriptErrorFilterStrategy_data() { QTest::addColumn("line");