src: Yearly copyright bump This time on time!
src: Yearly copyright bump Let's welcome 2020.
src: Yearly copyright bump ... and it's still January!
qa: Remove dead code
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.
modernize: Use override instead of virtual Let clang-tidy fix all occurrences where override should be used instead of virtual. Also, let it annotate member functions where virtual was missing in the first place.
modernize: Use nullptr Let clang-tidy fix all occurrences where nullptr should be used instead of 0.
src: Mark symbols to be exported where needed Generate export headers for the Quassel modules, and mark all relevant classes and function to be exported so that shared libraries can be linked against without globally exporting all symbols. This is a hard requirement for Windows DLLs, and more efficient on other platforms, too. For now, this was done incrementally until everything linked properly. In the future, we may consider explicitly defining the public interfaces for each module, and trying to minimize the linker interface e.g. by PIMPLing.
qt4-b-gone: Remove all code supporting Qt < 5.5 and KDE4 Remove compatibility code for Qt versions we no longer support.
Minor cleanup of BufferView Fix some nitpicks.
Allow selecting the search result when searching for buffers If multiple buffers are displayed when filtering by name, allow selecting one of the using the up/down keys. This makes it possible to jump to a buffer other than the topmost.
Semi-yearly copyright bump It's no longer 2016.
Lock Buffer- and Nick-Lists too Fixes #1465
Remove old 'remove buffer' KeyPress code Since commit 9f33f6e4 a 'hide current buffer' shortcut is available. This is the global application shortcut like Sput referenced in http://bugs.quassel-irc.org/issues/668 Keeping a hard-coded KeyPress event doing the same seems unnecessary. Users have also expressed dislike in the use of 'Backspace' for this buffer removal. Unintentional buffer removals are often for some. This commit removes the 'KeyPress' event and cleans up the 'hideCurrentBuffer' code, removing commented (un-needed) code. Reference: http://bugs.quassel-irc.org/issues/1403 Fixes #1403. Closes GH-299.
Fix expanding networks in Chat Monitor settings Update the network expanded/collapsed state when setting a model, including filtered models. This fixes the Chat Monitor settings page not updating the expanded and collapsed networks on first load. It might be excessive to apply on every model change; if performance issues arise, it can be moved to BufferView::setFilteredModel() or elsewhere. Add comments! Resolves GH-271.
Add action/shortcut to use the buffer filter/search
Make the buffer search optional, disable by default
Add buffer filtering support.
Some cleanups Closes GH-187.
Refactoring: Pull Up Duplicate Code The event override for NickView and BufferView was Copy&Paste. To reduce duplicate code i moved that to a new class (TreeViewTouch) now between QTreeView and the mentioned Classes.