1. Use FeatureSummary module to show configuration results.
2. Invert option()/find_package() relationship: instead of
calling find_package(... REQUIRED) when option is set, rely on optional
find package call and PackageName_FOUND variable.
3. Refactor handling options that result in simple preprocessor defines
(actually copy the snippet from libtorrent) so that everything is done
in a single function call.
4. Populate target properties in order to get rid of
include_directories() calls.
* NaturalCompare now returns compare result instead of "less than" result
* Change to stable sort in GUI components
* Add Utils::String::naturalLessThan() helper function
* Use Qt::CaseSensitivity type
ArticleListWidget::handleArticleList() can be called inside
ArticleListWidget::handleArticleAboutToBeRemoved() and list widget
item can be removed at this point. Now we checking for it existence.
Closes#6896.
Revert back old behavior (incorrect but, perhaps, more user-friendly),
when Unread list populates with "unread" articles only but then it can
contain "read" articles if they become "read" when Unread list is shown.
Arguments include adding torrents as paused/started, skiping hash check, setting category, downloading in sequential order, downloading first and last pieces first, and skipping the 'add new torrent' dialog. Added TriStateBoolOption class for specifying options that don't have a default value when unused (e.g. add-paused). Also improved command line usage text to include more information, have better organization, and not exceed 80 columns in width. Also also added firstLastPiecePriority field to BitTorrent::AddTorrentData, and modified TorrentHandle so that if first/last piece priority should be on, it will be toggled on after the torrent's metadata has loaded.