Browse Source

Made creating files in root directory possible

merge-requests/365/head
milleniumbug 10 years ago
parent
commit
5f311bd9a0
  1. 33
      src/directories.cc
  2. 5
      src/directories.h

33
src/directories.cc

@ -299,8 +299,8 @@ Directories::Directories() : Gtk::TreeView(), stop_update_thread(false) {
}); });
menu.append(menu_item_delete); menu.append(menu_item_delete);
menu_item_create.set_label("Create file"); auto create_file_label = "Create file";
menu_item_create.signal_activate().connect([this] { auto create_file_signal = [this] {
if(menu_popup_row_path.empty()) if(menu_popup_row_path.empty())
return; return;
EntryBox::get().clear(); EntryBox::get().clear();
@ -325,11 +325,34 @@ Directories::Directories() : Gtk::TreeView(), stop_update_thread(false) {
entry_it->activate(); entry_it->activate();
}); });
EntryBox::get().show(); EntryBox::get().show();
}); };
menu_item_create.set_label(create_file_label);
menu_item_create.signal_activate().connect(create_file_signal);
menu.append(menu_item_create); menu.append(menu_item_create);
menu.show_all(); menu.show_all();
menu.accelerate(*this); menu.accelerate(*this);
menu_root_item_create.set_label(create_file_label);
menu_root_item_create.signal_activate().connect(create_file_signal);
menu_root.append(menu_root_item_create);
menu_root.show_all();
menu_root.accelerate(*this);
set_headers_clickable();
forall([this](Gtk::Widget &widget) {
if(widget.get_name()=="GtkButton") {
widget.signal_button_press_event().connect([this](GdkEventButton *event) {
if(event->type==GDK_BUTTON_PRESS && event->button==GDK_BUTTON_SECONDARY && !path.empty()) {
menu_popup_row_path=this->path;
menu_root.popup(event->button, event->time);
}
return true;
});
}
});
} }
Directories::~Directories() { Directories::~Directories() {
@ -429,6 +452,10 @@ bool Directories::on_button_press_event(GdkEventButton* event) {
menu.popup(event->button, event->time); menu.popup(event->button, event->time);
return true; return true;
} }
else {
menu_popup_row_path=this->path;
menu_root.popup(event->button, event->time);
}
} }
return Gtk::TreeView::on_button_press_event(event); return Gtk::TreeView::on_button_press_event(event);

5
src/directories.h

@ -68,10 +68,13 @@ private:
std::atomic<bool> stop_update_thread; std::atomic<bool> stop_update_thread;
Dispatcher dispatcher; Dispatcher dispatcher;
Gtk::Menu menu_root;
Gtk::MenuItem menu_root_item_create;
Gtk::Menu menu; Gtk::Menu menu;
Gtk::MenuItem menu_item_create;
Gtk::MenuItem menu_item_rename; Gtk::MenuItem menu_item_rename;
Gtk::MenuItem menu_item_delete; Gtk::MenuItem menu_item_delete;
Gtk::MenuItem menu_item_create;
boost::filesystem::path menu_popup_row_path; boost::filesystem::path menu_popup_row_path;
}; };

Loading…
Cancel
Save