Fix typos
src: Yearly copyright bump This time on time!
client: Workaround initial backlog fetch scrolling Workaround ChatView scrolling somewhere into the middle when first fetching enough backlog for the vertical scrollbar to become visible. This happened before when fetching backlog by scrolling, but due to initial backlog fetching was less noticeable. A proper fix would be nicer, but this workaround seems to work for now. Feel free to tear this out later!
client: Optionally ensure backlog on buffer show Add a default-enabled option to ensure backlog is available when showing a buffer, using the same logic as scrolling up in a buffer whenever switching to a buffer. No additional messages will be fetched if the scrollbar is already visible. This makes using Quassel without any initial backlog fetching more convenient, as you don't need to scroll upon clicking every buffer. Note: if all loaded messages are filtered out, nothing will appear to be visible on the first showing, and more backlog will be fetched the next time the buffer is shown (or if scrolled, like before). This happens with Quassel today already, anyways, but implementing "fetch until visible" be a good future improvement, mirroring what Quasseldroid does.
src: Yearly copyright bump Let's welcome 2020.
qa: Avoid deprecation warnings for QList/QSet conversions Qt 5.14 deprecated the explicit functions for converting between QSet and QList, preferring instead the use of range-based ctors. Unfortunately, those ctors were only added in Qt 5.14, so we can't use them when compiling against older versions. Add a util function for QList->QSet to keep the version check in a single place. Replace the other direction by using QSet::values(). In some cases, conversions could be avoided altogether, or an STL container be used easily, so do that.
Add missing includes For std::sort we should include <algorithm>.
Replace deprecated qSort with std::sort
src: Yearly copyright bump ... and it's still January!
modernize: Reformat ALL the source... again! It's been more than six years since we last used an autoformatter on the codebase. Tooling has progressed, so has the language and of course our personal preferences. Use clang-format this time to reformat the whole codebase, following the rules laid out in .clang-format (which one can use for configuring an IDE, too, if it supports autoformatting). Overall, the new style is not too different from what we used before, with one significant change: We now attach pointer/reference indicators (*&) to the type rather than the name, i.e. we left-align. While this is a major deviation from the Qt style which we use for almost everything else, it aligns more closely with many other projects, as well as the C++ documentation and STL. It also makes more sense semantically, because */& are really part of the type. Other changes include (but are not limited to): - Use only one blank line between function definitions - Categorize includes from generic/system to local, sorting each category alphabetically. The generic-to-local sort order seems to be more common than the other way round, so we use that. - In .cpp files, the corresponding header is always included first. This is a general recommendation, because it makes it harder to accidentally introduce a reliance on transitive includes in headers. - Consistently break initializers in ctors before the comma, so the commas are left-aligned together with the colon. - Use two spaces between code and trailing comments. Note that sometimes even clang-format gets things wrong. In a few places, formatting was manually fixed; however, reviewing a diff of almost 80k lines is a rather boring task, so we didn't thoroughly go through all the changes. Wrong formatting can always be fixed in follow-up commits, anyway. Note also that we don't intend to re-run clang-format on a regular basis, nor do we want to religiously follow a hardcoded set of rules for new code in the future. Where it makes sense, the rules may be bent in favor of better readability or more pleasing code.
clazy: Convert many old-style connects into function pointer based Since Qt5, signal/slot connections can be expressed using function pointers rather than the SIGNAL/SLOT macros. This is a) much more efficient, and b) provides a compile-time check for the sender and receiver being compatible. Let clazy auto-fix old-style connects where it can. However, a lot of occurrences remain where we'll need manual intervention for one reason or another.
modernize: Use braced-init list when returning types
modernize: Use auto where the type is clear from context Apply clang-tidy's modernize-use-auto fix, which uses auto where the type would otherwise be duplicated in the line (e.g. when casting a type, or creating an instance with 'new').
modernize: Use nullptr Let clang-tidy fix all occurrences where nullptr should be used instead of 0.
qt4-b-gone: Remove all code supporting Qt < 5.5 and KDE4 Remove compatibility code for Qt versions we no longer support.
Semi-yearly copyright bump It's no longer 2016.
Check touch device type on TouchEvents Check the touch device type to prevent touch pads from being handled as touch screens. No check required on TouchUpdate and TouchEnd, because if TouchBegin is not accepted (return true) no following TouchUpdate/End Events are received.
Some cleanups Closes GH-187.
Documentation and some fixed indentations
Change Selection Behaviour Before: (slow) double tap for selection After: start movement horizontal