| Age | Commit message (Collapse) | Author |
|
While the documention says to port to QFontMetrics::horizontalAdvance(),
what we actually need is not the horizontal advance, but the width of
the text. So we need to port to QFontMetrics::boundingRect().width().
Quoting from https://kdepepo.wordpress.com/2019/08/05/about-deprecation-of-qfontmetricswidth/:
"Since it was not clear from the confusingly named function QFontMetrics::width()
that it actually returned the horizontal advance, instead of the bounding width,
this method is now obsolete.
You must port to either QFontMetrics::horizontalAdvance() or QFontMetrics::boundingRect().width().
Please make sure you are aware of the difference, and do not port
blindly. I am pretty sure that in most cases
QFontMetrics::boundingRect() is what you want, unless you are writing
custom text shaping/layouting code. Using the wrong function can cause
clipped text or text that suddenly wraps to the next line despite
calculating the width that it needs."
|
|
We need to pass the pixmap by address, not by reference.
|
|
|
|
Summary:
Tweak behavior introduced in D19471.
BUG: 404955
Test Plan:
Before:
{F8325282}
After:
{F8325283}
{F8325284}
Reviewers: ngraham, #dolphin, elvisangelaccio, #vdg
Reviewed By: ngraham, #dolphin, elvisangelaccio, #vdg
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D29794
|
|
GIT_SILENT
|
|
loader scale it
I noticed that depending on the configured icon size it would spend a significant amount of time in KPixmapModifier::scale.
I don't see a point in requesting a fixed icon size and then scale it down manually as opposed to having the KIconLoader do the scaling for us.
Especially for SVGs it could then even serve us a properly rendered SVG for this size rather than a scaled down pixmap version.
Differential Revision: https://phabricator.kde.org/D22116
|
|
|
|
Summary:
This ensures that the filename extension is always visible, and also is just a
nicer way to elide file and folder names in general.
BUG: 404955
FIXED-IN: 19.12.0
Test Plan:
Details view: {F6648784}
Icons view with limited label height: {F6648785}
Reviewers: #dolphin, #vdg, elvisangelaccio, GB_2
Reviewed By: #dolphin, #vdg, elvisangelaccio, GB_2
Subscribers: GB_2, ndavis, rooty, elvisangelaccio, kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D19471
|
|
GIT_SILENT
|
|
Ensures the overlay is painted in the same icon state, especially the selected one so dark overlays turn white.
Differential Revision: https://phabricator.kde.org/D16307
|
|
Fixes a regression introduced by not using the selected state.
The views other than icon view actually do have a proper highlighted background.
Differential Revision: https://phabricator.kde.org/D15387
|
|
Otherwise for 22px icons on high dpi we will request either the wrong icons or scale them needlessly.
Dolphin requests a pixmap of 22px, this is then multiplied by dpr resulting in 44 which isn't a valid icon size (only 32 or 48 are).
Moreover, we will also hit the path where it will scale the pixmap to a proper icon size resulting in blurry icons
(and a performance penalty).
Differential Revision: https://phabricator.kde.org/D15260
|
|
This causes selected monochrome Breeze icons to turn white as this state is meant for when the icon is actually painted ontop of
e.g. a blue highlighted area in a menu
Since the advanced icon configuration (where you could choose a custom hint color and other effects) has been removed in Plasma 5.13
and more importantly the fact that Dolphin always tints the icon in the highlight color disregarding any custom icon effects settings
this is an acceptable change.
CHANGELOG: Fixed monochrome icons turning invisible when selected
BUG: 398014
FIXED-IN: 18.08.2
Differential Revision: https://phabricator.kde.org/D15255
|
|
There be rounding errors when scaling pixmaps when keeping aspect ratio
Differential Revision: https://phabricator.kde.org/D11319
|
|
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`.
|
|
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
|
|
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
|
|
Differential Revision: https://phabricator.kde.org/D10324
|
|
devicePixelRatio > 1
Translate the position by devicePixelRatio
REVIEW: 129084
|
|
|
|
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
|
|
We can colorize icons based on the user's palette, so clear the pixmap cache when it changes.
Differential Revision: https://phabricator.kde.org/D3937
|
|
Since now the breeze icons can be recolored by kiconloader
with svg stylesheets, use this feature to recolor the
currently selected icon in the sidebar and in the
details view (not the icon view)
look wouldn't change if used with icon themes that
don't support this feature
This makes it look more in line with the breeze style
REVIEW:127877
|
|
The default fallback of QIcon::fromTheme() is QIcon(), i.e. a null icon.
Set the generic "unknown" icon as fallback to prevent missing icons for
filetypes that specify an icon name that doesn't exist.
This also gets rid of "QPixmap::scaled: Pixmap is a null pixmap"
warnings in that case.
BUG: 358958
BUG: 361034
FIXED-IN: 16.04.1
REVIEW: 127713
|
|
REVIEW: 126771
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW: 120688
|
|
|
|
|
|
REVIEW: 120159
|
|
Conflicts:
dolphin/src/dolphinmainwindow.cpp
dolphin/src/dolphinmainwindow.h
dolphin/src/dolphinrecenttabsmenu.cpp
dolphin/src/dolphinviewcontainer.cpp
kfind/CMakeLists.txt
|
|
BUG: 337104
FIXED-IN: 4.14.0
REVIEW: 119546
|
|
|
|
This commit removes the icon tinting for the selected item in Compact
and Details View, and extends the selection rectangle such that it
includes the icon area as well. The icon tinting can be disturbing, and
having a selection rectangle that only includes the text can look a bit
strange, especially in the Places Panel.
BUG: 304643
REVIEW: 119018
FIXED-IN: 4.14.0
|
|
|
|
|
|
By separating the width and height info, we can save some unnecessary
overhead in terms of memory and CPU cycles, and make the calculation of
the height of a row (or the width of a column in Compact View) a bit
simpler.
To achieve this, this patch extends the concept of "logical rows"
(which are actually columns in Compact View) to "logical width" and
"logical height" (which is the actual height and width, respectively, in
Compact View). The distinction between rows/columns and "logical"
rows/columns may be a bit confusing, but the confusion is already in the
current code, and I hope that it will be mitigated a bit by prefixing
the corresponding variables with "logical".
REVIEW: 118454
|
|
Since the master branch had never been merged into frameworks since the
creation of the frameworks branch, I had to fix a couple of merge
conflicts and make another change in order to make it build - I hope I
did not get anything wrong.
We should probably merge master into frameworks on a regular basis from
now on.
CCMAIL:[email protected]
Conflicts:
dolphin/src/dolphinmainwindow.cpp
dolphin/src/search/dolphinfacetswidget.cpp
dolphin/src/statusbar/dolphinstatusbar.cpp
dolphin/src/views/dolphinview.cpp
|
|
This conversion was performed automatically using convert2qt5signalslot.
The only manual changes required were changing the overloaded signal
KDirLister::redirection and KDirLister::completed from KUrl to QUrl. All
other cases were no problem since these signals are not overloaded and a
static_cast for disambiguation is not necessary.
Code inside HAVE_BALOO is not converted yet, will do that once I can build
a version with Baloo.
|
|
|
|
The icons of items which are "cut" are shown faded in the view. The
"is cut" state of the widget representing an item is updated if the
clipboard contents change. Before this commit, if the sort order was
changed however, then each widget kept the "is cut" state of the item
which had been shown previously at its position.
The solution is to update the "is cut" state also if any of the
widget's data change.
BUG: 332792
REVIEW: 117451
FIXED-IN: 4.12.5
|
|
compact mode
FIXED-IN: 4.13.0
BUG: 326210
BUG: 310592
REVIEW: 116121
|
|
If the user sets a maximum number of text lines in the settings, this
number was translated into a maximum height in pixels using
QFontMetrics::lineSpacing() before this commit.
In KStandardItemListWidgetInformant::itemSizeHint(), this maximum height
limited the size that is reserved for the item.
However, in KStandardItemListWidget::updateIconsLayoutTextCache(), the
maximum height was translated back into a maximum number of lines,
which limits the number of lines that are created using the QTextLayout.
This approach could lead to problems if the real height of the layouted
text is 1 pixel more or less than QFontMetrics::lineSpacing() times
"number of lines".
Now we do not store a "maximum height" inside the "maximum size"
explicitly, but store a maximum number of lines and a maximum with (for
Compact View) separately, and then use the number of lines also to
calculate the required size in
KStandardItemListWidgetInformant::itemSizeHint(). This should make sure
that the correct height is reserved for each item.
Thanks to Christoph Feck and Emmanuel Pescosta for helping to debug this
problem and testing the patch.
BUG: 323841
FIXED-IN: 4.13
REVIEW: 113871
|
|
The speed up is really small, but theses changes are mostly straightforward and make the code a bit nicer - break
the KStandardItemListWidgetInformant::itemSizeHint beast into three smaller functions.
FIXED-IN: 4.13
REVIEW: 112979
|