OSDN Git Service

Menuitem Stop is added.
authorAiwota Programmer <aiwotaprog@tetteke.tk>
Sun, 28 Jun 2009 11:57:40 +0000 (20:57 +0900)
committerAiwota Programmer <aiwotaprog@tetteke.tk>
Sun, 28 Jun 2009 11:57:40 +0000 (20:57 +0900)
src/application_framework.cxx
src/application_framework.hxx
src/board_window.cxx
src/board_window.hxx
src/thread_window.cxx
src/thread_window.hxx

index dc9cd7f..3663830 100644 (file)
@@ -66,6 +66,8 @@ void ApplicationFrameWork::build_menubar() {
   action_group_->add(Gtk::Action::create("MenuView", "_View"));
   action_group_->add(Gtk::Action::create("ViewRefresh", Gtk::Stock::REFRESH),
       sigc::mem_fun(*this, &ApplicationFrameWork::on_action_view_refresh));
+  action_group_->add(Gtk::Action::create("ViewStop", Gtk::Stock::STOP),
+      sigc::mem_fun(*this, &ApplicationFrameWork::on_action_view_stop));
   action_group_->add(Gtk::Action::create("ViewMenubar", "Toggle _Menubar"),
       sigc::mem_fun(*this, &ApplicationFrameWork::on_action_view_menubar));
   action_group_->add(Gtk::Action::create("ViewToolbar", "Toggle _Toolbar"),
@@ -84,6 +86,7 @@ void ApplicationFrameWork::build_menubar() {
     "    </menu>"
     "    <menu action='MenuView'>"
     "      <menuitem action='ViewRefresh'/>"
+    "      <menuitem action='ViewStop'/>"
     "      <separator/>"
     "      <menuitem action='ViewMenubar'/>"
     "      <menuitem action='ViewToolbar'/>"
@@ -92,9 +95,11 @@ void ApplicationFrameWork::build_menubar() {
     "  </menubar>"
     "  <toolbar name='ToolBar'>"
     "    <toolitem action='ViewRefresh'/>"
+    "    <toolitem action='ViewStop'/>"
     "  </toolbar>"
     "  <popup name='MenuPopup'>"
     "    <menuitem action='ViewRefresh'/>"
+    "    <menuitem action='ViewStop'/>"
     "    <separator/>"
     "    <menuitem action='ViewMenubar'/>"
     "  </popup>"
@@ -118,6 +123,10 @@ void ApplicationFrameWork::on_action_view_refresh() {
   std::cout << "view refresh activated" << std::endl;
 }
 
+void ApplicationFrameWork::on_action_view_stop() {
+  std::cout << "view refresh stop" << std::endl;
+}
+
 void ApplicationFrameWork::on_action_view_menubar() {
   if (menubar_->is_visible()) menubar_->hide(); else menubar_->show();
 }
index 86003da..f49774d 100644 (file)
@@ -44,6 +44,7 @@ protected:
   void build_menubar();
   virtual void on_action_file_quit();
   virtual void on_action_view_refresh();
+  virtual void on_action_view_stop();
   virtual void on_action_view_menubar();
   virtual void on_action_view_toolbar();
   virtual void on_action_view_statusbar();
index 3e4decc..5372eeb 100644 (file)
@@ -128,6 +128,10 @@ void BoardWindow::on_row_activated(const Gtk::TreeModel::Path& path,
   uri_opener::open(uri);
 }
 
+void BoardWindow::on_action_view_stop() {
+  if (http_getter_) http_getter_->cancel();
+}
+
 bool BoardWindow::is_same(const bbs_detail::Base& bbs) const {
   return *bbs_ == bbs;
 }
@@ -258,6 +262,10 @@ void BoardWindow::on_http_get_end(bool success) {
     statusbar_.push(err.message());
     return;
   }
+  if (!success) {
+    statusbar_.push("Canceled.");
+    return;
+  }
 
   on_refresh_end(response.get_status_line(), response.get_header());
 
index b8626de..f56ea5a 100644 (file)
@@ -50,6 +50,7 @@ protected:
   void on_action_file_open();
 
   virtual void on_action_view_refresh();
+  virtual void on_action_view_stop();
 private:
   virtual bool is_same(const bbs_detail::Base& bbs) const;
 
index c0df602..52c53b7 100644 (file)
@@ -98,6 +98,10 @@ void ThreadWindow::on_action_view_refresh() {
   http_getter_->run();
 }
 
+void ThreadWindow::on_action_view_stop() {
+  if (http_getter_) http_getter_->cancel();
+}
+
 void ThreadWindow::on_http_get_end(bool success) {
 //  const std::string uri = http_getter_->get_uri();
 //  const http::Header request_header = http_getter_->get_request_header();
@@ -108,6 +112,10 @@ void ThreadWindow::on_http_get_end(bool success) {
     statusbar_.push(err.message());
     return;
   }
+  if (!success) {
+    statusbar_.push("Canceled.");
+    return;
+  }
 
   on_refresh_end(response.get_status_line(), response.get_header());
 
index 3489076..3dfd0bf 100644 (file)
@@ -48,6 +48,7 @@ protected:
   ThreadWindow(std::auto_ptr<bbs_detail::Base> bbs);
 
   virtual void on_action_view_refresh();
+  virtual void on_action_view_stop();
 private:
   virtual bool is_same(const bbs_detail::Base& bbs) const;