Fix most of critical issues reported by Sonar (GTK client) (#2309)

* (C++) Macros should not be used to define constants

* (C++) Memory should not be managed manually

* (C++) "void*" should not be used in typedefs, member variables, function parameters or return type

* (C++) When the "Rule-of-Zero" is not applicable, the "Rule-of-Five" should be followed

* (C++) "switch" statements should have "default" clauses

* (C++) "explicit" should be used on single-parameter constructors and conversiosn operators

* (C++) Non-const global variables should not be used
This commit is contained in:
Mike Gelfand
2021-12-14 11:43:27 +03:00
committed by GitHub
parent 7015f48798
commit 3e072f9bd4
82 changed files with 459 additions and 287 deletions

View File

@@ -31,13 +31,13 @@
namespace
{
#define N_RECENT 4
auto const MaxRecentDestinations = size_t{ 4 };
std::list<std::string> get_recent_destinations()
{
std::list<std::string> list;
for (int i = 0; i < N_RECENT; ++i)
for (size_t i = 0; i < MaxRecentDestinations; ++i)
{
auto const key = gtr_sprintf("recent-download-dir-%d", i + 1);
@@ -65,8 +65,8 @@ void save_recent_destination(Glib::RefPtr<Session> const& core, std::string cons
/* add it to the front of the list */
list.push_front(dir);
/* save the first N_RECENT directories */
list.resize(N_RECENT);
/* save the first MaxRecentDestinations directories */
list.resize(MaxRecentDestinations);
int i = 0;
for (auto const& d : list)
{
@@ -88,6 +88,8 @@ class OptionsDialog::Impl
public:
Impl(OptionsDialog& dialog, Glib::RefPtr<Session> const& core, std::unique_ptr<tr_ctor, void (*)(tr_ctor*)> ctor);
TR_DISABLE_COPY_MOVE(Impl)
private:
void sourceChanged(Gtk::FileChooserButton* b);
void downloadDirChanged(Gtk::FileChooserButton* b);