- 25 Sep, 2020 1 commit
-
-
Laurent Montel authored
-
- 14 Mar, 2020 1 commit
-
-
Nicolas Fella authored
Summary: Building the icons datastructure is the most significant bottleneck when opening large archives. Knowing all the icons at loading time is unnecessary since most elements won't be visible anyway. This patch moves the icon storing into the Entry class where it is lazily determined the first time it is accessed. This improves the initial archive loading time significantly. Test Plan: It's hard to give exact numbers, but my main test archive (the Android NDK) went from ~3 seconds to load to "pretty much instant" Reviewers: #ark, elvisangelaccio Reviewed By: #ark, elvisangelaccio Subscribers: broulik, kde-utils-devel Tags: #ark Differential Revision: https://phabricator.kde.org/D26357
-
- 03 Mar, 2020 1 commit
-
-
Laurent Montel authored
-
- 02 Jan, 2020 3 commits
-
-
Nicolas Fella authored
Summary: Creating the QRegularExpression is expensive and cleanFileName is called for each entry. By not re-creating the regex we gain a significant archive load time improvement Test Plan: {F7786657} Left is before, right is after. Note the red block on the left that isn't present on the right Reviewers: #ark, elvisangelaccio Reviewed By: #ark, elvisangelaccio Subscribers: elvisangelaccio, kde-utils-devel Tags: #ark Differential Revision: https://phabricator.kde.org/D25565
-
Nicolas Fella authored
Landed the wrong branch This reverts commit b9e0da8c.
-
Nicolas Fella authored
Summary: Creating the QRegularExpression is expensive and cleanFileName is called for each entry. By not re-creating the regex we gain a significant archive load time improvement Test Plan: {F7786657} Left is before, right is after. Note the red block on the left that isn't present on the right Reviewers: #ark, elvisangelaccio Reviewed By: #ark, elvisangelaccio Subscribers: elvisangelaccio, kde-utils-devel Tags: #ark Differential Revision: https://phabricator.kde.org/D25565
-
- 15 Dec, 2019 1 commit
-
-
Nicolas Fella authored
Summary: The sizes from KIconLoader are considered to go away in KF6 Test Plan: Open archive. Icons in file view are properly sized Reviewers: #ark, elvisangelaccio Reviewed By: #ark, elvisangelaccio Subscribers: broulik, kde-utils-devel Tags: #ark Maniphest Tasks: T11637 Differential Revision: https://phabricator.kde.org/D25378
-
- 03 Dec, 2019 1 commit
-
-
Laurent Montel authored
-
- 18 Nov, 2019 1 commit
-
-
Nicolas Fella authored
Summary: We don't need to convert the icon which is loaded by name to a pixmap here. The conversion happens later in the DecorationRole data() call. Test Plan: Open archive. Icons in the file list appear and are properly sized. Trigger overwrite dialog. Icons appear and are properly sized. Verified performance improvement with hotspot (see highlighted entries) before: {F7770370} after: {F7770371} Reviewers: #ark, elvisangelaccio Reviewed By: #ark, elvisangelaccio Subscribers: elvisangelaccio, kde-utils-devel Tags: #ark Differential Revision: https://phabricator.kde.org/D25377
-
- 20 Oct, 2019 1 commit
-
-
Elvis Angelaccio authored
Tell the users why they can't drop remote URLs, instead of just blocking the drop event without feedback. CCBUG: 409835
-
- 24 Sep, 2019 1 commit
-
-
Yuri Chornoivan authored
-
- 28 Jul, 2019 1 commit
-
-
Natsumi Higa authored
Summary: When creating a RAR 5.0 archive, BLAKE2sp can be used instead of CRC32 for file checksums. This diff adds an entry for BLAKE2 file checksum. Test Plan: Attached is a RAR 5.0 archive using BLAKE2sp file checksums. {F6875541} Reviewers: #ark, elvisangelaccio Subscribers: #ark, kde-utils-devel Tags: #ark Differential Revision: https://phabricator.kde.org/D21637
-
- 19 Jun, 2019 1 commit
-
-
Laurent Montel authored
-
- 01 Jun, 2019 1 commit
-
-
Laurent Montel authored
Summary: Port to for(...:...) Reviewers: elvisangelaccio Reviewed By: elvisangelaccio Subscribers: kde-utils-devel, #ark Tags: #ark Differential Revision: https://phabricator.kde.org/D21515
-
- 12 May, 2019 1 commit
-
-
Ragnar Thomsen authored
Currently, we use the first entry in an archive to determine which columns to show. If the first entry happens to be a directory, then all relevant columns might not be shown. Make sure we always check the first file entry for columns to show. BUG: 406135 FIXED-IN: 19.04.2 Differential Revision: D20683
-
- 20 Sep, 2018 1 commit
-
-
Laurent Montel authored
-
- 17 Jul, 2018 1 commit
-
-
Elvis Angelaccio authored
Compression options set by CreateDialog were only taken into account when adding files through the AddDialog, but not when adding files by dropping them from Dolphin. We fix this issue by moving the init of compression options in a new dedicated function, which we can call also when dropping files. While at it, this change allows us to simplify the `droppedFiles()` signal emitted by ArchiveModel. BUG: 396579 FIXED-IN: 18.07.80
-
- 02 Jul, 2018 1 commit
-
-
Laurent Montel authored
-
- 22 Oct, 2017 1 commit
-
-
Elvis Angelaccio authored
GIT_SILENT
-
- 19 Mar, 2017 2 commits
-
-
Elvis Angelaccio authored
Path generated by: git grep -l 'Q_NULLPTR' | xargs sed -i 's/Q_NULLPTR/nullptr/g'
-
Elvis Angelaccio authored
Patch generated by: cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. run-clang-tidy.py -header-filter='.*' -checks='-*,modernize-use-nullptr' -fix
-
- 13 Feb, 2017 1 commit
-
-
Elvis Angelaccio authored
ArchiveModel was setting 0 as Size with singlefile archives, because the singlefile plugin doesn't report the uncompressed size. This patch removes the Size column if the size property is 0 but the compressedSize one is higher than 0, which cannot happen. As compressedSize for singlefile entries, we just set the size of the archive. BUG: 376225 FIXED-IN: 16.12.3 Differential Revision: D4536
-
- 22 Dec, 2016 1 commit
-
-
Elvis Angelaccio authored
childrenCount() was called only after we already retrieved the entry from the index. This means that this function has nothing to do with the model and can be moved to Archive::Entry.
-
- 19 Dec, 2016 1 commit
-
-
Ragnar Thomsen authored
Commit 7781d6ef broke sorting in the sense that folders are no longer sorted before files. This is due to KRecursiveFilterProxyModel's implementation of sort() being used instead of ArchiveModel's. We now subclass KRecursiveFilterProxyModel into ArchiveFilterSortModel so we can re-implement lessThan() and move the relevant code from ArchiveModel::sort(). Differential Revision: D3742
-
- 02 Dec, 2016 2 commits
-
-
Elvis Angelaccio authored
GIT_SILENT
-
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.
-
- 08 Nov, 2016 1 commit
-
-
Elvis Angelaccio authored
Make it a class member instead. This is now possible since we no longer have the ArchiveModelSorter class. While at it, use directly QByteArray instead of converting from QString. Differential Revision: D3272
-
- 07 Nov, 2016 1 commit
-
-
Elvis Angelaccio authored
GIT_SILENT
-
- 05 Nov, 2016 2 commits
-
-
Elvis Angelaccio authored
We can just use a local lambda instead. This will allow to drop the static `propertiesList` QMap (see D3272). Differential Revision: D3271
-
Elvis Angelaccio authored
std::stable_sort should be used instead, as recommended by the documentation.
-
- 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 3 commits
-
-
Elvis Angelaccio authored
The previous bool was confusing. Now the enum clearly says what the code does.
-
Elvis Angelaccio authored
-
Elvis Angelaccio authored
We never prepend to QList, so there is no reason for not using the more efficient QVector.
-
- 06 Oct, 2016 1 commit
-
-
Ragnar Thomsen authored
When listing archives Ark currently waits until the LoadJob is done to process the entries. This causes a lag (>7 seconds for large archives on fast systems) after the LoadJob has completed until the ArchiveView is ready. This diff causes ArchiveModel to start processing entries while the LoadJob is running. This results in the view being ready <1 second after LoadJob completes. Differential Revision: D2948
-
- 02 Oct, 2016 3 commits
-
-
Ragnar Thomsen authored
This property was meant for storing file-specific comments as supported by e.g. the zip format. However, it was not used by any of the plugins.
-
Ragnar Thomsen authored
Syntax and comment cleanup. Optimize Archive::Entry: Remove one unneeded QString member variable. Saves a few megabytes of memory when opening large archives.
-
Elvis Angelaccio authored
Ark currently loads an archive by using `Archive *Archive::create()` first and then `ListJob *archive->list()`. If an archive property is read *before* list() is called, the archive is listed in the background with listIfNotListed(). This design is responsible for a lot or problems (see T1877, T3296 and T330). This commit refactors ListJob in a new LoadJob class. Is not possible anymore to create an archive and then list() it. Instead, a LoadJob is started first and then the archive can be retrieved at the end of the job. Differential Revision: D2811
-
- 01 Oct, 2016 1 commit
-
-
Ragnar Thomsen authored
In some archives parent folders of some files might not be part of the archive themselves, i.e. the archive does not contain separate entries for them. In this case ArchiveModel creates ArchiveDirNodes for the folders. However, the FileName and InternalID properties of these folders do not get a trailing slash. This results in faulty root nodes leading to e.g. broken drag-n-drop extraction of files within these folders. This diff simply appends a traling slash to the properties in ArchiveModel::parentFor(). BUG: 367549 FIXED-IN: 16.08.2 Differential Revision: D2909
-