ecm_set_disabled_deprecation_versions() in versions < 5.96 was brokwn
when it comes to SHOW_DEPRECATIONS, warnings for newer deprecations
were disabled if the flag was set or not.
Starting with ECM 5.96 the macro now enables warnings by default,
so the flag is no longer needed.
GIT_SILENT
This change removes some application attributes that are not necessary anymore (like disabling the global menu bar) or make Konsole behave slightly different when used from a KPart (e.g. inside Kate), and changes some keyboard shortcuts around (mainly using Command instead of Ctrl+Shift now.)
Unfortunately this does not resolve the requirement for the special keytab file for macOS; it looks like Qt does something funny with the QKeyEvents here: on Linux these have a `text` attribute set to e.g. `\u0003` for `^C`, that attribute is empty on macOS.
Note this could impact shortcut changes on non-macOS systems.
This flag is used for cells where the background is not drawn
unlike RE_CONCEAL, which draws background, but not foreground.
This flag is used for cells where an unmanaged image is placed.
And rename DefaultPropertyNames to DefaultProperties.
Default profile properties are now specified in the DefaultProperties
container directly, which simplifies creating the Built-in profile, and
keeps the properties info in one place.
- Name, Path: are empty by default, and set to the special values of the
built-in profile in useBuiltin()
- Some properties have to be set at runtime, rather than compile time e.g.
Command, Font, DefaultEncoding.
To prevent URIs inside parentheses from getting extended to the closing
parenthesis, only recognize URIs with balanced parentheses in regname,
path, query and/or fragment. We still allow unbalanced parenthesis in
userInfo, since the postfix @ should prevent most ambiguous situations,
and the parenthesis can be part of a password.
CCBUG: 455166
This way we don't run the same migration stuff at every start.
This also fixes an issue with the widget colorscheme config entry; if the
old WindowColorScheme key isn't found an empty string is used to write the
new UiSettings/ColorScheme key.
Inspired by similar code in KIO (SystemBookMarks related code) and Dolphin.
When a line is reflowed then the vertical position of all
graphics placements above or below it (as appropriate) are
adjusted, so they remain in the same place relative to the
text lines.
A vector doesn't decay to pointer, so we can iterate over it with range-for
in Profile and ProfileReader/Writer without using pointers to array
elements, and a while loop that checks for the special element at the end
of the array to stop the loop. Also remove that dud element at the end of
DefaultPropertyNames.
std::array is a viable option, but the downside is we'd have to specify the
number of elements in it (as that's part of its type), and keeping that
number in sync when adding new properties could be problematic.
RegExpFilter::process() was going through all the screen lines for every
match. Instead, the second and next matches can start from the line
were the last match was found.
The query and fragment components can include question marks in them. As
an example, LDAP URIs have queries of the form:
["?" [attributes] ["?" [scope] ["?" [filter] ["?" extensions]]]]]]
so the following:
ldap://[2001:db8::7]/c=GB?objectClass?one
does a one-level deep query to the LDAP server at IPv6 address
2001:db8::7 for the children of object c=GB and returns their
objectClass attribute.
This allows recognizing URIs like the following:
http://[2a00:1450:4001:829::200e]/http://[2a00:1450:4001:829::200e]:80/
Our regexp is not as strict as the syntax in RFC 3986, we just allow any
combination of hex-digits, colons and dots.
Besides, we don't go to the effort of forbidding IP-literals in www. URI
suffixes, so the following invalid suffix is recognized by our regexp:
www.[dead::beef]
but that was already recognized by the old regexp before 3b7e73f5.
We recognize URIs that start with an scheme and a possibly empty
authority, and URI suffixes that start with "www."
In the case of URIs starting with an scheme, they are of the form:
scheme://[ userinfo "@" ] host ...
while "www." URI suffixes are of the form:
www. <rest of host> ...
where host is actually in reg-name form (not in IPv4address or
IP-literal form).
This commit allows more strict parsing of e.g.
www.example.com:foo@bar.com
as <URI>:<email> instead of as a long <URI>.
Apply the same fix at a6b2bd53 to demo_konsolepart:
Basically to use QWidget::windowHandle() to get a QWindow*, we need
to first set the Qt::WA_NativeWindow attribute on the QWidget. See:
https://phabricator.kde.org/D23108
It turns out that trailing spaces _are_ significant, e.g. when the
current rendition is set to underline. Gaps where appearing in
underlined text with spaces. To test, launch konsole with -p
BidiRenderingEnabled=false, and run:
printf '\e[4mtest under line foo ññññ ááá ééé '
which should show no gaps in underlining, and exercises both instances
of the "group non-wide characters with following spaces" code.
This got broken in 3b58e4a9ac when
multiple shortcut sequences were added to a single QKeySequence object,
rather than having a list with multiple QKeySequences in it. As a
result, the single QKeySequence object discarded all sequences after
the first, so the Ctrl+PageUp/PageDown shortcuts got discarded.
QT_MAJOR_VERSION is defined automatically by QtVersionOption (since ECM
5.82) which is included by KDEInstallDirs. For older ECM, if
QT_MAJOR_VERSION isn't already set, default to 5.
There is similar to what's used in polkit-qt-1 (which doesn't depend/use
ECM at all).
Otherwise the build would fail:
/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: ../lib/libkonsoleprivate_core.a(ShellCommand.cpp.o): warning: relocation against `_ZN7QString6_emptyE@@Qt_6' in read-only section `.text'
/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: ../lib/libkonsoleprivate_core.a(ShellCommand.cpp.o): relocation R_X86_64_PC32 against symbol `_ZN10QByteArray6_emptyE@@Qt_6' can not be used when making a shared object; recompile with -fPIC
/usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld: final link failed: bad value
This seems to affect both STATIC and OBJECT CMake library types.