1. 10 Jun, 2016 1 commit
    • Elvis Angelaccio's avatar
      Add new jobs to preview/open a file · 41b25127
      Elvis Angelaccio authored
      The goal of task T916 is to stop disabling the Part UI while extracting an
      entry. To do so, we need first to make sure that no race condition would occur
      if extracting two or more entries in parallel.
      A race condition might occur in Part::slotOpenExtractedEntry(), where
      m_openFileMode is a global member that could be accessed concurrently between
      different threads. We can stop using this variable if we introduce dedicated
      jobs for preview/opening of files. This way we can simply do a dynamic_cast on
      the local job variable, to check whether the user wants to open or open-with
      the file.
      Preview is totally unrelated so it can be moved into a different slot. We can
      also make sure that the PreviewJob deletes the temporary directory upon
      Differential Revision: D1749
  2. 02 Jun, 2016 1 commit
    • Elvis Angelaccio's avatar
      Don't tell kioexec to autodelete our temp files · 4318ac1b
      Elvis Angelaccio authored
      When opening-with an entry we currently tell kioexec to autoremove the given
      URL, but we actually remove this file in the Part destructor.
      This results in kioexec sleeping for 3 minutes and then displaying an annoying
      'about to delete <URL>' message, if Ark is started from terminal.
  3. 22 May, 2016 1 commit
  4. 15 May, 2016 1 commit
    • Elvis Angelaccio's avatar
      Fix i18n for edit-comment action · 6b9bc44d
      Elvis Angelaccio authored
      - add context to explain that 'Edit Comment' and 'Add Comment' are mutually
      - use 'Add Comment' as default text when no archive is loaded
  5. 03 May, 2016 1 commit
    • 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
  6. 30 Apr, 2016 1 commit
    • Ragnar Thomsen's avatar
      Add support for editing/adding archive comments · 04d56afa
      Ragnar Thomsen authored
      Support was added for editing comments in supported archive types
      (currently only RAR). A new bool was added to plugin json files
      ("SupportsWriteComment") to indicate support. A new action was added and
      is found in Archive menu. The editing of comment is done in the same
      QPlainTextEdit used to display comments before. When user modifies
      comment, a KMessageWidget pops up with a "Save" button. Actual saving of
      comment to archive is achieved by a new job type: CommentJob.
      FEATURE: 357594
      FIXED-IN: 16.08.0
      Differential Revision: D1493
  7. 22 Apr, 2016 1 commit
  8. 21 Apr, 2016 1 commit
  9. 17 Apr, 2016 1 commit
  10. 14 Apr, 2016 1 commit
    • Elvis Angelaccio's avatar
      part: connect to KJob::finished instead of result when registering jobs · 02d26d42
      Elvis Angelaccio authored
      The Part used to emit the signal ready upon receiving the KJob::result signal,
      on jobs completion.
      After commit a537c5ee, the Part would not receive anymore this signal after
      killing a ListJob. According to the KJob docs, this is probably due
      to a change in the event loop behavior (due to CliInterface now being in the main
      thread) which cause the job to be deleted before than expected.
      The finished signal is always guaranteed to be emitted (upon
      jobs destruction), so it makes sense to use it instead, in this specific case.
      Task: T2225
  11. 09 Apr, 2016 1 commit
    • Ragnar Thomsen's avatar
      Implement GUI to set compression level for new archives · f222a505
      Ragnar Thomsen authored
      Three new int's were added to plugin json files specifying minimum,
      maximum and default compression level for each readwrite mimetype. A new
      KCollapsibleGroupBox with a QSlider was added to CreateDialog to allow
      setting the compression level.
      FEATURE: 148702
      FIXED-IN: 16.08
      Differential Revision: D1364
  12. 20 Mar, 2016 2 commits
  13. 19 Mar, 2016 3 commits
  14. 18 Mar, 2016 1 commit
    • Elvis Angelaccio's avatar
      part: use KMessageWidgets for errors about invalid input · b8f5b90f
      Elvis Angelaccio authored
      When the user opens (from Dolphin) an archive whose plugin is not available,
      the feedback is currently very annoying:
      - a KMessageBox pops up with the error message
      - the user closes the message box
      - an empty (and useless) Ark window shows up
      This patch replaces the KMessageBoxes with KMessageWidgets, so that the 3 steps
      above are merged into 1.
      This patch also move the input validation code from Part::openFile() to a new
      Part::isLocalFileValid() method.
      Differential Revision: D1167
  15. 17 Mar, 2016 1 commit
  16. 15 Mar, 2016 1 commit
  17. 14 Mar, 2016 1 commit
    • Elvis Angelaccio's avatar
      Hide status bar on idle · 0f539042
      Elvis Angelaccio authored
      The Ark status bar is useful only during jobs, when showing the job's
      progress bar. With this patch we show the status bar only during a job, saving screen
      space otherwise.
      This patch also removes the "Show Statusbar" checkbox from the Settings
      menu, which does not make sense anymore to have.
      Differential Revision: D1141
  18. 12 Mar, 2016 2 commits
    • Elvis Angelaccio's avatar
      Don't list non-existing archives · 496b7686
      Elvis Angelaccio authored
      This issue was supposed to be fixed by commit e5fcaedc,
      but actually that patch only addressed the Archive::list() issued by the Part/ArchiveModel.
      This patch generalizes the check for the "private" Archive::list() calls as well.
      This slightly changes the expected values in the unit test for the properties of
      a non-existing archive.
      Differential Revision: D1133
    • Elvis Angelaccio's avatar
      Improve password-protection status in the properties dialog · 2dd4b816
      Elvis Angelaccio authored
      An archive could be just password-protected but also header-encrypted.
      This is now displayed to the user in the properties dialog.
      Differential Revision: D1124
  19. 11 Mar, 2016 1 commit
  20. 10 Mar, 2016 1 commit
  21. 09 Mar, 2016 2 commits
    • Elvis Angelaccio's avatar
      Simplify mimetypes handling · 7595cd79
      Elvis Angelaccio authored
      Now that we have the Archive::mimeType() function, we can use it to return
      directly a QMimeType object, which simplifies a lot many places in the code.
      This also adds the QMimeType::comment() in the properties dialog, since it's
      more user-friendly.
      Differential Revision: D1096
    • 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
  22. 08 Mar, 2016 1 commit
  23. 07 Mar, 2016 1 commit
  24. 29 Feb, 2016 2 commits
    • Elvis Angelaccio's avatar
      Fix regressions with extraction of selected entries · 952c82da
      Elvis Angelaccio authored
      Backport of c401afeb from master.
      BUG: 359628
      FIXED-IN: 15.12.3
    • Elvis Angelaccio's avatar
      CliInterface: use temp dir only for drag-and-drop extractions · c401afeb
      Elvis Angelaccio authored
      Currently Ark uses a temporary extraction directory when a cliplugin extracts
      only some selected files (i.e. when the CliInterface::copyFiles() functions gets a non-empty list of files).
      This is wrong. This was meant for drag-and-drop extractions only,
      where the fileRootNodePair struct is used (in CliInterface::moveToFinalDest) to remove the root node from the dropped
      entries. If the user performs a normal extraction via the extraction dialog,
      the current behavior introduce some unintended regressions (see commit
      The proper way to fix this is to explicitly tell the plugin when we want to
      perform a drag-and-drop extraction, in which case the temp dir will be used.
      CCBUG: 359628
  25. 24 Feb, 2016 2 commits
    • Elvis Angelaccio's avatar
      Replace statusTips with toolTips · 9493a83d
      Elvis Angelaccio authored
      According to the HIG in [1], KDE applications are not supposed to display
      advisory messages in the status bar, in place of tooltips.
    • Elvis Angelaccio's avatar
      Introduce new Extract actions · 2cd1d594
      Elvis Angelaccio authored
      Now that we have introduced the new Archive and File menus, it makes sense to introduce
      different Extract actions as well, one for each menu:
      1. The Extract action in the Archive menu, which always extracts the whole
         archive (even if the user selected some file).
      2. The Extract action in the File menu, which is only enabled if some file
         has been selected, and extracts only those files.
      The Extract action in the toolbar is the very same Extract
      action that Ark currently provides: it allows to extract the whole
      archive, or only the selected files (if any).
      Differential Revision: D795
  26. 09 Feb, 2016 2 commits
    • Elvis Angelaccio's avatar
      Disable Save As action if no archive is open · be4ab34e
      Elvis Angelaccio authored
      It does not make sense to enable the Save As action if no archive is open in
      Ark. In this case the Save As dialog currently shows an error message, no matter what the
      user does.
    • Elvis Angelaccio's avatar
      Rename the Action menu as File menu · ea1528c1
      Elvis Angelaccio authored
      This renames the 'Action' menu as 'File' menu, since the actions in there mostly apply
      to files within the archive. Now there is a clear distinction between
      actions that only apply to the archive (in the 'Archive' menu) and actions that
      apply to the files in the archive.
      Differential Revision: D790
  27. 24 Jan, 2016 1 commit
  28. 22 Jan, 2016 1 commit
  29. 14 Jan, 2016 1 commit
    • Elvis Angelaccio's avatar
      Rename the File menu as Archive menu · 7f83b412
      Elvis Angelaccio authored
      Since an archive is a file that contains other files, the current Ark menu
      structure can be confusing. The File menu currently contains actions regarding the
      archive, while the Action menu contains actions regarding the files within the
      This patch renames the File menu as Archive menu, to reduce this ambiguity.
      Task: T915
      Differential Revision: D788
  30. 11 Jan, 2016 1 commit
    • Elvis Angelaccio's avatar
      Disable open-file actions if there are multiple selections · a0a52701
      Elvis Angelaccio authored
      Preview, Open File and Open File With actions are mapped to
      Part::slotOpenEntry, which currently supports extraction of a single entry.
      The Preview action is correctly enabled only with single selections, and the
      same now applies for the two Open actions.
  31. 02 Jan, 2016 1 commit
    • Elvis Angelaccio's avatar
      Don't run a ListJob when creating a new archive · e5fcaedc
      Elvis Angelaccio authored
      Currently if we create a new archive using the New action, Ark creates a
      ListJob which is obviously going to fail, since the archive does not exist yet.
      Previously Ark would just ignore such failing jobs, but with Ark 15.12 the
      clirar plugin actually parses the error message of unrar as a valid comment.
      We can solve the problem at the root and only run a ListJob if the archive to
      be listed actually exists.
      Differential Revision: D712
  32. 27 Dec, 2015 1 commit