| Age | Commit message (Collapse) | Author |
|
This avoids creating a QDateTime object with all the timezone processing that comes with it since we're only
interested in the actual pretty date once we show the role to the user.
Differential Revision: https://phabricator.kde.org/D14880
|
|
It was forgotten and would show up as ISO date string instead of human-readable string.
Differential Revision: https://phabricator.kde.org/D14878
|
|
This avoids creating a QDateTime object with all the timezone processing that comes with it since we're only interested in the
relative order, not absolute precise date time values.
CHANGELOG: Sorting files by date is significantly faster now
Differential Revision: https://phabricator.kde.org/D14394
|
|
Instead of using KIconLoader which currently doesn't support high dpi scaling, use QIcon::fromTheme which can.
Differential Revision: https://phabricator.kde.org/D14222
|
|
Summary: The KItemListViewAccessible class has a list of QAccessibleInterface pointers in a member variable m_cells. The problem is that when new entries are created, the newly allocated pointer is not stored in the list, only a nullptr is store, this renders the cleanup code in the destructor useless. This patch simply stores the pointer in the list, causing the destructor to correctly free the memory.
Test Plan: I found this issue using address sanitizer. Simply building Dolphin with -fsanitize=address and opening a window caused the memory leak.
Reviewers: #dolphin, jtamate, elvisangelaccio
Reviewed By: #dolphin, jtamate, elvisangelaccio
Subscribers: elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D14168
|
|
Summary:
Uses a reference to the collator instead of copying and reinitializing it again and again. This is the reason for the speedup.
Changing the implementation from a Functor class to a Lambda removes some boilerplate code, but is not relevant for performance.
This requires a workaround for https://bugreports.qt.io/browse/QTBUG-69361
Just a single comparison to force the clean state of QCollator.
Test Plan:
Sorting in a directory with 82874 images:
[TIME] Sorting: 19883 (before)
[TIME] Sorting: 4198 (after)
kfileitemmodelbenchmark before: .............. Passed 29.36 sec
kfileitemmodelbenchmark after: .............. Passed 20.39 sec
Reviewers: #dolphin, #frameworks, markg, elvisangelaccio, bruns
Reviewed By: #dolphin, markg, elvisangelaccio
Subscribers: elvisangelaccio, apol, bruns, markg, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D13814
|
|
Summary: This reverts commit 765cc968c9dfbd4350226b775377506135c0442d.
Test Plan: revert-hammer
Reviewers:
Subscribers:
|
|
Summary:
Use a lambda function to use only one QCollator initialized only once.
This requires a workaround for https://bugreports.qt.io/browse/QTBUG-69361
Just a single comparison to force the clean state of QCollator.
Test Plan:
Sorting in a directory with 82874 images:
[TIME] Sorting: 19883 (before)
[TIME] Sorting: 4198 (after)
kfileitemmodelbenchmark before: .............. Passed 29.36 sec
kfileitemmodelbenchmark after: .............. Passed 20.39 sec
Reviewers: #dolphin, #frameworks, markg, elvisangelaccio, bruns
Reviewed By: #dolphin, markg, elvisangelaccio
Subscribers: elvisangelaccio, apol, bruns, markg, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D13814
|
|
Follow-up to D11319 for e.g. folder previews
Differential Revision: https://phabricator.kde.org/D14047
|
|
There be rounding errors when scaling pixmaps when keeping aspect ratio
Differential Revision: https://phabricator.kde.org/D11319
|
|
I prefer to wait until QQCollator is thread safe or
someone discovers why this is happening now and not before.
Summary: This reverts commit 63825de82f3adc9376b0f0f27e24e21bccf62e2a.
Test Plan: revert-hammer
Reviewers:
Subscribers:
|
|
Summary:
Use a lambda function instead of a class.
This way the member QCollator is not copied and initialized several times.
Test Plan:
Sorting in a directory with 82874 images:
[TIME] Sorting: 19883 (before)
[TIME] Sorting: 4198 (after)
kfileitemmodelbenchmark before: .............. Passed 29.36 sec
kfileitemmodelbenchmark after: .............. Passed 20.39 sec
Reviewers: #dolphin, #frameworks, markg, elvisangelaccio
Reviewed By: #dolphin, markg, elvisangelaccio
Subscribers: elvisangelaccio, apol, bruns, markg, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D13814
|
|
|
|
|
|
QVariant::toString() unwraps a QStringList with a single string to a QString, however a list with multiple entries returns a null string.
Explicitly check for KFileMetaData property type and convert accordingly.
BUG: 395033
FIXED-IN: 18.04.3
Differential Revision: https://phabricator.kde.org/D13349
|
|
Use integer comparison for word count, line count, track, and release year.
BUG: 394355
Differential Revision: https://phabricator.kde.org/D12948
|
|
Summary:
This patch basically adds the check that would normally be done to the
itemInserted method, which seems to be good idea in general.
However, the fact that this is needed there might be an indicator of a logic bug
in the function – though, as I'm not familiar with the code base I cannot judge
this.
Test Plan:
Without this patch, dolphin when started from a terminal prints the following
warning (number can be different):
qt.accessibility.core: Cannot create accessible child interface for object: PlacesView(0x563e863e35c0) index: 10
After applying the patch, the warning doesn't appear anymore. Dolphin still
works still as it did before.
Reviewers: elvisangelaccio, #dolphin
Reviewed By: elvisangelaccio
Subscribers: #dolphin
Differential Revision: https://phabricator.kde.org/D11990
|
|
Summary:
This patch splits the single property "Image Size" into "Width" and "Height", providing more fine-tuned control for power users.
FEATURE: 374559
Test Plan:
- Sorting works correctly
- No real change, only exposed differently
Reviewers: #dolphin, elvisangelaccio, ngraham
Reviewed By: #dolphin, elvisangelaccio, ngraham
Subscribers: ngraham, elvisangelaccio
Differential Revision: https://phabricator.kde.org/D11816
|
|
As recommended by the clazy qstring-ref check.
|
|
Summary:
Adjust calculation of icon pixmap Y value; now based off center of text label bounding rectangle. Previously, icons appeared top-aligned when text size was larger than icon size.
Centering is done by obtaining the center point of the text frame (`m_textRect.center().y()`) and setting the top `Y` point of the icon to one-half of the scaled icon height (`m_scaled_PixmapSize.height()`) Division is done by `2.0`, to ensure calculations are done with floating-point math, in keeping with `QPointF`, which returns floating-point values.
Also includes an adjustment named `midlineShift` (contributed by @zzag), which takes into account the font's midline in respect to the center of the text frame. Certain fonts (i.e. Noto Sans) can have a slightly offset midline, resulting in imperfect alignment of the icon. This small adjustment resolves that potential issue.
See before and after screenshots.
{F5764918}
Before, showing misalignment (with and without debugging wireframes)
{F5764920}
After, showing correction
BUG: 390771
Test Plan:
-- Compile Dolphin with patch
-- Increase system font size by several points (i.e. 15pt)
-- Check that Places panel icons remain centered with the text label
-- Select Compact View mode
-- Adjust icon size slider to minimum
-- Ensure that icons also remain centered in file listing
-- Check several combinations of icon size & font size to ensure centering is consistent
Reviewers: #dolphin, ngraham, cfeck, elvisangelaccio
Reviewed By: #dolphin, ngraham, elvisangelaccio
Subscribers: zzag, elvisangelaccio, #dolphin
Differential Revision: https://phabricator.kde.org/D11650
|
|
|
|
We were comparing a value of type `KStandardItemListView::ItemLayout`
with values of type `KStandardItemListWidget::Layout`.
|
|
emitting a change
This avoids work being done when it doesn't need to be.
For instance, the preview generator waits for everything to have settled using a 200ms timer before generating a preview.
This timer fired also in response to onStyleOptionChanged and needlessly delayed preview generation when navigating between folders
despite the style option (e.g. icon size, view mode) not having changed.
Differential Revision: https://phabricator.kde.org/D11481
|
|
Reviewers: markg, elvisangelaccio
Reviewed By: markg, elvisangelaccio
Subscribers: chehrlic, rkflx, elvisangelaccio, #dolphin
Differential Revision: https://phabricator.kde.org/D10995
|
|
This reverts commit 533f050855a50212bba7be57a1590f9ce743e26d.
D10995 has not been approved.
|
|
Summary: I used CLion inspection to hunt all unused #include
Reviewers: #dolphin, elvisangelaccio, markg
Reviewed By: #dolphin, elvisangelaccio, markg
Subscribers: bcooksley, markg, elvisangelaccio, #dolphin
Differential Revision: https://phabricator.kde.org/D10985
|
|
Reviewers: #dolphin, markg
Reviewed By: markg
Subscribers: elvisangelaccio, #dolphin
Differential Revision: https://phabricator.kde.org/D10995
|
|
Summary: I used CLion inspection to hunt all unused #include
Reviewers: #dolphin, elvisangelaccio, markg
Reviewed By: #dolphin, elvisangelaccio, markg
Subscribers: markg, elvisangelaccio, #dolphin
Differential Revision: https://phabricator.kde.org/D10985
|
|
Summary:
The check is called when the mouse is moved in a drag&drop operation.
Dragging all files in a directory with 3000 files under callgrind,
moving the mouse to the other panel and then canceling, doing it twice,
callgrind shows that the method urlListMatchesUrl is called around
200 times, spending around 9,30% of the cpu in those calls.
Applying the patch, callgrind tells it uses now 0.31% of the cpu in 1208 calls.
CCBUG: 342056
Reviewers: #dolphin, elvisangelaccio, markg
Reviewed By: #dolphin, elvisangelaccio, markg
Subscribers: markg, anthonyfieroni, michaelh, elvisangelaccio, ngraham
Differential Revision: https://phabricator.kde.org/D10085
|
|
Differential Revision: https://phabricator.kde.org/D10324
|
|
- "include own header first line"
- "put config.h in angle brackets line"
- "do not include QtModule/QtClass line"
`QElapsedTimer` was implicitly included by
kfileitemmodelsortalgorithm.h, now we need to explicitly include it in
kfileitemmodel.cpp.
We also need to explicitly link to `Qt5::Concurrent`, otherwise we
cannot `#include <QtConcurrentRun>`.
|
|
As recommended by krazy and as kio does.
|
|
|
|
As recommended by krazy.
GIT_SILENT
|
|
Summary:
CCBUG: 386379
after recent highdpi patches on scrolling that delegated it
completely to the scrollbar, based upon the scrollbar singleStep
setted to the tallest of the items in the view.
tough this makes scrolling way too fast, and on folders where just
few filenames are longer than most we can get a single scrolling
step almost double the number of lines configured in the
mouse kcm.
Using the shortest item instead of the tallest mitigates this problem
making it a bit more usable
Test Plan:
tested on different folders in different view modes both with
mouse and touchpad
Reviewers: #dolphin, broulik, ngraham
Reviewed By: #dolphin, ngraham
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10102
|
|
Summary:
Use the new QStyle::SH_Widget_Animation_Duration instead,
which allows us to not manually hardcode the duration.
We still use 1 if animations are disabled,
otherwise the scroll would not work at all.
See also D5883 for some background.
Test Plan: Played with different values in the Animation tab of the Breeze config dialog.
Reviewers: #dolphin, broulik
Reviewed By: broulik
Subscribers: broulik
Differential Revision: https://phabricator.kde.org/D10005
|
|
Summary:
Takes the original date a photo was taken out of the data provided by Baloo & makes it available to the user
FEATURE: 303645
{F5671033}
Test Plan:
- Works with a batch of time-tagged photos
- Can be hidden/shown/sorted like any other property
Reviewers: #dolphin, ngraham, elvisangelaccio
Reviewed By: #dolphin, ngraham, elvisangelaccio
Subscribers: elvisangelaccio, ngraham
Differential Revision: https://phabricator.kde.org/D10059
|
|
Conflicts:
CMakeLists.txt [versions]
src/panels/places/placesitemmodel.cpp
|
|
devicePixelRatio > 1
Translate the position by devicePixelRatio
REVIEW: 129084
|
|
Summary:
Currently the folderpanel is inert when browsing outside of home because urls end up as 'file:////a/b/c'
and since Qt 5.10 this is an invalid URL: http://code.qt.io/cgit/qt/qtbase.git/commit/?id=f62768d046528636789f901ac79e2cfa1843a7b7
Premptive bug fix.
Test Plan:
Open dolphin
Leave home directory
Reviewers: #dolphin, elvisangelaccio
Subscribers: dfaure, elvisangelaccio, ngraham, anthonyfieroni
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D9610
|
|
Summary:
Added an option on PlacesPanel context menu to show or hide the entire
group of places.
Depends on D8855
Test Plan: Open Donlphin and use PlacesPanel context menu to hide and show groups
Reviewers: franckarrecot, mlaurent, mwolff, elvisangelaccio
Reviewed By: franckarrecot, mlaurent, mwolff, elvisangelaccio
Subscribers: rkflx, mwolff, elvisangelaccio, ngraham, #dolphin
Differential Revision: https://phabricator.kde.org/D9242
|
|
Summary:
Use Kio::KPlacesModel as source model for PlacesItemModel avoiding
duplicated code.
Depends on D8862
Depends on D8332
Depends on D8434
Depends on D8348
Depends on D8630
Test Plan: Unit test created
Reviewers: elvisangelaccio, emmanuelp, mlaurent, mwolff
Reviewed By: elvisangelaccio, mlaurent, mwolff
Subscribers: mwolff, mlaurent, anthonyfieroni, nicolasfella, ngraham, #dolphin
Differential Revision: https://phabricator.kde.org/D8855
|
|
Looks like this is the result of a bad merge.
CCMAIL: [email protected]
|
|
|
|
|
|
Also use override instead of Q_DECL_OVERRIDE
|
|
Summary:
Scrolling during inline renaming accepts the renaming now, like if one would hit Return for example. I chose this approach because it seems the easiest way to fix this.
This also fixes the “possible” Ui glitch where the renaming KTextField doesn’t move along with the list item. Possible glitch, because I don’t know if this is intentional, but for me it looks broken.
BUG: 378786
Fixes T7443
Test Plan:
* Enable "Rename inline" in dolphin settings
* Go to a folder where you have to scroll through items (many files, big zoom,…)
* Start to rename a file (context menu, F2, …)
* Scroll with mouse wheel
* Rename accepted -> file is renamed
Reviewers: ngraham, rkflx, #dolphin, elvisangelaccio
Reviewed By: ngraham, rkflx, #dolphin, elvisangelaccio
Subscribers: anthonyfieroni, elvisangelaccio, #dolphin
Maniphest Tasks: T7443
Differential Revision: https://phabricator.kde.org/D8822
|
|
Summary:
Scrolling during inline renaming accepts the renaming now, like if one would hit Return for example. I chose this approach because it seems the easiest way to fix this.
This also fixes the “possible” Ui glitch where the renaming KTextField doesn’t move along with the list item. Possible glitch, because I don’t know if this is intentional, but for me it looks broken.
BUG: 378786
Fixes T7443
Test Plan:
* Enable "Rename inline" in dolphin settings
* Go to a folder where you have to scroll through items (many files, big zoom,…)
* Start to rename a file (context menu, F2, …)
* Scroll with mouse wheel
* Rename accepted -> file is renamed
Reviewers: ngraham, rkflx, #dolphin, elvisangelaccio
Reviewed By: ngraham, rkflx, #dolphin, elvisangelaccio
Subscribers: anthonyfieroni, elvisangelaccio, #dolphin
Maniphest Tasks: T7443
Differential Revision: https://phabricator.kde.org/D8822
|
|
Summary: Follow-on patch to D7440 to use KConfig::readEntry()'s default argument properly to reduce some unnecessary code
Test Plan: Tested in KDE Neon. no regressions; by default, all plugins are enabled if the key is not set, and if it is set, user changes to the list are remembered
Reviewers: #dolphin, elvisangelaccio, dfaure, apol
Reviewed By: #dolphin, elvisangelaccio, apol
Differential Revision: https://phabricator.kde.org/D8846
|
|
Summary:
BUG: 338492
BUG: 350212
By default, turn on all preview plugins and turn on previews themselves.
Depends on D8347
Test Plan:
Tested this change in an up-to-date KDE Neon: removed the existing dolphinrc file, deployed Dolphin with the change, and observed that previews are now turned on for all file types for which a plugin exists except for text files, which are in the blacklist because they're mostly useless at nearly all icon sizes (still available in case people want them, though).
Here's how Dolphin's main window looks by default now in KDE Neon:
{F5441184}
(You may notice that there are no previews for the video files; that's because Neon doesn't ship with any plugins for them, so that would be expected at this point)
And here is how the Settings > General > Preview window looks like now by default:
{F5435391}
Reviewers: #dolphin, #vdg, markg, abetts, dfaure, aseigo, elvisangelaccio
Reviewed By: #vdg, abetts, dfaure, elvisangelaccio
Subscribers: abetts, cfeck, andreaska, emmanuelp, andreask, markg, broulik, anthonyfieroni, davidedmundson, ltoscano, dfaure, elvisangelaccio, #konqueror
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D7440
|