Fix typos
src: Yearly copyright bump This time on time!
[PR-540] Allow loading backlog in reverse direction
src: Yearly copyright bump Let's welcome 2020.
core: Replace QList by std::vector in the storage API QList is inefficient and deprecated; also Qt containers have issues with ranged-for and STL algorithms. Use std::vector instead in the storage API and fix affected code. Modernize some affected bits by replacing weird loops with STL algorithms.
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.
common: Simplify SyncableObject macros and usage Since the C++11 standard defines "__func__", and modern versions of MSVC support this, we can remove the workaround for MSVC from the SyncableObject macros. It is no longer necessary to derive the function name from MSVC's __FUNCTION__ (which contains the enclosing class name), and thus the _classNameOffset__ function declared by the SYNCABLE_OBJECT macro is no longer needed. Repurpose the macro to define the syncMetaObject() member function instead, and remove the no-longer needed INIT_SYNCABLE_OBJECT macro. The syncMetaObject() function is used by the signal proxy for accessing the metaObject() of the base class in case there are client- or core-specific specializations of a syncable object; i.e. if you have Foo directly inheriting from SyncableObject, and ClientFoo derived from Foo, the function must only be declared in Foo, otherwise syncing won't work. Thus, the SYNCABLE_OBJECT macro declares the function as final, so it can't be accidentally overridden. While we're at it, replace include guards with #pragma once in files we touched.
Implement type-filtered backlog fetching Add new backlog fetching methods that only return messages of the specified types. This allows clients to only fetch the types of messages that they need, e.g. if join/part/quit is hidden. This is not yet used in Quassel itself, but third-party clients including QuasselDroid use this for better performance on limited bandwidth networks. Signed-off-by: Janne Koschinski <janne@kuschku.de> Closes GH-339.
Semi-yearly copyright bump It's no longer 2016.
Bring copyright headers into 2016 That took some time...
Use prefix operators when possible for non-primitive types This affects mostly iterators.
Happy New Year!
Happy New Year!
Yearly bump It's 2013, baby!
Fix ALL the license headers! Many of our license headers had the wrong date, some of them inconsistent formatting, all of them the wrong address for the FSF (which apparently moved since 2005), and also neither the GNU Blank Public License nor the GNU Highlight Public License actually exist.
Reformat ALL the source! Yes, yes. After stubborningly refusing to switch to a more readable coding style for years, I finally give in. Our old, quite compact, 2-indent style was born from my time with homecomputers, where every whitespace was a waste. Later (and mostly thanks to EgS), I did see the light, e.g. changed from one-letter variable names to useful ones, but still shied away from reformatting the whole source, touching every line, destroying the historical context as shown by svn and git blame. However, since I'm now doing Qt-related programming as my day job, and use a proper (Qt-like) coding style there, it has become increasingly annoying for myself to switch to another style in those long hacking nights working on Quassel, and so I decided to Just Do Itâ„¢. Helps that Git nowadays can ignore whitespace changes when blaming, or diffing, or patching, so this shouldn't be too much of an annoyance for existing patches. Feedback from the community was also positive... So now we use a style that should be pretty close to the Qt Coding Style [1], which not only covers the indentation, but also things like newline-after-function-head. Reformatting was done automagically using uncrustify [2], a script and config file is in scripts/manage/. Please don't run it over the whole codebase again, as there are some false positives and weird formattings that will have to be manually fixed over time. You can use it for reformatting existing patches or MRs, though. [1] http://qt-project.org/wiki/Qt_Coding_Style [2] http://uncrustify.sourceforge.net/
Fix initial backlog for buffers with no new messages
small fixes
Fitting the SyncableObjects to the new Style ... now that was tiresome...