1. 16 Jul, 2016 2 commits
  2. 03 May, 2016 3 commits
    • Elvis Angelaccio's avatar
      Fix Delete action on header-encrypted archives · 7addb6b7
      Elvis Angelaccio authored
      Forward-port of cdcd6c13.
      7addb6b7
    • Elvis Angelaccio's avatar
      Fix Delete action on header-encrypted archives · cdcd6c13
      Elvis Angelaccio authored
      Ark was ignoring the password prompt, resulting in an endless DeleteJob.
      This is simply fixed by using the PasswordSwitch, like in other jobs.
      cdcd6c13
    • Ragnar Thomsen's avatar
      Add basic test functionality · 13d70a48
      Ragnar Thomsen authored
      Add a TestJob and associated action in Part. Test functionality is
      enabled in plugin json files, currently for clizip, clirar and cli7z.
      Test results are displayed simply as success/failure in a KMessageBox.
      
      Testing password-protected archives will currently result in an
      errorbox, due to these archives potentially having different passwords
      for each file and hence multiple password prompts might pop up.
      
      Libarchive does not support testing archives.
      
      FEATURE: 140492
      FIXED-IN: 16.08.0
      Differential Revision: D1516
      13d70a48
  3. 07 Apr, 2016 1 commit
  4. 30 Mar, 2016 1 commit
  5. 20 Mar, 2016 1 commit
    • Ragnar Thomsen's avatar
      Handle "no space left" messages from cliplugins · 7f65f911
      Ragnar Thomsen authored
      Previously, Ark didn't handle "no space left" error messages from the
      cliplugins. This resulted in either the gui being "busy" continously
      (clizip), or that the user didn't get any indication that there was a
      problem extracting the archive (cli7z and clirar).
      
      This commit adds a pattern (DiskFullPatterns) for catching these errors.
      An errorbox is then displayed to the user. Some of the programs used in
      the cliplugins, such as 7z v9.38, doesn't output a specific message,
      but then a generic "Extraction failed" message is displayed instead.
      
      BUG: 206383, 206385
      FIXED-IN: 16.04.0
      
      Differential Revision: D455
      7f65f911
  6. 14 Mar, 2016 1 commit
    • Elvis Angelaccio's avatar
      Drop support for 7zr/7za executables · cc6826f6
      Elvis Angelaccio authored
      Since the cli7zplugin now supports also the zip format, we can't rely anymore on
      the 7zr executable (a light version of 7za/7z which can only handle
      the 7z format).
      
      Since 7za is often packaged togheter with 7zr (e.g. on *ubuntu systems), we
      choose to drop it as well. This will allow us to easily check the availability
      of cli7zplugin at runtime, by just looking for a single executable (7z).
      cc6826f6
  7. 08 Mar, 2016 1 commit
    • Elvis Angelaccio's avatar
      Port plugins loading to KPluginLoader · 060d23f0
      Elvis Angelaccio authored
      The ark plugins are now ported to the new KPluingLoader loading mechanism.
      The main advantage is that we now save a call to the Syscoca service trader,
      since the plugins are installed in a private 'kerfuffle' subdirectory of the
      system plugins folder.
      
      In order to be found by KPluginLoader, a plugin has to embed its metadata
      defined in a .json file. We convert the existing .desktop files to .json at build time, when possible.
      Otherwise we use directly .json metadata files (e.g. for clirar or cliunarchiver).
      
      The libarchive plugin had to be split in two different plugins, one for the
      read-only mimetypes and another one for the read-write ones. This is because
      the old plugin was using two .desktop files, but the new plugins can only embed
      a single .json file.
      
      For more details, see task T923 on phabricator.
      060d23f0
  8. 07 Mar, 2016 1 commit
  9. 26 Oct, 2015 2 commits
    • Ragnar Thomsen's avatar
      Add support for reading archive comments · 3a22bbd5
      Ragnar Thomsen authored
      Add support for reading comments in CLI-based plugins such as rar and
      zip. The comment is parsed from the output of ListJob. The comment is
      displayed below the file view in a read-only QPlainTextEdit with
      monospace font. A QSplitter is used so the user can resize the comment
      field.
      
      Support is added to clirar, clizip and cli7z plugins. The 7z-format
      doesn't support comments, but the cli7z-plugin supports reading comments
      in e.g. zip archives.
      
      BUG: 328790
      FIXED-IN: 15.12.0
      REVIEW: 124468
      3a22bbd5
    • Ragnar Thomsen's avatar
      Add support for overwrite prompt of p7zip v15.09. · ff4b1345
      Ragnar Thomsen authored
      The overwrite prompt changed from p7zip version 9.38.1 to 15.09. Add
      support for the new prompt. FileExistsExpression had to be changed
      from QString to QStringList.
      
      Also, got rid of unneeded CliInterface::checkForFileExistsMessage().
      Just use CliInterface::checkForErrorMessage() instead.
      ff4b1345
  10. 20 Oct, 2015 1 commit
  11. 15 Oct, 2015 1 commit
    • Ragnar Thomsen's avatar
      Use ecm_qt_declare_logging_category() cmake macro · 5e04e640
      Ragnar Thomsen authored
      This macro was introduced in ECM 5.14.0 and generates logging category
      declarations. This removes the necessity of Q_LOGGING_CATEGORY calls in
      cpp files. A header with Q_DECLARE_LOGGING_CATEGORY is automatically
      generated, so the old logging.h file can be removed.
      
      Also the identifier is now ARK everywhere, so all qCDebug() should be
      qCDebug(ARK).
      
      This bumps the required dep version for ECM to 5.14.0.
      5e04e640
  12. 04 Oct, 2015 2 commits
    • Ragnar Thomsen's avatar
      Improve handling of corrupt archives by CliPlugins · 170115f1
      Ragnar Thomsen authored
      A new parameter was added to the Kerfuffle::CliInterfaceParameters enum
      (called CorruptArchivePatterns), containing a list of regexps matching
      output from CliPlugins when a corrupt archive is listed.
      
      Due to the CliInterface not being able to launch a KMessageBox itself, a
      query (LoadCorruptQuery) was added which launches a
      KMessageBox::warningYesNo asking the user if he wants to try to load the
      corrupt archive. This is useful because some files might still be
      recoverable.
      
      If the user answers no, loading of the archive is cancelled.
      
      If the user answers yes the archive is loaded as usual, but to prevent
      the user from trying to add/delete files from the corrupt archive (which
      is likely to fail), the archive is set to readonly. This necessitated a
      new private member in ReadOnlyArchiveInterface (m_isCorrupt) and
      getter/setter functions. The setter function is used in
      CliInterface::HandleLine, while the getter function is used in
      ReadWriteArchiveInterface::isReadOnly().
      
      BUG: 261073
      BUG: 352949
      FIXED-IN: 15.12.0
      REVIEW: 125363
      170115f1
    • Ragnar Thomsen's avatar
      Fix header encryption in cli7z · d3286f07
      Ragnar Thomsen authored
      7z gives an error when using the header encryptions switch (-mhe=on|off)
      with archive types that don't support header encryption such as zip.
      This results in Ark failing to create new zip archives with cli7z.
      
      This is now fixed by setting $EncryptHeaderSwitch to empty when header
      encryption is off, instead of -mhe=off.
      
      This patch also fixes CreateDialog::isHeaderEncryptionChecked() to only
      return true if encryptHeaderCheckBox is both enabled and checked,
      instead of just checked.
      
      REVIEW: 125507
      d3286f07
  13. 24 Sep, 2015 1 commit
    • Ragnar Thomsen's avatar
      cli7z: Add xz and rar archive type detection · 88227b68
      Ragnar Thomsen authored
      Added support for detecting xz and rar archives in the cli7z plugin.
      These mimetypes are not registered for cli7z, so Ark doesn't use this
      plugin for the two archive types at the moment.
      88227b68
  14. 23 Sep, 2015 2 commits
    • Ragnar Thomsen's avatar
      Harmonize the CliPlugins · d2698814
      Ragnar Thomsen authored
      Use Q_DECL_OVERRIDE and same names in ParseState enum.
      d2698814
    • Ragnar Thomsen's avatar
      Add CliInterface::resetParsing() · bf487092
      Ragnar Thomsen authored
      This function is overridden in the individual CliPlugins and resets
      parsing variables, such as ParseState, m_comment, etc. This is needed
      because an archive can be listed several times without the plugin being
      reloaded, e.g. after adding files. This can result in e.g. comments
      being appended to themselves or parsing being started in the wrong
      ParseState.
      resetParsing() is called in CliInterface::list(), before running the
      list process.
      bf487092
  15. 13 Sep, 2015 1 commit
  16. 10 Sep, 2015 1 commit
  17. 08 Sep, 2015 1 commit
    • Ragnar Thomsen's avatar
      Add support for overwrite prompt of unrar 5 · fba2a220
      Ragnar Thomsen authored
      The overwrite prompt changed in unrar 5 compared to unrar 3 and 4. This
      commit adds support for the unrar 5 prompt. Unrar 5 has a multi-line
      overwrite prompt, i.e. the last line of the overwrite prompt does not
      contain the name of the existing file, which is needed by the
      OverwriteQuery to display the filename to the user. This was solved by
      storing the filename in a member variable m_storedFileName, so it is
      available when the last line of the overwrite prompt is reached. To
      capture the filename, a new parameter, FileExistsFileName, was added to
      the CliInterfaceParameters enum.
      
      7z also has a multi-line overwrite prompt, so previously the filename
      was not displayed in the OverwriteQuery dialog. This is now fixed.
      
      BUG: 349131
      FIXED-IN: 15.08.1
      REVIEW: 124111
      fba2a220
  18. 05 Sep, 2015 2 commits
  19. 22 Aug, 2015 1 commit
  20. 22 Jul, 2015 1 commit
    • Elvis Angelaccio's avatar
      Create password-protected archives with Ark · 402bbe84
      Elvis Angelaccio authored
      This feature allows Ark to create a password-protected archive from
      scratch.
      The 7z and rar plugins support both header encryption and entries-only
      encryption, while the zip one supports only the latter.
      
      An encrypted archive can be created through the CreateDialog (within Ark) or
      through the AddDialog (from e.g. Dolphin).
      
      REVIEW: 120204
      FEATURE: 253694
      FIXED-IN: 15.08
      GUI:
      402bbe84
  21. 18 May, 2015 1 commit
  22. 13 Nov, 2014 2 commits
  23. 10 Nov, 2014 1 commit
  24. 08 Oct, 2014 1 commit
  25. 18 Mar, 2014 1 commit
    • Raphael Kubo da Costa's avatar
      cli7zip: Change the precedence order of the 7z binaries we look for. · 3170fd10
      Raphael Kubo da Costa authored
      Instead of going from least capable (7zr) to most capable (7z), do the
      opposite. Looking for 7zr first means that even though a 7z binary capable
      of handling a certain archive type might be present on the system it will
      not be used. This is particularly troublesome because 7zr does not support
      archives with password.
      
      This should not cause any problems for distros that ship only some 7zip
      binaries since we still look for all 3 of them (7z, 7za and 7zr).
      
      BUG:		329941
      FIXED-IN:	4.12.4
      3170fd10
  26. 09 May, 2012 1 commit
  27. 19 Apr, 2012 1 commit
    • Raphael Kubo da Costa's avatar
      Get rid of the Observer class. · 15fce6f5
      Raphael Kubo da Costa authored
      I have never understood why this class was added in the first place,
      and digging through the old commit history does not help much in this
      regard.  It was mostly used as another way of doing signals and slots.
      
       * The calls in ArchiveInterface that called each observer method now
         just emit the signals declared in ReadOnlyArchiveInterface, and the
         observer methods in the Job classes are now slots.
       * ReadOnlyArchiveInterface::removeObserver() has been replaced with
         QObject::disconnect().
      
      All the (few) unit tests we have still pass.
      15fce6f5
  28. 22 Jan, 2012 1 commit
  29. 26 Dec, 2011 1 commit
  30. 05 Dec, 2011 1 commit
  31. 07 Jun, 2011 1 commit
  32. 24 Jan, 2011 1 commit