diff --git a/gtk/actions.cc b/gtk/Actions.cc similarity index 98% rename from gtk/actions.cc rename to gtk/Actions.cc index e8676de0a..15a6b81c7 100644 --- a/gtk/actions.cc +++ b/gtk/Actions.cc @@ -15,16 +15,16 @@ #include -#include "actions.h" -#include "conf.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "Actions.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" namespace { -TrCore* myCore = nullptr; +Session* myCore = nullptr; void action_cb(Glib::RefPtr const& a, void* user_data) { @@ -176,7 +176,7 @@ Gtk::UIManager* myUIManager = nullptr; } // namespace -void gtr_actions_set_core(Glib::RefPtr const& core) +void gtr_actions_set_core(Glib::RefPtr const& core) { myCore = gtr_get_ptr(core); } diff --git a/gtk/actions.h b/gtk/Actions.h similarity index 92% rename from gtk/actions.h rename to gtk/Actions.h index 8f52df25f..b347df1ce 100644 --- a/gtk/actions.h +++ b/gtk/Actions.h @@ -10,14 +10,14 @@ #include -#include "tr-core.h" +class Session; #define WINDOW_ICON "transmission-main-window-icon" #define TRAY_ICON "transmission-tray-icon" #define NOTIFICATION_ICON "transmission-notification-icon" void gtr_actions_init(Glib::RefPtr const& ui_manager, void* callback_user_data); -void gtr_actions_set_core(Glib::RefPtr const& core); +void gtr_actions_set_core(Glib::RefPtr const& core); void gtr_actions_handler(Glib::ustring const& action_name, void* user_data); void gtr_action_activate(Glib::ustring const& action_name); diff --git a/gtk/application.cc b/gtk/Application.cc similarity index 98% rename from gtk/application.cc rename to gtk/Application.cc index e4a3227db..7f94641ed 100644 --- a/gtk/application.cc +++ b/gtk/Application.cc @@ -40,22 +40,22 @@ #include #include -#include "actions.h" -#include "application.h" -#include "conf.h" -#include "details.h" -#include "dialogs.h" -#include "hig.h" -#include "makemeta-ui.h" -#include "msgwin.h" -#include "open-dialog.h" -#include "relocate.h" -#include "stats.h" -#include "tr-core.h" -#include "tr-icon.h" -#include "tr-prefs.h" -#include "tr-window.h" -#include "util.h" +#include "Actions.h" +#include "Application.h" +#include "DetailsDialog.h" +#include "Dialogs.h" +#include "HigWorkarea.h" +#include "MainWindow.h" +#include "MakeDialog.h" +#include "MessageLogWindow.h" +#include "OptionsDialog.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "RelocateDialog.h" +#include "Session.h" +#include "StatsDialog.h" +#include "SystemTrayIcon.h" +#include "Utils.h" #define MY_CONFIG_NAME "transmission" @@ -145,7 +145,7 @@ private: bool update_model_loop(); void on_core_busy(bool busy); - void on_core_error(TrCore::ErrorCode code, Glib::ustring const& msg); + void on_core_error(Session::ErrorCode code, Glib::ustring const& msg); void on_add_torrent(tr_ctor* ctor); void on_prefs_changed(tr_quark key); @@ -179,7 +179,7 @@ private: sigc::connection refresh_actions_tag_; std::unique_ptr icon_; std::unique_ptr wind_; - Glib::RefPtr core_; + Glib::RefPtr core_; std::unique_ptr msgwin_; std::unique_ptr prefs_; std::vector error_list_; @@ -557,7 +557,7 @@ void Application::Impl::on_startup() gtr_pref_flag_set(TR_KEY_alt_speed_enabled, tr_sessionUsesAltSpeed(session)); gtr_pref_int_set(TR_KEY_peer_port, tr_sessionGetPeerPort(session)); - core_ = TrCore::create(session); + core_ = Session::create(session); /* init the ui manager */ ui_manager_ = Gtk::UIManager::create(); @@ -958,19 +958,19 @@ void Application::Impl::flush_torrent_errors() } } -void Application::Impl::on_core_error(TrCore::ErrorCode code, Glib::ustring const& msg) +void Application::Impl::on_core_error(Session::ErrorCode code, Glib::ustring const& msg) { switch (code) { - case TrCore::ERR_ADD_TORRENT_ERR: + case Session::ERR_ADD_TORRENT_ERR: error_list_.push_back(Glib::path_get_basename(msg)); break; - case TrCore::ERR_ADD_TORRENT_DUP: + case Session::ERR_ADD_TORRENT_DUP: duplicates_list_.push_back(msg); break; - case TrCore::ERR_NO_MORE_TORRENTS: + case Session::ERR_NO_MORE_TORRENTS: flush_torrent_errors(); break; diff --git a/gtk/application.h b/gtk/Application.h similarity index 100% rename from gtk/application.h rename to gtk/Application.h diff --git a/gtk/CMakeLists.txt b/gtk/CMakeLists.txt index 5ec4d7865..38aa9543d 100644 --- a/gtk/CMakeLists.txt +++ b/gtk/CMakeLists.txt @@ -68,55 +68,57 @@ if(ENABLE_NLS) endif() set(${PROJECT_NAME}_SOURCES - actions.cc - application.cc - conf.cc - details.cc - dialogs.cc - favicon.cc - file-list.cc - filter.cc - hig.cc - icons.cc + Actions.cc + Application.cc + DetailsDialog.cc + Dialogs.cc + FaviconCache.cc + FileList.cc + FilterBar.cc + FreeSpaceLabel.cc + HigWorkarea.cc + IconCache.cc main.cc - makemeta-ui.cc - msgwin.cc - notify.cc - open-dialog.cc - relocate.cc - stats.cc - torrent-cell-renderer.cc - tr-core.cc - tr-icon.cc - tr-prefs.cc - tr-window.cc - util.cc + MainWindow.cc + MakeDialog.cc + MessageLogWindow.cc + Notify.cc + OptionsDialog.cc + Prefs.cc + PrefsDialog.cc + RelocateDialog.cc + Session.cc + StatsDialog.cc + SystemTrayIcon.cc + TorrentCellRenderer.cc + Utils.cc ${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.c ) set(${PROJECT_NAME}_HEADERS - actions.h - application.h - conf.h - details.h - dialogs.h - favicon.h - file-list.h - filter.h - hig.h - icons.h - makemeta-ui.h - msgwin.h - notify.h - open-dialog.h - relocate.h - stats.h - torrent-cell-renderer.h - tr-core.h - tr-icon.h - tr-prefs.h - tr-window.h - util.h + Actions.h + Application.h + DetailsDialog.h + Dialogs.h + FaviconCache.h + FileList.h + FilterBar.h + FreeSpaceLabel.h + HigWorkarea.h + IconCache.h + MainWindow.h + MakeDialog.h + MessageLogWindow.h + Notify.h + OptionsDialog.h + Prefs.h + PrefsDialog.h + RelocateDialog.h + Session.h + StatsDialog.h + SystemTrayIcon.h + TorrentCellRenderer.h + Utils.h ${CMAKE_CURRENT_BINARY_DIR}/transmission-resources.h ) diff --git a/gtk/details.cc b/gtk/DetailsDialog.cc similarity index 99% rename from gtk/details.cc rename to gtk/DetailsDialog.cc index 372339984..01d976b69 100644 --- a/gtk/details.cc +++ b/gtk/DetailsDialog.cc @@ -20,22 +20,22 @@ #include #include /* tr_free */ -#include "actions.h" -#include "conf.h" -#include "details.h" -#include "favicon.h" /* gtr_get_favicon() */ -#include "file-list.h" -#include "hig.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "Actions.h" +#include "DetailsDialog.h" +#include "FaviconCache.h" /* gtr_get_favicon() */ +#include "FileList.h" +#include "HigWorkarea.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" using namespace std::literals; class DetailsDialog::Impl { public: - Impl(DetailsDialog& dialog, Glib::RefPtr const& core); + Impl(DetailsDialog& dialog, Glib::RefPtr const& core); ~Impl(); void set_torrents(std::vector const& torrent_ids); @@ -148,7 +148,7 @@ private: Gtk::Label* file_label_ = nullptr; std::vector ids_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; sigc::connection periodic_refresh_tag_; Glib::Quark const TORRENT_ID_KEY = Glib::Quark("tr-torrent-id-key"); @@ -2570,12 +2570,12 @@ DetailsDialog::Impl::~Impl() periodic_refresh_tag_.disconnect(); } -std::unique_ptr DetailsDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) +std::unique_ptr DetailsDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) { return std::unique_ptr(new DetailsDialog(parent, core)); } -DetailsDialog::DetailsDialog(Gtk::Window& parent, Glib::RefPtr const& core) +DetailsDialog::DetailsDialog(Gtk::Window& parent, Glib::RefPtr const& core) : Gtk::Dialog({}, parent) , impl_(std::make_unique(*this, core)) { @@ -2583,7 +2583,7 @@ DetailsDialog::DetailsDialog(Gtk::Window& parent, Glib::RefPtr const& co DetailsDialog::~DetailsDialog() = default; -DetailsDialog::Impl::Impl(DetailsDialog& dialog, Glib::RefPtr const& core) +DetailsDialog::Impl::Impl(DetailsDialog& dialog, Glib::RefPtr const& core) : dialog_(dialog) , core_(core) { diff --git a/gtk/details.h b/gtk/DetailsDialog.h similarity index 80% rename from gtk/details.h rename to gtk/DetailsDialog.h index 96606b871..b34f0e8d8 100644 --- a/gtk/details.h +++ b/gtk/DetailsDialog.h @@ -14,19 +14,19 @@ #include #include -class TrCore; +class Session; class DetailsDialog : public Gtk::Dialog { public: ~DetailsDialog() override; - static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); + static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); void set_torrents(std::vector const& torrent_ids); protected: - DetailsDialog(Gtk::Window& parent, Glib::RefPtr const& core); + DetailsDialog(Gtk::Window& parent, Glib::RefPtr const& core); private: class Impl; diff --git a/gtk/dialogs.cc b/gtk/Dialogs.cc similarity index 97% rename from gtk/dialogs.cc rename to gtk/Dialogs.cc index b1bd5399c..ea1bb2e7b 100644 --- a/gtk/dialogs.cc +++ b/gtk/Dialogs.cc @@ -27,9 +27,9 @@ #include -#include "dialogs.h" -#include "tr-core.h" -#include "util.h" +#include "Dialogs.h" +#include "Session.h" +#include "Utils.h" /*** **** @@ -37,7 +37,7 @@ void gtr_confirm_remove( Gtk::Window& parent, - Glib::RefPtr const& core, + Glib::RefPtr const& core, std::vector const& torrent_ids, bool delete_files) { diff --git a/gtk/dialogs.h b/gtk/Dialogs.h similarity index 96% rename from gtk/dialogs.h rename to gtk/Dialogs.h index 1b6a0d373..ea9d5af3f 100644 --- a/gtk/dialogs.h +++ b/gtk/Dialogs.h @@ -26,13 +26,13 @@ #include -class TrCore; +class Session; /** * Prompt the user to confirm removing a torrent. */ void gtr_confirm_remove( Gtk::Window& parent, - Glib::RefPtr const& core, + Glib::RefPtr const& core, std::vector const& torrent_ids, bool delete_files); diff --git a/gtk/favicon.cc b/gtk/FaviconCache.cc similarity index 98% rename from gtk/favicon.cc rename to gtk/FaviconCache.cc index 594043f3a..8c01eb290 100644 --- a/gtk/favicon.cc +++ b/gtk/FaviconCache.cc @@ -13,8 +13,8 @@ #include #include /* tr_webRun() */ -#include "favicon.h" -#include "util.h" /* gtr_get_host_from_url() */ +#include "FaviconCache.h" +#include "Utils.h" /* gtr_get_host_from_url() */ namespace { diff --git a/gtk/favicon.h b/gtk/FaviconCache.h similarity index 100% rename from gtk/favicon.h rename to gtk/FaviconCache.h diff --git a/gtk/file-list.cc b/gtk/FileList.cc similarity index 98% rename from gtk/file-list.cc rename to gtk/FileList.cc index b1e6c0f5b..2acd6ac00 100644 --- a/gtk/file-list.cc +++ b/gtk/FileList.cc @@ -17,12 +17,12 @@ #include #include -#include "file-list.h" -#include "hig.h" -#include "icons.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "FileList.h" +#include "HigWorkarea.h" +#include "IconCache.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" #define TR_COLUMN_ID_KEY "tr-model-column-id-key" @@ -73,7 +73,7 @@ FileModelColumns const file_cols; class FileList::Impl { public: - Impl(FileList& widget, Glib::RefPtr const& core, int torrent_id); + Impl(FileList& widget, Glib::RefPtr const& core, int torrent_id); ~Impl(); void set_torrent(int torrent_id); @@ -97,7 +97,7 @@ private: private: FileList& widget_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; // GtkWidget* top_ = nullptr; // == widget_ Gtk::TreeView* view_ = nullptr; Glib::RefPtr store_; @@ -815,13 +815,13 @@ void FileList::Impl::cell_edited_callback(Glib::ustring const& path_string, Glib rename_data); } -FileList::FileList(Glib::RefPtr const& core, int torrent_id) +FileList::FileList(Glib::RefPtr const& core, int torrent_id) : Gtk::ScrolledWindow() , impl_(std::make_unique(*this, core, torrent_id)) { } -FileList::Impl::Impl(FileList& widget, Glib::RefPtr const& core, int torrent_id) +FileList::Impl::Impl(FileList& widget, Glib::RefPtr const& core, int torrent_id) : widget_(widget) , core_(core) { diff --git a/gtk/file-list.h b/gtk/FileList.h similarity index 84% rename from gtk/file-list.h rename to gtk/FileList.h index 19dd62646..f5423b8f2 100644 --- a/gtk/file-list.h +++ b/gtk/FileList.h @@ -12,12 +12,12 @@ #include -class TrCore; +class Session; class FileList : public Gtk::ScrolledWindow { public: - FileList(Glib::RefPtr const& core, int torrent_id); + FileList(Glib::RefPtr const& core, int torrent_id); ~FileList() override; void clear(); diff --git a/gtk/filter.cc b/gtk/FilterBar.cc similarity index 99% rename from gtk/filter.cc rename to gtk/FilterBar.cc index 0dcd16fcd..a1d8d5dd3 100644 --- a/gtk/filter.cc +++ b/gtk/FilterBar.cc @@ -16,11 +16,11 @@ #include #include -#include "favicon.h" /* gtr_get_favicon() */ -#include "filter.h" -#include "hig.h" /* GUI_PAD */ -#include "tr-core.h" /* MC_TORRENT */ -#include "util.h" /* gtr_get_host_from_url() */ +#include "FaviconCache.h" /* gtr_get_favicon() */ +#include "FilterBar.h" +#include "HigWorkarea.h" /* GUI_PAD */ +#include "Session.h" /* MC_TORRENT */ +#include "Utils.h" /* gtr_get_host_from_url() */ namespace { diff --git a/gtk/filter.h b/gtk/FilterBar.h similarity index 100% rename from gtk/filter.h rename to gtk/FilterBar.h diff --git a/gtk/FreeSpaceLabel.cc b/gtk/FreeSpaceLabel.cc new file mode 100644 index 000000000..a5261958d --- /dev/null +++ b/gtk/FreeSpaceLabel.cc @@ -0,0 +1,80 @@ +/* + * This file Copyright (C) 2008-2021 Mnemosyne LLC + * + * It may be used under the GNU GPL versions 2 or 3 + * or any future license endorsed by Mnemosyne LLC. + * + */ + +#include + +#include "FreeSpaceLabel.h" +#include "Session.h" +#include "Utils.h" + +class FreeSpaceLabel::Impl +{ +public: + Impl(FreeSpaceLabel& label, Glib::RefPtr const& core, std::string const& dir); + ~Impl(); + + void set_dir(std::string const& dir); + +private: + bool on_freespace_timer(); + +private: + FreeSpaceLabel& label_; + Glib::RefPtr const core_; + std::string dir_; + sigc::connection timer_id_; +}; + +FreeSpaceLabel::Impl::~Impl() +{ + timer_id_.disconnect(); +} + +bool FreeSpaceLabel::Impl::on_freespace_timer() +{ + auto* const session = core_->get_session(); + if (session == nullptr) + { + return false; + } + + auto const bytes = tr_sessionGetDirFreeSpace(session, dir_.c_str()); + auto const text = bytes < 0 ? _("Error") : gtr_sprintf(_("%s free"), tr_strlsize(bytes)); + auto const markup = gtr_sprintf("%s", text); + label_.set_markup(markup); + + return true; +} + +FreeSpaceLabel::FreeSpaceLabel(Glib::RefPtr const& core, std::string const& dir) + : Gtk::Label() + , impl_(std::make_unique(*this, core, dir)) +{ +} + +FreeSpaceLabel::~FreeSpaceLabel() = default; + +FreeSpaceLabel::Impl::Impl(FreeSpaceLabel& label, Glib::RefPtr const& core, std::string const& dir) + : label_(label) + , core_(core) + , dir_(dir) +{ + timer_id_ = Glib::signal_timeout().connect_seconds(sigc::mem_fun(this, &Impl::on_freespace_timer), 3); + on_freespace_timer(); +} + +void FreeSpaceLabel::set_dir(std::string const& dir) +{ + impl_->set_dir(dir); +} + +void FreeSpaceLabel::Impl::set_dir(std::string const& dir) +{ + dir_ = dir; + on_freespace_timer(); +} diff --git a/gtk/FreeSpaceLabel.h b/gtk/FreeSpaceLabel.h new file mode 100644 index 000000000..5f4d78ad7 --- /dev/null +++ b/gtk/FreeSpaceLabel.h @@ -0,0 +1,28 @@ +/* + * This file Copyright (C) 2008-2021 Mnemosyne LLC + * + * It may be used under the GNU GPL versions 2 or 3 + * or any future license endorsed by Mnemosyne LLC. + * + */ + +#include +#include + +#include +#include + +class Session; + +class FreeSpaceLabel : public Gtk::Label +{ +public: + FreeSpaceLabel(Glib::RefPtr const& core, std::string const& dir = {}); + ~FreeSpaceLabel() override; + + void set_dir(std::string const& dir); + +private: + class Impl; + std::unique_ptr const impl_; +}; diff --git a/gtk/hig.cc b/gtk/HigWorkarea.cc similarity index 98% rename from gtk/hig.cc rename to gtk/HigWorkarea.cc index 5eef6852b..723e114ac 100644 --- a/gtk/hig.cc +++ b/gtk/HigWorkarea.cc @@ -8,8 +8,8 @@ #include -#include "hig.h" -#include "util.h" +#include "HigWorkarea.h" +#include "Utils.h" HigWorkarea::HigWorkarea() { diff --git a/gtk/hig.h b/gtk/HigWorkarea.h similarity index 100% rename from gtk/hig.h rename to gtk/HigWorkarea.h diff --git a/gtk/icons.cc b/gtk/IconCache.cc similarity index 99% rename from gtk/icons.cc rename to gtk/IconCache.cc index 76896a65b..f2725462e 100644 --- a/gtk/icons.cc +++ b/gtk/IconCache.cc @@ -11,8 +11,8 @@ #include #include -#include "icons.h" -#include "util.h" +#include "IconCache.h" +#include "Utils.h" #define VOID_PIXBUF_KEY "void-pixbuf" diff --git a/gtk/icons.h b/gtk/IconCache.h similarity index 100% rename from gtk/icons.h rename to gtk/IconCache.h diff --git a/gtk/tr-window.cc b/gtk/MainWindow.cc similarity index 98% rename from gtk/tr-window.cc rename to gtk/MainWindow.cc index d61f0e792..75f3aa82d 100644 --- a/gtk/tr-window.cc +++ b/gtk/MainWindow.cc @@ -27,20 +27,20 @@ #include #include /* tr_formatter_speed_KBps() */ -#include "actions.h" -#include "conf.h" -#include "filter.h" -#include "hig.h" -#include "torrent-cell-renderer.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "tr-window.h" -#include "util.h" +#include "Actions.h" +#include "FilterBar.h" +#include "HigWorkarea.h" +#include "MainWindow.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "TorrentCellRenderer.h" +#include "Utils.h" class MainWindow::Impl { public: - Impl(MainWindow& window, Glib::RefPtr const& ui_mgr, Glib::RefPtr const& core); + Impl(MainWindow& window, Glib::RefPtr const& ui_mgr, Glib::RefPtr const& core); ~Impl(); Glib::RefPtr get_selection() const; @@ -94,7 +94,7 @@ private: Glib::RefPtr selection_; TorrentCellRenderer* renderer_ = nullptr; Gtk::TreeViewColumn* column_ = nullptr; - Glib::RefPtr const core_; + Glib::RefPtr const core_; sigc::connection pref_handler_id_; }; @@ -449,12 +449,12 @@ void MainWindow::Impl::onOptionsClicked(Gtk::Button* button) std::unique_ptr MainWindow::create( Gtk::Application& app, Glib::RefPtr const& uim, - Glib::RefPtr const& core) + Glib::RefPtr const& core) { return std::unique_ptr(new MainWindow(app, uim, core)); } -MainWindow::MainWindow(Gtk::Application& app, Glib::RefPtr const& ui_mgr, Glib::RefPtr const& core) +MainWindow::MainWindow(Gtk::Application& app, Glib::RefPtr const& ui_mgr, Glib::RefPtr const& core) : Gtk::ApplicationWindow() , impl_(std::make_unique(*this, ui_mgr, core)) { @@ -463,7 +463,7 @@ MainWindow::MainWindow(Gtk::Application& app, Glib::RefPtr const MainWindow::~MainWindow() = default; -MainWindow::Impl::Impl(MainWindow& window, Glib::RefPtr const& ui_mgr, Glib::RefPtr const& core) +MainWindow::Impl::Impl(MainWindow& window, Glib::RefPtr const& ui_mgr, Glib::RefPtr const& core) : core_(core) { static struct diff --git a/gtk/tr-window.h b/gtk/MainWindow.h similarity index 94% rename from gtk/tr-window.h rename to gtk/MainWindow.h index 808167342..26ef9fd70 100644 --- a/gtk/tr-window.h +++ b/gtk/MainWindow.h @@ -27,7 +27,7 @@ #include #include -class TrCore; +class Session; class MainWindow : public Gtk::ApplicationWindow { @@ -37,7 +37,7 @@ public: static std::unique_ptr create( Gtk::Application& app, Glib::RefPtr const& uim, - Glib::RefPtr const& core); + Glib::RefPtr const& core); Glib::RefPtr get_selection() const; @@ -45,7 +45,7 @@ public: void refresh(); protected: - MainWindow(Gtk::Application& app, Glib::RefPtr const& uim, Glib::RefPtr const& core); + MainWindow(Gtk::Application& app, Glib::RefPtr const& uim, Glib::RefPtr const& core); private: class Impl; diff --git a/gtk/makemeta-ui.cc b/gtk/MakeDialog.cc similarity index 96% rename from gtk/makemeta-ui.cc rename to gtk/MakeDialog.cc index 9d8b1d1a7..991efb6ed 100644 --- a/gtk/makemeta-ui.cc +++ b/gtk/MakeDialog.cc @@ -13,11 +13,11 @@ #include #include /* tr_formatter_mem_B() */ -#include "hig.h" -#include "makemeta-ui.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "HigWorkarea.h" +#include "MakeDialog.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" #define FILE_CHOSEN_KEY "file-is-chosen" @@ -31,7 +31,7 @@ public: Gtk::Window& parent, tr_metainfo_builder& builder, std::string const& target, - Glib::RefPtr const& core); + Glib::RefPtr const& core); ~MakeProgressDialog() override; private: @@ -43,7 +43,7 @@ private: private: tr_metainfo_builder& builder_; std::string const target_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; sigc::connection progress_tag_; Gtk::Label* progress_label_ = nullptr; @@ -55,7 +55,7 @@ private: class MakeDialog::Impl { public: - Impl(MakeDialog& dialog, Glib::RefPtr const& core); + Impl(MakeDialog& dialog, Glib::RefPtr const& core); private: void onSourceToggled2(Gtk::ToggleButton* tb, Gtk::FileChooserButton* chooser); @@ -78,7 +78,7 @@ private: private: MakeDialog& dialog_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; Gtk::RadioButton* file_radio_ = nullptr; Gtk::FileChooserButton* file_chooser_ = nullptr; @@ -195,7 +195,7 @@ MakeProgressDialog::MakeProgressDialog( Gtk::Window& parent, tr_metainfo_builder& builder, std::string const& target, - Glib::RefPtr const& core) + Glib::RefPtr const& core) : Gtk::Dialog(_("New Torrent"), parent, true) , builder_(builder) , target_(target) @@ -415,12 +415,12 @@ void MakeDialog::Impl::on_drag_data_received( drag_context->drag_finish(success, false, time_); } -std::unique_ptr MakeDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) +std::unique_ptr MakeDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) { return std::unique_ptr(new MakeDialog(parent, core)); } -MakeDialog::MakeDialog(Gtk::Window& parent, Glib::RefPtr const& core) +MakeDialog::MakeDialog(Gtk::Window& parent, Glib::RefPtr const& core) : Gtk::Dialog(_("New Torrent"), parent) , impl_(std::make_unique(*this, core)) { @@ -428,7 +428,7 @@ MakeDialog::MakeDialog(Gtk::Window& parent, Glib::RefPtr const& core) MakeDialog::~MakeDialog() = default; -MakeDialog::Impl::Impl(MakeDialog& dialog, Glib::RefPtr const& core) +MakeDialog::Impl::Impl(MakeDialog& dialog, Glib::RefPtr const& core) : dialog_(dialog) , core_(core) { diff --git a/gtk/makemeta-ui.h b/gtk/MakeDialog.h similarity index 77% rename from gtk/makemeta-ui.h rename to gtk/MakeDialog.h index 526b97a90..1021ff375 100644 --- a/gtk/makemeta-ui.h +++ b/gtk/MakeDialog.h @@ -12,17 +12,17 @@ #include -class TrCore; +class Session; class MakeDialog : public Gtk::Dialog { public: ~MakeDialog() override; - static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); + static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); protected: - MakeDialog(Gtk::Window& parent, Glib::RefPtr const& core); + MakeDialog(Gtk::Window& parent, Glib::RefPtr const& core); private: class Impl; diff --git a/gtk/msgwin.cc b/gtk/MessageLogWindow.cc similarity index 97% rename from gtk/msgwin.cc rename to gtk/MessageLogWindow.cc index db745dd3b..a5824108b 100644 --- a/gtk/msgwin.cc +++ b/gtk/MessageLogWindow.cc @@ -16,12 +16,12 @@ #include #include -#include "conf.h" -#include "hig.h" -#include "msgwin.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "HigWorkarea.h" +#include "MessageLogWindow.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" class MessageLogColumnsModel : public Gtk::TreeModelColumnRecord { @@ -45,7 +45,7 @@ MessageLogColumnsModel const message_log_cols; class MessageLogWindow::Impl { public: - Impl(MessageLogWindow& window, Glib::RefPtr const& core); + Impl(MessageLogWindow& window, Glib::RefPtr const& core); ~Impl(); private: @@ -67,7 +67,7 @@ private: private: MessageLogWindow& window_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; Gtk::TreeView* view_ = nullptr; Glib::RefPtr store_; Glib::RefPtr filter_; @@ -429,12 +429,12 @@ Gtk::ComboBox* debug_level_combo_new() *** Public Functions **/ -std::unique_ptr MessageLogWindow::create(Gtk::Window& parent, Glib::RefPtr const& core) +std::unique_ptr MessageLogWindow::create(Gtk::Window& parent, Glib::RefPtr const& core) { return std::unique_ptr(new MessageLogWindow(parent, core)); } -MessageLogWindow::MessageLogWindow(Gtk::Window& parent, Glib::RefPtr const& core) +MessageLogWindow::MessageLogWindow(Gtk::Window& parent, Glib::RefPtr const& core) : Gtk::Window(Gtk::WINDOW_TOPLEVEL) , impl_(std::make_unique(*this, core)) { @@ -443,7 +443,7 @@ MessageLogWindow::MessageLogWindow(Gtk::Window& parent, Glib::RefPtr con MessageLogWindow::~MessageLogWindow() = default; -MessageLogWindow::Impl::Impl(MessageLogWindow& window, Glib::RefPtr const& core) +MessageLogWindow::Impl::Impl(MessageLogWindow& window, Glib::RefPtr const& core) : window_(window) , core_(core) { diff --git a/gtk/msgwin.h b/gtk/MessageLogWindow.h similarity index 76% rename from gtk/msgwin.h rename to gtk/MessageLogWindow.h index ee6e23254..26f493683 100644 --- a/gtk/msgwin.h +++ b/gtk/MessageLogWindow.h @@ -12,17 +12,17 @@ #include -class TrCore; +class Session; class MessageLogWindow : public Gtk::Window { public: ~MessageLogWindow() override; - static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); + static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); protected: - MessageLogWindow(Gtk::Window& parent, Glib::RefPtr const& core); + MessageLogWindow(Gtk::Window& parent, Glib::RefPtr const& core); private: class Impl; diff --git a/gtk/notify.cc b/gtk/Notify.cc similarity index 96% rename from gtk/notify.cc rename to gtk/Notify.cc index 8c509360a..737063e43 100644 --- a/gtk/notify.cc +++ b/gtk/Notify.cc @@ -11,11 +11,11 @@ #include #include -#include "conf.h" -#include "notify.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "Notify.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" #define NOTIFICATIONS_DBUS_NAME "org.freedesktop.Notifications" #define NOTIFICATIONS_DBUS_CORE_OBJECT "/org/freedesktop/Notifications" @@ -30,7 +30,7 @@ namespace struct TrNotification { - Glib::RefPtr core; + Glib::RefPtr core; int torrent_id = 0; }; @@ -160,7 +160,7 @@ void notify_callback(Glib::RefPtr& res, TrNotification const& } // namespace -void gtr_notify_torrent_completed(Glib::RefPtr const& core, int torrent_id) +void gtr_notify_torrent_completed(Glib::RefPtr const& core, int torrent_id) { if (gtr_pref_flag_get(TR_KEY_torrent_complete_sound_enabled)) { diff --git a/gtk/notify.h b/gtk/Notify.h similarity index 74% rename from gtk/notify.h rename to gtk/Notify.h index 948385475..6e06f09ff 100644 --- a/gtk/notify.h +++ b/gtk/Notify.h @@ -10,10 +10,10 @@ #include -class TrCore; +class Session; void gtr_notify_init(); void gtr_notify_torrent_added(Glib::ustring const& name); -void gtr_notify_torrent_completed(Glib::RefPtr const& core, int torrent_id); +void gtr_notify_torrent_completed(Glib::RefPtr const& core, int torrent_id); diff --git a/gtk/open-dialog.cc b/gtk/OptionsDialog.cc similarity index 94% rename from gtk/open-dialog.cc rename to gtk/OptionsDialog.cc index 31d93902a..12a2e06dd 100644 --- a/gtk/open-dialog.cc +++ b/gtk/OptionsDialog.cc @@ -15,13 +15,14 @@ #include #include /* tr_sys_path_is_same() */ -#include "conf.h" -#include "file-list.h" -#include "hig.h" -#include "open-dialog.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" /* gtr_priority_combo_get_value() */ +#include "FileList.h" +#include "FreeSpaceLabel.h" +#include "HigWorkarea.h" +#include "OptionsDialog.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" /* gtr_priority_combo_get_value() */ /**** ***** @@ -49,7 +50,7 @@ std::list get_recent_destinations() return list; } -void save_recent_destination(Glib::RefPtr const& core, std::string const& dir) +void save_recent_destination(Glib::RefPtr const& core, std::string const& dir) { if (dir.empty()) { @@ -85,7 +86,7 @@ void save_recent_destination(Glib::RefPtr const& core, std::string const class OptionsDialog::Impl { public: - Impl(OptionsDialog& dialog, Glib::RefPtr const& core, std::unique_ptr ctor); + Impl(OptionsDialog& dialog, Glib::RefPtr const& core, std::unique_ptr ctor); private: void sourceChanged(Gtk::FileChooserButton* b); @@ -99,7 +100,7 @@ private: private: OptionsDialog& dialog_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; FileList* file_list_ = nullptr; Gtk::CheckButton* run_check_ = nullptr; Gtk::CheckButton* trash_check_ = nullptr; @@ -253,7 +254,7 @@ void addTorrentFilters(Gtk::FileChooser* chooser) std::unique_ptr OptionsDialog::create( Gtk::Window& parent, - Glib::RefPtr const& core, + Glib::RefPtr const& core, std::unique_ptr ctor) { return std::unique_ptr(new OptionsDialog(parent, core, std::move(ctor))); @@ -261,7 +262,7 @@ std::unique_ptr OptionsDialog::create( OptionsDialog::OptionsDialog( Gtk::Window& parent, - Glib::RefPtr const& core, + Glib::RefPtr const& core, std::unique_ptr ctor) : Gtk::Dialog(_("Torrent Options"), parent) , impl_(std::make_unique(*this, core, std::move(ctor))) @@ -272,7 +273,7 @@ OptionsDialog::~OptionsDialog() = default; OptionsDialog::Impl::Impl( OptionsDialog& dialog, - Glib::RefPtr const& core, + Glib::RefPtr const& core, std::unique_ptr ctor) : dialog_(dialog) , core_(core) @@ -410,7 +411,7 @@ OptionsDialog::Impl::Impl( ***** ****/ -void TorrentFileChooserDialog::onOpenDialogResponse(int response, Glib::RefPtr const& core) +void TorrentFileChooserDialog::onOpenDialogResponse(int response, Glib::RefPtr const& core) { /* remember this folder the next time we use this dialog */ gtr_pref_string_set(TR_KEY_open_dialog_dir, get_current_folder()); @@ -431,12 +432,12 @@ void TorrentFileChooserDialog::onOpenDialogResponse(int response, Glib::RefPtr TorrentFileChooserDialog::create( Gtk::Window& parent, - Glib::RefPtr const& core) + Glib::RefPtr const& core) { return std::unique_ptr(new TorrentFileChooserDialog(parent, core)); } -TorrentFileChooserDialog::TorrentFileChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core) +TorrentFileChooserDialog::TorrentFileChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core) : Gtk::FileChooserDialog(parent, _("Open a Torrent"), Gtk::FILE_CHOOSER_ACTION_OPEN) { add_button(_("_Cancel"), Gtk::RESPONSE_CANCEL); @@ -461,7 +462,7 @@ TorrentFileChooserDialog::TorrentFileChooserDialog(Gtk::Window& parent, Glib::Re **** ***/ -void TorrentUrlChooserDialog::onOpenURLResponse(int response, Glib::RefPtr const& core) +void TorrentUrlChooserDialog::onOpenURLResponse(int response, Glib::RefPtr const& core) { bool handled = false; @@ -491,12 +492,12 @@ void TorrentUrlChooserDialog::onOpenURLResponse(int response, Glib::RefPtr TorrentUrlChooserDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) +std::unique_ptr TorrentUrlChooserDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) { return std::unique_ptr(new TorrentUrlChooserDialog(parent, core)); } -TorrentUrlChooserDialog::TorrentUrlChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core) +TorrentUrlChooserDialog::TorrentUrlChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core) : Gtk::Dialog(_("Open URL"), parent) { guint row; diff --git a/gtk/open-dialog.h b/gtk/OptionsDialog.h similarity index 58% rename from gtk/open-dialog.h rename to gtk/OptionsDialog.h index 8ef787e89..a7f3db3a8 100644 --- a/gtk/open-dialog.h +++ b/gtk/OptionsDialog.h @@ -12,31 +12,31 @@ #include -class TrCore; +class Session; typedef struct tr_ctor tr_ctor; class TorrentUrlChooserDialog : public Gtk::Dialog { public: - static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); + static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); protected: - TorrentUrlChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core); + TorrentUrlChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core); private: - void onOpenURLResponse(int response, Glib::RefPtr const& core); + void onOpenURLResponse(int response, Glib::RefPtr const& core); }; class TorrentFileChooserDialog : public Gtk::FileChooserDialog { public: - static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); + static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); protected: - TorrentFileChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core); + TorrentFileChooserDialog(Gtk::Window& parent, Glib::RefPtr const& core); private: - void onOpenDialogResponse(int response, Glib::RefPtr const& core); + void onOpenDialogResponse(int response, Glib::RefPtr const& core); }; class OptionsDialog : public Gtk::Dialog @@ -46,11 +46,11 @@ public: static std::unique_ptr create( Gtk::Window& parent, - Glib::RefPtr const& core, + Glib::RefPtr const& core, std::unique_ptr ctor); protected: - OptionsDialog(Gtk::Window& parent, Glib::RefPtr const& core, std::unique_ptr ctor); + OptionsDialog(Gtk::Window& parent, Glib::RefPtr const& core, std::unique_ptr ctor); private: class Impl; diff --git a/gtk/conf.cc b/gtk/Prefs.cc similarity index 99% rename from gtk/conf.cc rename to gtk/Prefs.cc index 034aa1d01..9030dd5bb 100644 --- a/gtk/conf.cc +++ b/gtk/Prefs.cc @@ -34,9 +34,9 @@ #include #include -#include "conf.h" -#include "tr-prefs.h" -#include "util.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Utils.h" #define MY_CONFIG_NAME "transmission" diff --git a/gtk/conf.h b/gtk/Prefs.h similarity index 100% rename from gtk/conf.h rename to gtk/Prefs.h diff --git a/gtk/tr-prefs.cc b/gtk/PrefsDialog.cc similarity index 96% rename from gtk/tr-prefs.cc rename to gtk/PrefsDialog.cc index 8936f8952..45e5e0e7a 100644 --- a/gtk/tr-prefs.cc +++ b/gtk/PrefsDialog.cc @@ -18,11 +18,12 @@ #include #include -#include "conf.h" -#include "hig.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "FreeSpaceLabel.h" +#include "HigWorkarea.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" /** *** @@ -31,7 +32,7 @@ class PrefsDialog::Impl { public: - Impl(PrefsDialog& dialog, Glib::RefPtr const& core); + Impl(PrefsDialog& dialog, Glib::RefPtr const& core); ~Impl(); private: @@ -50,7 +51,7 @@ private: private: PrefsDialog& dialog_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; sigc::connection core_prefs_tag_; FreeSpaceLabel* freespace_label_ = nullptr; @@ -82,7 +83,7 @@ void PrefsDialog::Impl::response_cb(int response) namespace { -Gtk::CheckButton* new_check_button(Glib::ustring const& mnemonic, tr_quark const key, Glib::RefPtr const& core) +Gtk::CheckButton* new_check_button(Glib::ustring const& mnemonic, tr_quark const key, Glib::RefPtr const& core) { auto* w = Gtk::make_managed(mnemonic, true); w->set_active(gtr_pref_flag_get(key)); @@ -92,7 +93,7 @@ Gtk::CheckButton* new_check_button(Glib::ustring const& mnemonic, tr_quark const #define IDLE_DATA "idle-data" -bool spun_cb_idle(Gtk::SpinButton* spin, tr_quark const key, Glib::RefPtr const& core, bool isDouble) +bool spun_cb_idle(Gtk::SpinButton* spin, tr_quark const key, Glib::RefPtr const& core, bool isDouble) { bool keep_waiting = true; auto* last_change = static_cast(spin->get_data(IDLE_DATA)); @@ -121,7 +122,7 @@ bool spun_cb_idle(Gtk::SpinButton* spin, tr_quark const key, Glib::RefPtr const& core, bool isDouble) +void spun_cb(Gtk::SpinButton* w, tr_quark const key, Glib::RefPtr const& core, bool isDouble) { /* user may be spinning through many values, so let's hold off for a moment to keep from flooding the core with changes */ @@ -138,7 +139,7 @@ void spun_cb(Gtk::SpinButton* w, tr_quark const key, Glib::RefPtr const& last_change->start(); } -Gtk::SpinButton* new_spin_button(tr_quark const key, Glib::RefPtr const& core, int low, int high, int step) +Gtk::SpinButton* new_spin_button(tr_quark const key, Glib::RefPtr const& core, int low, int high, int step) { auto* w = Gtk::make_managed(Gtk::Adjustment::create(gtr_pref_int_get(key), low, high, step)); w->set_digits(0); @@ -148,7 +149,7 @@ Gtk::SpinButton* new_spin_button(tr_quark const key, Glib::RefPtr const& Gtk::SpinButton* new_spin_button_double( tr_quark const key, - Glib::RefPtr const& core, + Glib::RefPtr const& core, double low, double high, double step) @@ -159,12 +160,12 @@ Gtk::SpinButton* new_spin_button_double( return w; } -void entry_changed_cb(Gtk::Entry* w, tr_quark const key, Glib::RefPtr const& core) +void entry_changed_cb(Gtk::Entry* w, tr_quark const key, Glib::RefPtr const& core) { core->set_pref(key, w->get_text()); } -Gtk::Entry* new_entry(tr_quark const key, Glib::RefPtr const& core) +Gtk::Entry* new_entry(tr_quark const key, Glib::RefPtr const& core) { auto* w = Gtk::make_managed(); @@ -177,12 +178,12 @@ Gtk::Entry* new_entry(tr_quark const key, Glib::RefPtr const& core) return w; } -void chosen_cb(Gtk::FileChooser* w, tr_quark const key, Glib::RefPtr const& core) +void chosen_cb(Gtk::FileChooser* w, tr_quark const key, Glib::RefPtr const& core) { core->set_pref(key, w->get_filename()); } -Gtk::FileChooserButton* new_path_chooser_button(tr_quark const key, Glib::RefPtr const& core) +Gtk::FileChooserButton* new_path_chooser_button(tr_quark const key, Glib::RefPtr const& core) { auto* w = Gtk::make_managed(Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER); @@ -195,7 +196,7 @@ Gtk::FileChooserButton* new_path_chooser_button(tr_quark const key, Glib::RefPtr return w; } -Gtk::FileChooserButton* new_file_chooser_button(tr_quark const key, Glib::RefPtr const& core) +Gtk::FileChooserButton* new_file_chooser_button(tr_quark const key, Glib::RefPtr const& core) { auto* w = Gtk::make_managed(Gtk::FILE_CHOOSER_ACTION_OPEN); @@ -368,10 +369,10 @@ struct blocklist_data std::unique_ptr updateBlocklistDialog; Gtk::Label* label = nullptr; Gtk::CheckButton* check = nullptr; - Glib::RefPtr core; + Glib::RefPtr core; }; -void updateBlocklistText(Gtk::Label* w, Glib::RefPtr const& core) +void updateBlocklistText(Gtk::Label* w, Glib::RefPtr const& core) { int const n = tr_blocklistGetRuleCount(core->get_session()); w->set_markup( @@ -396,7 +397,7 @@ void onBlocklistUpdateResponse(std::shared_ptr const& data) } /* core says the blocklist was updated */ -void onBlocklistUpdated(Glib::RefPtr const& core, int n, blocklist_data* data) +void onBlocklistUpdated(Glib::RefPtr const& core, int n, blocklist_data* data) { bool const success = n >= 0; int const count = n >= 0 ? n : tr_blocklistGetRuleCount(core->get_session()); @@ -432,12 +433,12 @@ void on_blocklist_url_changed(Gtk::Editable* e, Gtk::Button* button) button->set_sensitive(is_url_valid); } -void onIntComboChanged(Gtk::ComboBox* combo_box, tr_quark const key, Glib::RefPtr const& core) +void onIntComboChanged(Gtk::ComboBox* combo_box, tr_quark const key, Glib::RefPtr const& core) { core->set_pref(key, gtr_combo_box_get_active_enum(*combo_box)); } -Gtk::ComboBox* new_encryption_combo(Glib::RefPtr const& core, tr_quark const key) +Gtk::ComboBox* new_encryption_combo(Glib::RefPtr const& core, tr_quark const key) { auto* w = gtr_combo_box_new_enum({ { _("Allow encryption"), TR_CLEAR_PREFERRED }, @@ -543,7 +544,7 @@ Glib::RefPtr whitelist_tree_model_new(std::string const& whiteli struct remote_page { - Glib::RefPtr core; + Glib::RefPtr core; Gtk::TreeView* view; Glib::RefPtr store; Gtk::Button* remove_button; @@ -760,7 +761,7 @@ void refreshSchedSensitivity(std::shared_ptr const& p) } } -Gtk::ComboBox* new_time_combo(Glib::RefPtr const& core, tr_quark const key) +Gtk::ComboBox* new_time_combo(Glib::RefPtr const& core, tr_quark const key) { class TimeModelColumns : public Gtk::TreeModelColumnRecord { @@ -806,7 +807,7 @@ Gtk::ComboBox* new_time_combo(Glib::RefPtr const& core, tr_quark const k return w; } -Gtk::ComboBox* new_week_combo(Glib::RefPtr const& core, tr_quark const key) +Gtk::ComboBox* new_week_combo(Glib::RefPtr const& core, tr_quark const key) { auto* w = gtr_combo_box_new_enum({ { _("Every Day"), TR_SCHED_ALL }, @@ -919,7 +920,7 @@ struct network_page_data { ~network_page_data(); - Glib::RefPtr core; + Glib::RefPtr core; Gtk::Label* portLabel = nullptr; Gtk::Button* portButton = nullptr; Gtk::SpinButton* portSpin = nullptr; @@ -1074,12 +1075,12 @@ void PrefsDialog::Impl::on_core_prefs_changed(tr_quark const key) } } -std::unique_ptr PrefsDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) +std::unique_ptr PrefsDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) { return std::unique_ptr(new PrefsDialog(parent, core)); } -PrefsDialog::PrefsDialog(Gtk::Window& parent, Glib::RefPtr const& core) +PrefsDialog::PrefsDialog(Gtk::Window& parent, Glib::RefPtr const& core) : Gtk::Dialog(_("Transmission Preferences"), parent) , impl_(std::make_unique(*this, core)) { @@ -1087,7 +1088,7 @@ PrefsDialog::PrefsDialog(Gtk::Window& parent, Glib::RefPtr const& core) PrefsDialog::~PrefsDialog() = default; -PrefsDialog::Impl::Impl(PrefsDialog& dialog, Glib::RefPtr const& core) +PrefsDialog::Impl::Impl(PrefsDialog& dialog, Glib::RefPtr const& core) : dialog_(dialog) , core_(core) { diff --git a/gtk/tr-prefs.h b/gtk/PrefsDialog.h similarity index 81% rename from gtk/tr-prefs.h rename to gtk/PrefsDialog.h index 898620f14..c30a2547d 100644 --- a/gtk/tr-prefs.h +++ b/gtk/PrefsDialog.h @@ -12,17 +12,17 @@ #include -class TrCore; +class Session; class PrefsDialog : public Gtk::Dialog { public: ~PrefsDialog() override; - static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); + static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); protected: - PrefsDialog(Gtk::Window& parent, Glib::RefPtr const& core); + PrefsDialog(Gtk::Window& parent, Glib::RefPtr const& core); private: class Impl; diff --git a/gtk/relocate.cc b/gtk/RelocateDialog.cc similarity index 91% rename from gtk/relocate.cc rename to gtk/RelocateDialog.cc index 16ef97365..ddd3fb401 100644 --- a/gtk/relocate.cc +++ b/gtk/RelocateDialog.cc @@ -13,11 +13,11 @@ #include -#include "conf.h" /* gtr_pref_string_get */ -#include "hig.h" -#include "relocate.h" -#include "tr-core.h" -#include "util.h" +#include "HigWorkarea.h" +#include "Prefs.h" /* gtr_pref_string_get */ +#include "RelocateDialog.h" +#include "Session.h" +#include "Utils.h" namespace { @@ -29,7 +29,7 @@ std::string previousLocation; class RelocateDialog::Impl { public: - Impl(RelocateDialog& dialog, Glib::RefPtr const& core, std::vector const& torrent_ids); + Impl(RelocateDialog& dialog, Glib::RefPtr const& core, std::vector const& torrent_ids); ~Impl(); private: @@ -40,7 +40,7 @@ private: private: RelocateDialog& dialog_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; std::vector torrent_ids_; int done_ = 0; @@ -135,13 +135,13 @@ void RelocateDialog::Impl::onResponse(int response) std::unique_ptr RelocateDialog::create( Gtk::Window& parent, - Glib::RefPtr const& core, + Glib::RefPtr const& core, std::vector const& torrent_ids) { return std::unique_ptr(new RelocateDialog(parent, core, torrent_ids)); } -RelocateDialog::RelocateDialog(Gtk::Window& parent, Glib::RefPtr const& core, std::vector const& torrent_ids) +RelocateDialog::RelocateDialog(Gtk::Window& parent, Glib::RefPtr const& core, std::vector const& torrent_ids) : Gtk::Dialog(_("Set Torrent Location"), parent, true) , impl_(std::make_unique(*this, core, torrent_ids)) { @@ -149,7 +149,7 @@ RelocateDialog::RelocateDialog(Gtk::Window& parent, Glib::RefPtr const& RelocateDialog::~RelocateDialog() = default; -RelocateDialog::Impl::Impl(RelocateDialog& dialog, Glib::RefPtr const& core, std::vector const& torrent_ids) +RelocateDialog::Impl::Impl(RelocateDialog& dialog, Glib::RefPtr const& core, std::vector const& torrent_ids) : dialog_(dialog) , core_(core) , torrent_ids_(torrent_ids) diff --git a/gtk/relocate.h b/gtk/RelocateDialog.h similarity index 75% rename from gtk/relocate.h rename to gtk/RelocateDialog.h index f30f69e29..623f1deb5 100644 --- a/gtk/relocate.h +++ b/gtk/RelocateDialog.h @@ -13,7 +13,7 @@ #include -class TrCore; +class Session; class RelocateDialog : public Gtk::Dialog { @@ -22,11 +22,11 @@ public: static std::unique_ptr create( Gtk::Window& parent, - Glib::RefPtr const& core, + Glib::RefPtr const& core, std::vector const& torrent_ids); protected: - RelocateDialog(Gtk::Window& parent, Glib::RefPtr const& core, std::vector const& torrent_ids); + RelocateDialog(Gtk::Window& parent, Glib::RefPtr const& core, std::vector const& torrent_ids); private: class Impl; diff --git a/gtk/tr-core.cc b/gtk/Session.cc similarity index 91% rename from gtk/tr-core.cc rename to gtk/Session.cc index 052fc4950..597190e3b 100644 --- a/gtk/tr-core.cc +++ b/gtk/Session.cc @@ -37,12 +37,12 @@ #include /* tr_free */ #include -#include "actions.h" -#include "conf.h" -#include "notify.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "Actions.h" +#include "Notify.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" namespace { @@ -70,10 +70,10 @@ private: } // namespace -class TrCore::Impl +class Session::Impl { public: - Impl(TrCore& core, tr_session* session); + Impl(Session& core, tr_session* session); tr_session* close(); @@ -104,7 +104,7 @@ public: sigc::signal signal_port_tested; private: - Glib::RefPtr get_core_ptr() const; + Glib::RefPtr get_core_ptr() const; bool is_busy(); void add_to_busy(int addMe); @@ -141,7 +141,7 @@ private: void on_torrent_metadata_changed(tr_torrent* tor); private: - TrCore& core_; + Session& core_; Glib::RefPtr monitor_; sigc::connection monitor_tag_; @@ -182,37 +182,37 @@ TorrentModelColumns::TorrentModelColumns() TorrentModelColumns const torrent_cols; -Glib::RefPtr TrCore::Impl::get_core_ptr() const +Glib::RefPtr Session::Impl::get_core_ptr() const { core_.reference(); - return Glib::RefPtr(&core_); + return Glib::RefPtr(&core_); } /*** **** ***/ -Glib::RefPtr TrCore::Impl::get_raw_model() const +Glib::RefPtr Session::Impl::get_raw_model() const { return raw_model_; } -Glib::RefPtr TrCore::get_model() const +Glib::RefPtr Session::get_model() const { return impl_->get_model(); } -Glib::RefPtr TrCore::Impl::get_model() const +Glib::RefPtr Session::Impl::get_model() const { return sorted_model_; } -tr_session* TrCore::get_session() const +tr_session* Session::get_session() const { return impl_->get_session(); } -tr_session* TrCore::Impl::get_session() const +tr_session* Session::Impl::get_session() const { return session_; } @@ -221,12 +221,12 @@ tr_session* TrCore::Impl::get_session() const **** BUSY ***/ -bool TrCore::Impl::is_busy() +bool Session::Impl::is_busy() { return busy_count_ > 0; } -void TrCore::Impl::add_to_busy(int addMe) +void Session::Impl::add_to_busy(int addMe) { bool const wasBusy = is_busy(); @@ -238,12 +238,12 @@ void TrCore::Impl::add_to_busy(int addMe) } } -void TrCore::Impl::inc_busy() +void Session::Impl::inc_busy() { add_to_busy(1); } -void TrCore::Impl::dec_busy() +void Session::Impl::dec_busy() { add_to_busy(-1); } @@ -561,7 +561,7 @@ int compare_by_state(Gtk::TreeModel::iterator const& a, Gtk::TreeModel::iterator } // namespace -void TrCore::Impl::set_sort_mode(std::string const& mode, bool is_reversed) +void Session::Impl::set_sort_mode(std::string const& mode, bool is_reversed) { auto const& col = torrent_cols.torrent; Gtk::TreeSortable::SlotCompare sort_func; @@ -647,7 +647,7 @@ void rename_torrent(Glib::RefPtr const& file) } // namespace -bool TrCore::Impl::watchdir_idle() +bool Session::Impl::watchdir_idle() { std::vector> changing; std::vector> unchanging; @@ -694,7 +694,7 @@ bool TrCore::Impl::watchdir_idle() } /* If this file is a torrent, add it to our list */ -void TrCore::Impl::watchdir_monitor_file(Glib::RefPtr const& file) +void Session::Impl::watchdir_monitor_file(Glib::RefPtr const& file) { auto const filename = file->get_path(); bool const is_torrent = Glib::str_has_suffix(filename, ".torrent"); @@ -720,7 +720,7 @@ void TrCore::Impl::watchdir_monitor_file(Glib::RefPtr const& file) } /* GFileMonitor noticed a file was created */ -void TrCore::Impl::on_file_changed_in_watchdir( +void Session::Impl::on_file_changed_in_watchdir( Glib::RefPtr const& file, Glib::RefPtr const& /*other_type*/, Gio::FileMonitorEvent event_type) @@ -732,7 +732,7 @@ void TrCore::Impl::on_file_changed_in_watchdir( } /* walk through the pre-existing files in the watchdir */ -void TrCore::Impl::watchdir_scan() +void Session::Impl::watchdir_scan() { auto const dirname = gtr_pref_string_get(TR_KEY_watch_dir); @@ -748,7 +748,7 @@ void TrCore::Impl::watchdir_scan() } } -void TrCore::Impl::watchdir_update() +void Session::Impl::watchdir_update() { bool const is_enabled = gtr_pref_flag_get(TR_KEY_watch_dir_enabled); auto const dir = Gio::File::create_for_path(gtr_pref_string_get(TR_KEY_watch_dir)); @@ -777,7 +777,7 @@ void TrCore::Impl::watchdir_update() **** ***/ -void TrCore::Impl::on_pref_changed(tr_quark const key) +void Session::Impl::on_pref_changed(tr_quark const key) { switch (key) { @@ -816,20 +816,20 @@ void TrCore::Impl::on_pref_changed(tr_quark const key) *** **/ -Glib::RefPtr TrCore::create(tr_session* session) +Glib::RefPtr Session::create(tr_session* session) { - return Glib::make_refptr_for_instance(new TrCore(session)); + return Glib::make_refptr_for_instance(new Session(session)); } -TrCore::TrCore(tr_session* session) - : Glib::ObjectBase(typeid(TrCore)) +Session::Session(tr_session* session) + : Glib::ObjectBase(typeid(Session)) , impl_(std::make_unique(*this, session)) { } -TrCore::~TrCore() = default; +Session::~Session() = default; -TrCore::Impl::Impl(TrCore& core, tr_session* session) +Session::Impl::Impl(Session& core, tr_session* session) : core_(core) , session_(session) { @@ -847,12 +847,12 @@ TrCore::Impl::Impl(TrCore& core, tr_session* session) signal_prefs_changed.connect([this](auto key) { on_pref_changed(key); }); } -tr_session* TrCore::close() +tr_session* Session::close() { return impl_->close(); } -tr_session* TrCore::Impl::close() +tr_session* Session::Impl::close() { auto* session = session_; @@ -871,7 +871,7 @@ tr_session* TrCore::Impl::close() /* this is called in the libtransmission thread, *NOT* the GTK+ thread, so delegate to the GTK+ thread before calling notify's dbus code... */ -void TrCore::Impl::on_torrent_completeness_changed(tr_torrent* tor, tr_completeness completeness, bool was_running) +void Session::Impl::on_torrent_completeness_changed(tr_torrent* tor, tr_completeness completeness, bool was_running) { if (was_running && completeness != TR_LEECH && tr_torrentStat(tor)->sizeWhenDone != 0) { @@ -899,7 +899,7 @@ Glib::ustring get_collated_name(tr_torrent const* tor) struct metadata_callback_data { - TrCore* core; + Session* core; int torrent_id; }; @@ -920,7 +920,7 @@ Gtk::TreeModel::iterator find_row_from_torrent_id(Glib::RefPtr c /* this is called in the libtransmission thread, *NOT* the GTK+ thread, so delegate to the GTK+ thread before changing our list store... */ -void TrCore::Impl::on_torrent_metadata_changed(tr_torrent* tor) +void Session::Impl::on_torrent_metadata_changed(tr_torrent* tor) { Glib::signal_idle().connect( [this, core = get_core_ptr(), torrent_id = tr_torrentId(tor)]() @@ -972,13 +972,13 @@ bool is_torrent_active(tr_stat const* st) } // namespace -void TrCore::add_torrent(tr_torrent* tor, bool do_notify) +void Session::add_torrent(tr_torrent* tor, bool do_notify) { ScopedModelSortBlocker disable_sort(*gtr_get_ptr(impl_->get_model())); impl_->add_torrent(tor, do_notify); } -void TrCore::Impl::add_torrent(tr_torrent* tor, bool do_notify) +void Session::Impl::add_torrent(tr_torrent* tor, bool do_notify) { if (tor != nullptr) { @@ -1020,7 +1020,7 @@ void TrCore::Impl::add_torrent(tr_torrent* tor, bool do_notify) } } -tr_torrent* TrCore::Impl::create_new_torrent(tr_ctor* ctor) +tr_torrent* Session::Impl::create_new_torrent(tr_ctor* ctor) { bool do_trash = false; @@ -1050,7 +1050,7 @@ tr_torrent* TrCore::Impl::create_new_torrent(tr_ctor* ctor) return tor; } -int TrCore::Impl::add_ctor(tr_ctor* ctor, bool do_prompt, bool do_notify) +int Session::Impl::add_ctor(tr_ctor* ctor, bool do_prompt, bool do_notify) { tr_info inf; auto err = tr_torrentParse(ctor, &inf); @@ -1120,7 +1120,7 @@ void core_apply_defaults(tr_ctor* ctor) } // namespace -void TrCore::add_ctor(tr_ctor* ctor) +void Session::add_ctor(tr_ctor* ctor) { bool const do_notify = false; bool const do_prompt = gtr_pref_flag_get(TR_KEY_show_options_window); @@ -1132,7 +1132,7 @@ void TrCore::add_ctor(tr_ctor* ctor) **** ***/ -void TrCore::Impl::add_file_async_callback( +void Session::Impl::add_file_async_callback( Glib::RefPtr const& file, Glib::RefPtr& result, tr_ctor* ctor, @@ -1165,7 +1165,7 @@ void TrCore::Impl::add_file_async_callback( dec_busy(); } -bool TrCore::Impl::add_file(Glib::RefPtr const& file, bool do_start, bool do_prompt, bool do_notify) +bool Session::Impl::add_file(Glib::RefPtr const& file, bool do_start, bool do_prompt, bool do_notify) { bool handled = false; auto const* const session = get_session(); @@ -1236,12 +1236,12 @@ bool TrCore::Impl::add_file(Glib::RefPtr const& file, bool do_start, return handled; } -bool TrCore::add_from_url(Glib::ustring const& uri) +bool Session::add_from_url(Glib::ustring const& uri) { return impl_->add_from_url(uri); } -bool TrCore::Impl::add_from_url(Glib::ustring const& uri) +bool Session::Impl::add_from_url(Glib::ustring const& uri) { bool handled; bool const do_start = gtr_pref_flag_get(TR_KEY_start_added_torrents); @@ -1255,12 +1255,12 @@ bool TrCore::Impl::add_from_url(Glib::ustring const& uri) return handled; } -void TrCore::add_files(std::vector> const& files, bool do_start, bool do_prompt, bool do_notify) +void Session::add_files(std::vector> const& files, bool do_start, bool do_prompt, bool do_notify) { impl_->add_files(files, do_start, do_prompt, do_notify); } -void TrCore::Impl::add_files(std::vector> const& files, bool do_start, bool do_prompt, bool do_notify) +void Session::Impl::add_files(std::vector> const& files, bool do_start, bool do_prompt, bool do_notify) { for (auto const& file : files) { @@ -1270,18 +1270,18 @@ void TrCore::Impl::add_files(std::vector> const& files, torrents_added(); } -void TrCore::torrents_added() +void Session::torrents_added() { impl_->torrents_added(); } -void TrCore::Impl::torrents_added() +void Session::Impl::torrents_added() { update(); signal_add_error.emit(ERR_NO_MORE_TORRENTS, {}); } -void TrCore::torrent_changed(int id) +void Session::torrent_changed(int id) { auto const model = impl_->get_raw_model(); @@ -1291,7 +1291,7 @@ void TrCore::torrent_changed(int id) } } -void TrCore::remove_torrent(int id, bool delete_local_data) +void Session::remove_torrent(int id, bool delete_local_data) { auto* tor = find_torrent(id); @@ -1313,7 +1313,7 @@ void TrCore::remove_torrent(int id, bool delete_local_data) } } -void TrCore::load(bool forcePaused) +void Session::load(bool forcePaused) { tr_ctor* ctor; tr_torrent** torrents; @@ -1341,7 +1341,7 @@ void TrCore::load(bool forcePaused) tr_ctorFree(ctor); } -void TrCore::clear() +void Session::clear() { impl_->get_raw_model()->clear(); } @@ -1436,12 +1436,12 @@ void update_foreach(Gtk::TreeModel::Row const& row) } // namespace -void TrCore::update() +void Session::update() { impl_->update(); } -void TrCore::Impl::update() +void Session::Impl::update() { /* update the model */ for (auto const& row : raw_model_->children()) @@ -1529,7 +1529,7 @@ void gtr_uninhibit_hibernation(guint inhibit_cookie) } // namespace -void TrCore::Impl::set_hibernation_allowed(bool allowed) +void Session::Impl::set_hibernation_allowed(bool allowed) { inhibit_allowed_ = allowed; @@ -1552,7 +1552,7 @@ void TrCore::Impl::set_hibernation_allowed(bool allowed) } } -void TrCore::Impl::maybe_inhibit_hibernation() +void Session::Impl::maybe_inhibit_hibernation() { /* hibernation is allowed if EITHER * (a) the "inhibit" pref is turned off OR @@ -1565,13 +1565,13 @@ void TrCore::Impl::maybe_inhibit_hibernation() *** Prefs **/ -void TrCore::Impl::commit_prefs_change(tr_quark const key) +void Session::Impl::commit_prefs_change(tr_quark const key) { signal_prefs_changed.emit(key); gtr_pref_save(session_); } -void TrCore::set_pref(tr_quark const key, std::string const& newval) +void Session::set_pref(tr_quark const key, std::string const& newval) { if (newval != gtr_pref_string_get(key)) { @@ -1580,7 +1580,7 @@ void TrCore::set_pref(tr_quark const key, std::string const& newval) } } -void TrCore::set_pref(tr_quark const key, bool newval) +void Session::set_pref(tr_quark const key, bool newval) { if (newval != gtr_pref_flag_get(key)) { @@ -1589,7 +1589,7 @@ void TrCore::set_pref(tr_quark const key, bool newval) } } -void TrCore::set_pref(tr_quark const key, int newval) +void Session::set_pref(tr_quark const key, int newval) { if (newval != gtr_pref_int_get(key)) { @@ -1598,7 +1598,7 @@ void TrCore::set_pref(tr_quark const key, int newval) } } -void TrCore::set_pref(tr_quark const key, double newval) +void Session::set_pref(tr_quark const key, double newval) { if (gtr_compare_double(newval, gtr_pref_double_get(key), 4)) { @@ -1620,7 +1620,7 @@ namespace int nextTag = 1; -typedef void (*server_response_func)(TrCore* core, tr_variant* response, gpointer user_data); +typedef void (*server_response_func)(Session* core, tr_variant* response, gpointer user_data); struct pending_request_data { @@ -1666,7 +1666,7 @@ void core_read_rpc_response(tr_session* /*session*/, tr_variant* response, void* } // namespace -void TrCore::Impl::send_rpc_request(tr_variant const* request, int tag, std::function const& response_func) +void Session::Impl::send_rpc_request(tr_variant const* request, int tag, std::function const& response_func) { if (session_ == nullptr) { @@ -1698,7 +1698,7 @@ void TrCore::Impl::send_rpc_request(tr_variant const* request, int tag, std::fun **** Sending a test-port request via RPC ***/ -void TrCore::port_test() +void Session::port_test() { int const tag = nextTag; ++nextTag; @@ -1730,7 +1730,7 @@ void TrCore::port_test() **** Updating a blocklist via RPC ***/ -void TrCore::blocklist_update() +void Session::blocklist_update() { int const tag = nextTag; ++nextTag; @@ -1767,7 +1767,7 @@ void TrCore::blocklist_update() **** ***/ -void TrCore::exec(tr_variant const* top) +void Session::exec(tr_variant const* top) { int const tag = nextTag; ++nextTag; @@ -1779,17 +1779,17 @@ void TrCore::exec(tr_variant const* top) **** ***/ -size_t TrCore::get_torrent_count() const +size_t Session::get_torrent_count() const { return impl_->get_raw_model()->children().size(); } -size_t TrCore::get_active_torrent_count() const +size_t Session::get_active_torrent_count() const { return impl_->get_active_torrent_count(); } -size_t TrCore::Impl::get_active_torrent_count() const +size_t Session::Impl::get_active_torrent_count() const { size_t activeCount = 0; @@ -1804,7 +1804,7 @@ size_t TrCore::Impl::get_active_torrent_count() const return activeCount; } -tr_torrent* TrCore::find_torrent(int id) const +tr_torrent* Session::find_torrent(int id) const { tr_torrent* tor = nullptr; @@ -1816,7 +1816,7 @@ tr_torrent* TrCore::find_torrent(int id) const return tor; } -void TrCore::open_folder(int torrent_id) +void Session::open_folder(int torrent_id) { auto const* tor = find_torrent(torrent_id); @@ -1836,32 +1836,32 @@ void TrCore::open_folder(int torrent_id) } } -sigc::signal& TrCore::signal_add_error() +sigc::signal& Session::signal_add_error() { return impl_->signal_add_error; } -sigc::signal& TrCore::signal_add_prompt() +sigc::signal& Session::signal_add_prompt() { return impl_->signal_add_prompt; } -sigc::signal& TrCore::signal_blocklist_updated() +sigc::signal& Session::signal_blocklist_updated() { return impl_->signal_blocklist_updated; } -sigc::signal& TrCore::signal_busy() +sigc::signal& Session::signal_busy() { return impl_->signal_busy; } -sigc::signal& TrCore::signal_prefs_changed() +sigc::signal& Session::signal_prefs_changed() { return impl_->signal_prefs_changed; } -sigc::signal& TrCore::signal_port_tested() +sigc::signal& Session::signal_port_tested() { return impl_->signal_port_tested; } diff --git a/gtk/tr-core.h b/gtk/Session.h similarity index 97% rename from gtk/tr-core.h rename to gtk/Session.h index e5cb14891..4fe3bbec1 100644 --- a/gtk/tr-core.h +++ b/gtk/Session.h @@ -34,7 +34,7 @@ #define TR_RESOURCE_PATH "/com/transmissionbt/transmission/" -class TrCore : public Glib::Object +class Session : public Glib::Object { public: enum ErrorCode @@ -45,9 +45,9 @@ public: }; public: - ~TrCore() override; + ~Session() override; - static Glib::RefPtr create(tr_session* session); + static Glib::RefPtr create(tr_session* session); tr_session* close(); @@ -140,7 +140,7 @@ public: sigc::signal& signal_port_tested(); protected: - TrCore(tr_session* session); + Session(tr_session* session); private: class Impl; diff --git a/gtk/stats.cc b/gtk/StatsDialog.cc similarity index 92% rename from gtk/stats.cc rename to gtk/StatsDialog.cc index 4e176da47..b4528b73c 100644 --- a/gtk/stats.cc +++ b/gtk/StatsDialog.cc @@ -9,11 +9,11 @@ #include #include -#include "hig.h" -#include "stats.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "HigWorkarea.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "StatsDialog.h" +#include "Utils.h" enum { @@ -23,7 +23,7 @@ enum class StatsDialog::Impl { public: - Impl(StatsDialog& dialog, Glib::RefPtr const& core); + Impl(StatsDialog& dialog, Glib::RefPtr const& core); ~Impl(); private: @@ -32,7 +32,7 @@ private: private: StatsDialog& dialog_; - Glib::RefPtr const core_; + Glib::RefPtr const core_; Gtk::Label* one_up_lb_; Gtk::Label* one_down_lb_; @@ -118,12 +118,12 @@ void StatsDialog::Impl::dialogResponse(int response) } } -std::unique_ptr StatsDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) +std::unique_ptr StatsDialog::create(Gtk::Window& parent, Glib::RefPtr const& core) { return std::unique_ptr(new StatsDialog(parent, core)); } -StatsDialog::StatsDialog(Gtk::Window& parent, Glib::RefPtr const& core) +StatsDialog::StatsDialog(Gtk::Window& parent, Glib::RefPtr const& core) : Gtk::Dialog(_("Statistics"), parent) , impl_(std::make_unique(*this, core)) { @@ -131,7 +131,7 @@ StatsDialog::StatsDialog(Gtk::Window& parent, Glib::RefPtr const& core) StatsDialog::~StatsDialog() = default; -StatsDialog::Impl::Impl(StatsDialog& dialog, Glib::RefPtr const& core) +StatsDialog::Impl::Impl(StatsDialog& dialog, Glib::RefPtr const& core) : dialog_(dialog) , core_(core) { diff --git a/gtk/stats.h b/gtk/StatsDialog.h similarity index 77% rename from gtk/stats.h rename to gtk/StatsDialog.h index ba3d7c046..2a665d42f 100644 --- a/gtk/stats.h +++ b/gtk/StatsDialog.h @@ -12,17 +12,17 @@ #include -class TrCore; +class Session; class StatsDialog : public Gtk::Dialog { public: ~StatsDialog() override; - static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); + static std::unique_ptr create(Gtk::Window& parent, Glib::RefPtr const& core); protected: - StatsDialog(Gtk::Window& parent, Glib::RefPtr const& core); + StatsDialog(Gtk::Window& parent, Glib::RefPtr const& core); private: class Impl; diff --git a/gtk/tr-icon.cc b/gtk/SystemTrayIcon.cc similarity index 93% rename from gtk/tr-icon.cc rename to gtk/SystemTrayIcon.cc index 82b346d7d..54cd6d8b8 100644 --- a/gtk/tr-icon.cc +++ b/gtk/SystemTrayIcon.cc @@ -17,17 +17,17 @@ #include #include -#include "actions.h" -#include "tr-core.h" -#include "tr-icon.h" -#include "util.h" +#include "Actions.h" +#include "Session.h" +#include "SystemTrayIcon.h" +#include "Utils.h" #define ICON_NAME "transmission" class SystemTrayIcon::Impl { public: - Impl(Glib::RefPtr const& core); + Impl(Glib::RefPtr const& core); ~Impl(); void refresh(); @@ -37,7 +37,7 @@ private: void popup(guint button, guint when); private: - Glib::RefPtr const core_; + Glib::RefPtr const core_; Gtk::Menu* menu_; @@ -167,7 +167,7 @@ std::string getIconName() } // namespace -SystemTrayIcon::SystemTrayIcon(Glib::RefPtr const& core) +SystemTrayIcon::SystemTrayIcon(Glib::RefPtr const& core) : impl_(std::make_unique(core)) { } @@ -179,7 +179,7 @@ void SystemTrayIcon::refresh() impl_->refresh(); } -SystemTrayIcon::Impl::Impl(Glib::RefPtr const& core) +SystemTrayIcon::Impl::Impl(Glib::RefPtr const& core) : core_(core) { auto const icon_name = getIconName(); diff --git a/gtk/tr-icon.h b/gtk/SystemTrayIcon.h similarity index 82% rename from gtk/tr-icon.h rename to gtk/SystemTrayIcon.h index 47a5c5a1c..c3081cf52 100644 --- a/gtk/tr-icon.h +++ b/gtk/SystemTrayIcon.h @@ -10,10 +10,12 @@ #include +class Session; + class SystemTrayIcon { public: - SystemTrayIcon(Glib::RefPtr const& core); + SystemTrayIcon(Glib::RefPtr const& core); ~SystemTrayIcon(); void refresh(); diff --git a/gtk/torrent-cell-renderer.cc b/gtk/TorrentCellRenderer.cc similarity index 99% rename from gtk/torrent-cell-renderer.cc rename to gtk/TorrentCellRenderer.cc index 78e4835d5..a6a2fbd06 100644 --- a/gtk/torrent-cell-renderer.cc +++ b/gtk/TorrentCellRenderer.cc @@ -14,10 +14,10 @@ #include #include /* tr_truncd() */ -#include "hig.h" -#include "icons.h" -#include "torrent-cell-renderer.h" -#include "util.h" +#include "HigWorkarea.h" +#include "IconCache.h" +#include "TorrentCellRenderer.h" +#include "Utils.h" /* #define TEST_RTL */ diff --git a/gtk/torrent-cell-renderer.h b/gtk/TorrentCellRenderer.h similarity index 100% rename from gtk/torrent-cell-renderer.h rename to gtk/TorrentCellRenderer.h diff --git a/gtk/util.cc b/gtk/Utils.cc similarity index 89% rename from gtk/util.cc rename to gtk/Utils.cc index 21d92fa42..eb1e44148 100644 --- a/gtk/util.cc +++ b/gtk/Utils.cc @@ -22,11 +22,11 @@ #include /* tr_webResponseStr() */ #include /* SHORT_VERSION_STRING */ -#include "conf.h" -#include "hig.h" -#include "tr-core.h" -#include "tr-prefs.h" -#include "util.h" +#include "HigWorkarea.h" +#include "Prefs.h" +#include "PrefsDialog.h" +#include "Session.h" +#include "Utils.h" /*** **** UNITS @@ -574,74 +574,3 @@ void gtr_label_set_text(Gtk::Label& lb, Glib::ustring const& newstr) lb.set_text(newstr); } } - -/*** -**** -***/ - -class FreeSpaceLabel::Impl -{ -public: - Impl(FreeSpaceLabel& label, Glib::RefPtr const& core, std::string const& dir); - ~Impl(); - - void set_dir(std::string const& dir); - -private: - bool on_freespace_timer(); - -private: - FreeSpaceLabel& label_; - Glib::RefPtr const core_; - std::string dir_; - sigc::connection timer_id_; -}; - -FreeSpaceLabel::Impl::~Impl() -{ - timer_id_.disconnect(); -} - -bool FreeSpaceLabel::Impl::on_freespace_timer() -{ - auto* const session = core_->get_session(); - if (session == nullptr) - { - return false; - } - - auto const bytes = tr_sessionGetDirFreeSpace(session, dir_.c_str()); - auto const text = bytes < 0 ? _("Error") : gtr_sprintf(_("%s free"), tr_strlsize(bytes)); - auto const markup = gtr_sprintf("%s", text); - label_.set_markup(markup); - - return true; -} - -FreeSpaceLabel::FreeSpaceLabel(Glib::RefPtr const& core, std::string const& dir) - : Gtk::Label() - , impl_(std::make_unique(*this, core, dir)) -{ -} - -FreeSpaceLabel::~FreeSpaceLabel() = default; - -FreeSpaceLabel::Impl::Impl(FreeSpaceLabel& label, Glib::RefPtr const& core, std::string const& dir) - : label_(label) - , core_(core) - , dir_(dir) -{ - timer_id_ = Glib::signal_timeout().connect_seconds(sigc::mem_fun(this, &Impl::on_freespace_timer), 3); - on_freespace_timer(); -} - -void FreeSpaceLabel::set_dir(std::string const& dir) -{ - impl_->set_dir(dir); -} - -void FreeSpaceLabel::Impl::set_dir(std::string const& dir) -{ - dir_ = dir; - on_freespace_timer(); -} diff --git a/gtk/util.h b/gtk/Utils.h similarity index 95% rename from gtk/util.h rename to gtk/Utils.h index 96c98cfe0..5ac7ce86b 100644 --- a/gtk/util.h +++ b/gtk/Utils.h @@ -10,6 +10,7 @@ #include #include + #include #include @@ -102,25 +103,6 @@ void gtr_combo_box_set_active_enum(Gtk::ComboBox&, int value); **** ***/ -class TrCore; - -class FreeSpaceLabel : public Gtk::Label -{ -public: - FreeSpaceLabel(Glib::RefPtr const& core, std::string const& dir = {}); - ~FreeSpaceLabel() override; - - void set_dir(std::string const& dir); - -private: - class Impl; - std::unique_ptr const impl_; -}; - -/*** -**** -***/ - void gtr_unrecognized_url_dialog(Gtk::Widget& parent, Glib::ustring const& url); void gtr_add_torrent_error_dialog( diff --git a/gtk/main.cc b/gtk/main.cc index 388b3eb7c..3a8455fdf 100644 --- a/gtk/main.cc +++ b/gtk/main.cc @@ -30,10 +30,10 @@ #include #include -#include "application.h" -#include "conf.h" -#include "notify.h" -#include "util.h" +#include "Application.h" +#include "Notify.h" +#include "Prefs.h" +#include "Utils.h" #define MY_CONFIG_NAME "transmission" #define MY_READABLE_NAME "transmission-gtk"