소스 검색

adding selection

Nicole Portas 1 개월 전
부모
커밋
9cebf0f481
1개의 변경된 파일25개의 추가작업 그리고 1개의 파일을 삭제
  1. 25 1
      src/main.cpp

+ 25 - 1
src/main.cpp

@@ -88,7 +88,6 @@ public:
         set_title("Simple Image Renamer 0.2");
         set_default_size(1280, 850);
         
-        // --- ADDED WMCLASS ---
         set_wmclass("simpleimagerenamer", "simpleimagerenamer");
 
         m_Dispatcher.connect(sigc::mem_fun(*this, &RenamerWindow::on_worker_notification));
@@ -122,6 +121,18 @@ public:
         m_ComboSize.signal_changed().connect(sigc::mem_fun(*this, &RenamerWindow::on_size_changed));
         m_ToolbarTop.pack_start(m_ComboSize, Gtk::PACK_SHRINK, 5);
 
+        // --- Added Select All / None Buttons ---
+        m_ToolbarTop.pack_start(*Gtk::manage(new Gtk::Separator(Gtk::ORIENTATION_VERTICAL)), Gtk::PACK_SHRINK, 10); 
+        
+        m_BtnSelectAll.set_label("Select All");
+        m_BtnSelectAll.signal_clicked().connect([this](){ on_selection_change(true); });
+        m_ToolbarTop.pack_start(m_BtnSelectAll, Gtk::PACK_SHRINK, 2);
+
+        m_BtnSelectNone.set_label("Select None");
+        m_BtnSelectNone.signal_clicked().connect([this](){ on_selection_change(false); });
+        m_ToolbarTop.pack_start(m_BtnSelectNone, Gtk::PACK_SHRINK, 2);
+        // ---------------------------------------
+
         m_BtnUndo.set_label("Undo Last Rename");
         m_BtnUndo.set_sensitive(false);
         m_BtnUndo.signal_clicked().connect(sigc::mem_fun(*this, &RenamerWindow::on_undo_clicked));
@@ -208,6 +219,9 @@ protected:
     Gtk::Box m_VBox, m_ToolbarTop, m_ToolbarControls, m_BoxPattern, m_BoxReplace;
     Gtk::Frame m_FrameControls;
     Gtk::Button m_BtnOpen, m_BtnRename, m_BtnUndo, m_BtnStopReload;
+    // --- Added Buttons ---
+    Gtk::Button m_BtnSelectAll, m_BtnSelectNone;
+    // ---------------------
     Gtk::Entry m_EntryPattern, m_EntryFind, m_EntryReplace;
     Gtk::ComboBoxText m_ComboSize, m_ComboSort, m_ComboMode;
     Gtk::SpinButton m_SpinStartNum;
@@ -257,6 +271,16 @@ protected:
         if(it) { (*it)[m_Columns.m_col_checked] = !(*it)[m_Columns.m_col_checked]; update_preview(); }
     }
 
+    // --- Added Helper for Mass Selection ---
+    void on_selection_change(bool select_all) {
+        if (!m_RefListStore) return;
+        for (auto row : m_RefListStore->children()) {
+            row[m_Columns.m_col_checked] = select_all;
+        }
+        update_preview();
+    }
+    // ---------------------------------------
+
     void on_stop_reload_clicked() {
         if (m_is_loading) m_stop_flag = true;
         else if (!m_current_path.empty()) start_loading_folder(m_current_path);