- 25 Sep, 2020 1 commit
-
-
Laurent Montel authored
-
- 12 Apr, 2020 1 commit
-
-
Ragnar Thomsen authored
Reimplement hasBatchExtractionProgress() in LibzipPlugin so progress works when batch-extracting. Partially resolves bug 382599. CCBUG: 382599 Differential Revision: D28722
-
- 19 Jun, 2019 1 commit
-
-
Laurent Montel authored
-
- 02 Jun, 2019 2 commits
-
-
Elvis Angelaccio authored
Evolution of b1a251eb. We no longer want to distinguish between libarchive and libzip. If there are crashes in libarchive because of this new kill logic, we need to fix them.
-
Elvis Angelaccio authored
Instead of having each derived class declaring it as private member.
-
- 16 Feb, 2019 1 commit
-
-
Elvis Angelaccio authored
This is a sort of "slot", while the current name make it look like a signal.
-
- 31 Oct, 2018 1 commit
-
-
Alexander Volkov authored
Summary: Use zip_register_progress_callback_with_state() that was introduced in libzip 1.3 (we already require this version). Pass 0.001 as precision because this value is used for old zip_register_progress_callback() inside libzip. Also pass nullptr as a free function, because 'this' doesn't need to be freed. Reviewers: #ark, elvisangelaccio Reviewed By: #ark, elvisangelaccio Subscribers: elvisangelaccio, kde-utils-devel, #ark Tags: #ark Differential Revision: https://phabricator.kde.org/D16276
-
- 14 Oct, 2018 1 commit
-
-
Elvis Angelaccio authored
List shouldn't be used as default value for initializations.
-
- 25 Feb, 2018 1 commit
-
-
Elvis Angelaccio authored
The libzip plugin sometimes cannot react to `QThread::requestInterruption()` because there is a blocking `zip_close()` which writes to disk (e.g. with AddJobs). This means we have to manually abort the thread (by passing a timeout to `QThread::wait()` in `Job::doKill()`. We cannot do this uconditionally because we would end up with crashes in libarchive. Since the libarchive plugin is not affected by this problem, we rework the logic in `Job::doKill()` by assuming that the interface will tell us whether it needs to be brutally killed. This way we can distinguish between the libarchive and the libzip plugins (the ones that use a worker thread). The mutex in this patch is needed because in theory `m_operationMode` could be read and written by different threads at the same time, even though that's unlikely. BUG: 389290 FIXED-IN: 18.03.80 Task: T7824
-
- 21 Oct, 2017 1 commit
-
-
Ragnar Thomsen authored
Permissions are read and set in the external attributes. BUG: 382815 FIXED-IN: 17.12.0 Differential Revision: D8305
-
- 19 Mar, 2017 2 commits
-
-
Elvis Angelaccio authored
The `virtual` keyword is useless when `override` is also used. Patch generated by: run-clang-tidy.py -header-filter='.*' -checks='-*,modernize-use-override' -fix
-
Elvis Angelaccio authored
Patch generated by: git grep -l 'Q_DECL_OVERRIDE' | xargs sed -i 's/Q_DECL_OVERRIDE/override/g'
-
- 16 Mar, 2017 1 commit
-
-
Ragnar Thomsen authored
A new plugin for libzip was added. The plugin is only built if libzip 1.20 or higher is installed, but is the preferred plugin for zip archives. FEATURE: Differential Revision: D5039
-
- 02 Dec, 2016 1 commit
-
-
Elvis Angelaccio authored
Use them only when actually required, e.g. for part's interface.h in the app/ subfolder. This also prevents the usage of the unconsistent "kerfuffle/" prefix in the includes.
-
- 27 Nov, 2016 1 commit
-
-
Elvis Angelaccio authored
BatchExtractJob runs a LoadJob first and an ExtractJob after, which results in two different progress bars in the notification tray. This patch changes how the percentage is computed: the first 50% is from the LoadJob, the 2nd 50% from the ExtractJob. This ensures that only one progress bar shows up while the wrapper job is running. This will only work if the interface is able to report progress for both LoadJobs and ExtractJobs (currently only libarchive and clirar). Differential Revision: D3518
-
- 02 Nov, 2016 1 commit
-
-
Elvis Angelaccio authored
LoadJob::onNewEntry() receives an Entry pointer. When we kill a LoadJob, the libarchive plugin deletes all the emitted entries, so onNewEntry() (which is queued in the events) gets a pointer that points to already free'ed memory. This patch just delays the deletion of entries by using deleteLater(). This ensures that all the pending slots are executed first. Differential Revision: D3143
-
- 17 Oct, 2016 1 commit
-
-
Ragnar Thomsen authored
Progress is now also shown in percentage for Addjob, CopyJob, DeleteJob and MoveJob for archives handled by LibarchivePlugin. This was a bit tricky due to libarchive always iterating the whole archive and means that the plugin needs to know the total number of existing archive entries. A new member variable m_numberOfEntries was added to ReadOnlyArchiveInterface, which holds the total number of entries in the archive. The variable is kept up-to-date by incrementing/decrementing it whenever the entry and entryRemoved signals are emitted by a plugin. This necessitated a slight rework of the handling of MoveJob and CopyJob by LibarchivePlugin because these emitted entry when iterating over the old entries. The new approach should also be more efficient. The two Archive members m_numberOfFiles and m_numberOfFolders were removed. ReadOnlyArchiveInterface::addFiles() got an additional argument of type uint that holds the number of entries to be added. Differential Revision: D3072
-
- 12 Oct, 2016 1 commit
-
-
Elvis Angelaccio authored
Entry objects are created by the plugins, so it is wrong to delete them from other places. If the plugins run in the main thread, we can just set a parent to the entries. Otherwise (in the libarchive case) we need to manually delete them. Closes T3988 Differential Revision: D3027
-
- 11 Oct, 2016 1 commit
-
-
Elvis Angelaccio authored
We never prepend to QList, so there is no reason for not using the more efficient QVector.
-
- 09 Oct, 2016 1 commit
-
-
Ragnar Thomsen authored
A new property was added to Archive to store detected compression method(s). Currently, it's only displayed in PropertiesDialog, but the plan is to also use it to select a sane default compression method when adding files to an existing archive. Code was added to all plugins for detecting the compression method(s) when opening an archive and a signal added to ReadOnlyArchiveInterface to set the property. Many archive types support multiple compression methods in same archive, so the property is a QStringList. Differential Revision: D2987
-
- 14 Sep, 2016 1 commit
-
-
Elvis Angelaccio authored
The `m_abortOperation` global variable was set by the main thread and read by the secondary thread, i.e. undefined behavior. QThread::requestInterruption() and isInterruptionRequest() are instead safe because they use a QMutexLocker. Tested only with ListJobs, are other type of jobs are currently broken (see e.g. bugs #365869 and #365870). Closes T3598
-
- 15 Aug, 2016 1 commit
-
-
Vladyslav Batyrenko authored
See: https://phabricator.kde.org/T917
-
- 17 Jul, 2016 1 commit
-
-
Vladyslav Batyrenko authored
- Refactor fileRootNodePair into Archive::Entry - Make ArchiveInterface API receive Archive::Entry See: https://phabricator.kde.org/T2566
-
- 03 May, 2016 1 commit
-
-
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
-
- 30 Apr, 2016 1 commit
-
-
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 GUI: Differential Revision: D1493
-
- 23 Apr, 2016 1 commit
-
-
Elvis Angelaccio authored
We use the m_abortOperation flag in the same way ListJob does (see commit acb455da). We also need to remove the disconnect() in the Job destructor, which makes Ark crash if we stop an AddToArchive job. This disconnect() looks like a relic of the past (see e.g. commit 15fce6f5) and doesn't seem really necessary. Note that the CliInterface jobs still need to be fixed. So do batch extract jobs, which are KCompositeJobs and currently ignore the kill button in the systray. CCBUG: 222392 Differential Revision: D1466
-
- 08 Mar, 2016 1 commit
-
-
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.
-
- 18 Nov, 2015 2 commits
-
-
Ragnar Thomsen authored
Handle errors when extracting, adding and deleting by emitting the error signal which makes Part display an error message. Previously, errors were only output to console. A new query (ContinueExtractionQuery) was added. This query is used when an error occurs when extracting an entry to ask the user if the extraction should be aborted. A checkbox is available to ignore further errors. An extra argument was added to copyData() so the filename of the entry that failed can be output to console. This commit is partly based on work done by Raphael in RR123832. Differential Revision: D471
-
Elvis Angelaccio authored
-
- 14 May, 2014 1 commit
-
-
Albert Astals Cid authored
Track running jobs in JobTracker. On its destruction (i.e. UI is going down) we kill and delete (which waits for finishing) those jobs. Tested with very big tar.gz (libarchive plugin) and .zip (cliplugin) and it closes without crashing now Acked by rakuco BUGS: 193908 FIXED-IN: 4.13.2 REVIEW: 118108
-
- 27 Jul, 2010 5 commits
-
-
Raphael Kubo da Costa authored
Instead of stat'ing the files ourselves and then copying the information to the archive_entry, we now use archive_read_disk to read and store more information (including user/group names when available) from the files. svn path=/trunk/KDE/kdeutils/ark/; revision=1155722
-
Raphael Kubo da Costa authored
* In addFiles(), we don't need to manually create a new archive_entry, as it can be created and properly freed inside writeFile(). * In deleteFiles(), there is no need to manually allocate memory for an archive_entry either. svn path=/trunk/KDE/kdeutils/ark/; revision=1155721
-
Raphael Kubo da Costa authored
This helps us clean up the code, as we don't need to keep track of the exact places we need to free our pointers to avoid leaks. svn path=/trunk/KDE/kdeutils/ark/; revision=1155718
-
Raphael Kubo da Costa authored
SVN_SILENT svn path=/trunk/KDE/kdeutils/ark/; revision=1155716
-
Raphael Kubo da Costa authored
SVN_SILENT svn path=/trunk/KDE/kdeutils/ark/; revision=1155715
-
- 29 Dec, 2009 1 commit
-
-
Raphael Kubo da Costa authored
QDir::setCurrent() is called if global work dir is set, which ends up resolving symlinks automatically. Creating a QDir and calling relativeFilePath() on this object solves the problem. BUG: 191821 svn path=/trunk/KDE/kdeutils/ark/; revision=1067179
-
- 05 Jul, 2009 1 commit
-
-
Raphael Kubo da Costa authored
Kerfuffle::factory has been mostly rewritten and looks cleaner. The constructor for ReadOnlyArchiveInterface had to be changed because of K_EXPORT_PLUGIN as well, so all plugins had to change their constructor signature too. svn path=/trunk/KDE/kdeutils/ark/; revision=991479
-
- 12 Jun, 2009 1 commit
-
-
Raphael Kubo da Costa authored
svn path=/trunk/KDE/kdeutils/ark/; revision=980565
-
- 10 Jun, 2009 1 commit
-
-
Raphael Kubo da Costa authored
svn path=/trunk/KDE/kdeutils/ark/; revision=979512
-
- 08 Jun, 2009 1 commit
-
-
Raphael Kubo da Costa authored
svn path=/trunk/KDE/kdeutils/ark/; revision=979018
-