1. 09 Apr, 2021 1 commit
    • Nicolas Fella's avatar
      Add missing KConfig linkage · 5020ac6a
      Nicolas Fella authored
      This happens to work because we link against KIO which has KConfig in
      its public interface, but we better not rely on that.
  2. 21 Mar, 2021 1 commit
  3. 31 Dec, 2020 1 commit
  4. 02 Jan, 2020 1 commit
    • Nicolas Fella's avatar
      Port away from KIconThemes · c6f81eb5
      Nicolas Fella authored
      IconSize is deprecated.
      Using the "Desktop" icon size was somewhat arbitrary. There is no QStyle pixelmetric that offers the same size and fits semantically.
      Test Plan: Side panel, properties dialog and extraction dialog look the same
      Reviewers: #ark, davidedmundson
      Reviewed By: davidedmundson
      Subscribers: kde-utils-devel
      Tags: #ark
      Maniphest Tasks: T11637
      Differential Revision: https://phabricator.kde.org/D26370
  5. 30 Nov, 2019 1 commit
  6. 17 Nov, 2019 1 commit
    • Elvis Angelaccio's avatar
      Require libarchive 3.3.3 · cdf979cd
      Elvis Angelaccio authored
      libarchive 3.3.3 has been released more than one year ago and most
      distributions ship it by now.
      By requiring this version, we can drop the custom mimetype for the ztsd
      format and all the ifdefs to handle older libarchive versions.
  7. 13 Jan, 2019 1 commit
    • Elvis Angelaccio's avatar
      Stop defining empty DEPENDENCY_TOOL_ARGS · 185678c7
      Elvis Angelaccio authored
      On !APPLE systems we were defining an empty DEPENDENCY_TOOL_ARGS macro,
      resulting in a clazy warning due to `QStringLiteral(DEPENDENCY_TOOL_ARGS)`.
      Now we define this macro only when needed, and we check with an #ifdef if we
      need to use it. As a bonus point, we avoid to pass to QProcess::setArguments()
      a list whose first element is empty.
  8. 06 Nov, 2018 1 commit
    • Ragnar Thomsen's avatar
      Add support for Zstd-compressed Tar-archives · d876ba3d
      Ragnar Thomsen authored
      Libarchive 3.3.3 was released on 2018-09-04 and added support for the
      Zstandard compression filter. This compression method is designed to
      give similar compression ratio as gzip but with much greater
      (de)compression speeds. Libarchive uses the libzstd.so library, but
      seems to use the zstd binary as fallback if it wasn't built with
      This diff enables the filter in the libarchive plugin. There is still no
      mimetype in shared-mime-info, so a custom mimetype for zstd-compressed
      tar archives is added. This necessitated re-adding functionality in Ark
      for custom mime-types (was removed in commit
      Support is only enabled when built with libarchive>=3.3.3.
      FEATURE: 384040
      FIXED-IN: 18.12.0
      Differential Revision: D15369
  9. 11 Mar, 2018 1 commit
    • Elvis Angelaccio's avatar
      Drop custom mimetypes · 73cd5e8d
      Elvis Angelaccio authored
      The 4 mimetypes defined in kerfuffle.xml are part of
      shared-mime-info since version 1.7, and even Debian stable
      ships the 1.8 release these days.
      This also means we don't need anymore the optional dependency on
      shared-mime-info (see bc8a185d).
  10. 29 May, 2017 1 commit
    • René J.V. Bertin's avatar
      Kerfuffle Mac adaptations · 26c15dcb
      René J.V. Bertin authored
      On Mac, use `otool -L` instead of ldd to determine whether libarchive
      has been built with lzo support.
      https: //phabricator.kde.org/D6001
  11. 19 Dec, 2016 1 commit
    • Elvis Angelaccio's avatar
      Introduce settings page to configure plugins · cdaebc21
      Elvis Angelaccio authored
      This commit adds a page in the settings dialog where the user can enable/disable
      plugins. The page contains a QTreeWidget which is not supported by
      KConfigDialog out of the box, so some glue-code is necessary to
      properly handle the Apply/Default buttons. ArkSettings stores a list of
      disabled plugins (by default, all plugins are enabled).
      If a plugin is not valid because of missing executables, the respective
      item in the view is disabled and a warning is displayed in a tooltip.
      Differential Revision: D3716
      Task: T1984
  12. 17 Dec, 2016 1 commit
    • Elvis Angelaccio's avatar
      SettingsPage: add virtual slots for custom pages · 7e6080f9
      Elvis Angelaccio authored
      Two new virtual slots were added to allow custom pages to properly use a
      custom widget together with the KConfigXT framework. This also adds a
      custom KConfigDialog the emits a signal when the default button is emitted.
      Differential Revision: D3715
  13. 01 Dec, 2016 1 commit
  14. 17 Nov, 2016 1 commit
    • Elvis Angelaccio's avatar
      Add option to disable AES encryption warning · 1caeff2b
      Elvis Angelaccio authored
      The new option is available in a new General Settings page in the settings dialog.
      This paves the way for moving the radiobuttons currently in the Preview page.
      CCBUG: 357658
      Differential Revision: D3380
  15. 04 Nov, 2016 1 commit
    • Ragnar Thomsen's avatar
      Refactor CliInterface · 1074bf07
      Ragnar Thomsen authored
      CliInterface is refactored to be more simple. A new class CliProperties
      is added which holds all the commands, switches and regex's for the cli
      executables. Alot of code is moved from CliInterface to the new class.
      Two new member variables are added to ReadOnlyArchiveInterface of types
      QMimeType and KPluginMetaData. These are passed to CliProperties which
      it uses to call ArchiveFormat::fromMetadata() so it can check archive
      format properties.
      The KPluginMetaData is passed from Archive to ReadOnlyArchiveInterface
      as the second item in the args QVariantList.
      CompressionMethods provided in the plugin json files was changed from a
      QStringList to a QVariantMap so it can hold pairs of values: One user-
      visible string and one value for the cli-switch.
      Differential Revision: D3235
  16. 24 Oct, 2016 1 commit
  17. 15 Oct, 2016 1 commit
    • Elvis Angelaccio's avatar
      Turn extraction/compression options into classes · 89a7b5bb
      Elvis Angelaccio authored
      Currently CompressionOptions and ExtractionOprions are both QHash typedefs,
      which means they are the same thing for the compiler.
      Currently we even pass CompressionOptions objects where ExtractionOptions objects are expected.
      Both types are changed into proper classes, so that the compiler can
      detect this class of bugs.
      While at it:
      - The default value for the `PreservePaths` option was false, now is true because it's
        the more common case.
      - The `RemoveRootNode` option was redundant, it was only used together with the
        `DragAndDrop` one.
      - The `FollowExtractionDialogSettings` was only set but never read, so we can drop it.
      Differential Revision: D3039
      Task: T2137
  18. 29 Sep, 2016 1 commit
  19. 15 Aug, 2016 1 commit
  20. 16 Jul, 2016 1 commit
    • Ragnar Thomsen's avatar
      Implement a custom AddDialog · 07269ec7
      Ragnar Thomsen authored
      This diff implements an AddDialog class that is used instead of
      QFileDialogs for adding files/folders to an archive. Now both folders
      and files are added to an archive with a single action in Part, instead
      of two separate actions (Add File/Add Folder).
      AddDialog has a button which opens a new dialog that allows setting
      advanced compression settings (currently only compression level). Since
      compression options are used both when creating a new archive and adding
      files to an existing archive, a new class called
      CompressionOptionsWidget was created which is used by both AddDialog and
      Differential Revision: D2120
  21. 21 Jun, 2016 1 commit
  22. 30 Apr, 2016 1 commit
    • Elvis Angelaccio's avatar
      Find and link Qt5 Concurrent module · a2a17102
      Elvis Angelaccio authored
      Qt5 Concurrent is a separate module, so we need to find it and link to it.
      This way we can #include <QtConcurrentRun> without hardcoding the module name.
      Most distros include this module in their "basic" qt5 package (e.g. qt5-base on
      Archlinux), so this is not really a bug.
  23. 23 Apr, 2016 2 commits
  24. 06 Apr, 2016 2 commits
    • Elvis Angelaccio's avatar
      Introduce ArchiveFormat class · 88d4fc66
      Elvis Angelaccio authored
      This new class stores metadata about a specific archive format (e.g. RAR)
      depending on the preferred plugin for that format (e.g. clirar or
      cliunarchiver). Metadata of archive formats is declared within the metadata of
      each plugin supporting the format.
      Differential Revision: D1274
    • Ragnar Thomsen's avatar
      Redesign of CreateDialog · 2848dcd3
      Ragnar Thomsen authored
      CreateDialog was completely redesigned. The KFileWidget is gone and replaced by
      a KUrlRequester for the destination folder and a QLineEdit for the filename.
      The encryption options are moved to a KCollapsibleGroupBox and further options
      can be added in future KCollapsibleGroupBox's.
      AddDialog is also gone and CreateDialog is now used directly instead.
  25. 04 Apr, 2016 1 commit
    • Elvis Angelaccio's avatar
      Install custom mimetype for tar.lz archives · bc8a185d
      Elvis Angelaccio authored
      There is no official mimetype for tar.lz archives, so we install a custom one.
      This adds an optional dependency on shared-mime-info:
      * at build-time, we optionally need it to run update-mime-database
      * at runtime, we need it to have this custom mimetype available from QMimeDatabase
  26. 16 Mar, 2016 2 commits
  27. 09 Mar, 2016 1 commit
    • Ragnar Thomsen's avatar
      Add properties dialog · 5552a4c9
      Ragnar Thomsen authored
      A properties dialog was added which displays information about the
      archive. The dialog can be accessed through the Archive menu or hotkey
      Differential Revision: D1076
  28. 05 Mar, 2016 1 commit
  29. 28 Feb, 2016 1 commit
  30. 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
      This bumps the required dep version for ECM to 5.14.0.
  31. 28 Aug, 2015 1 commit
  32. 11 Aug, 2015 1 commit
  33. 22 Jul, 2015 2 commits
    • 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
      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
    • Elvis Angelaccio's avatar
      Implement configuration dialog · 7850a0aa
      Elvis Angelaccio authored
      This patch implements the standard configuration dialog (using
      KConfigDialog) in Ark, as expected from a KDE application.
      The widgets showed in the config dialog are provided by Kerfuffle, through the
      Ark Part interface. This should help to show the Ark settings in, for
      instance, Konqueror's config dialog.
      REVIEW: 121997
      BUG: 165314
      FIXED-IN: 15.08
  34. 20 Jul, 2015 1 commit
  35. 19 May, 2015 1 commit
  36. 18 May, 2015 1 commit