diff options
Diffstat (limited to 'src/libs/installer/linereplaceoperation.cpp')
-rw-r--r-- | src/libs/installer/linereplaceoperation.cpp | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/src/libs/installer/linereplaceoperation.cpp b/src/libs/installer/linereplaceoperation.cpp index 670ebbd63..1a3d2c670 100644 --- a/src/libs/installer/linereplaceoperation.cpp +++ b/src/libs/installer/linereplaceoperation.cpp @@ -39,7 +39,8 @@ using namespace QInstaller; -LineReplaceOperation::LineReplaceOperation() +LineReplaceOperation::LineReplaceOperation(PackageManagerCore *core) + : UpdateOperation(core) { setName(QLatin1String("LineReplace")); } @@ -50,18 +51,14 @@ void LineReplaceOperation::backup() bool LineReplaceOperation::performOperation() { - const QStringList args = arguments(); - // Arguments: // 1. filename // 2. startsWith Search-String // 3. Replace-Line-String - if (args.count() != 3) { - setError(InvalidArguments); - setErrorString(tr("Invalid arguments in %0: %1 arguments given, %2 expected%3.") - .arg(name()).arg(arguments().count()).arg(tr("exactly 3"), QLatin1String(""))); + if (!checkArgumentCount(3)) return false; - } + + const QStringList args = arguments(); const QString fileName = args.at(0); const QString searchString = args.at(1); const QString replaceString = args.at(2); @@ -69,7 +66,8 @@ bool LineReplaceOperation::performOperation() QFile file(fileName); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { setError(UserDefinedError); - setErrorString(tr("Failed to open '%1' for reading.").arg(fileName)); + setErrorString(tr("Cannot open file \"%1\" for reading: %2").arg( + QDir::toNativeSeparators(fileName), file.errorString())); return false; } @@ -86,7 +84,8 @@ bool LineReplaceOperation::performOperation() if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { setError(UserDefinedError); - setErrorString(tr("Failed to open '%1' for writing.").arg(fileName)); + setErrorString(tr("Cannot open file \"%1\" for writing: %2").arg( + QDir::toNativeSeparators(fileName), file.errorString())); return false; } @@ -106,8 +105,3 @@ bool LineReplaceOperation::testOperation() { return true; } - -Operation *LineReplaceOperation::clone() const -{ - return new LineReplaceOperation(); -} |