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_item_create.set_label("Create file");
menu_item_create.signal_activate().connect([this] {
auto create_file_label = "Create file";
auto create_file_signal = [this] {
if(menu_popup_row_path.empty())
return;
EntryBox::get().clear();
@ -325,11 +325,34 @@ Directories::Directories() : Gtk::TreeView(), stop_update_thread(false) {
entry_it->activate();
});
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.show_all();
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() {
@ -429,6 +452,10 @@ bool Directories::on_button_press_event(GdkEventButton* event) {
menu.popup(event->button, event->time);
return true;
}
else {
menu_popup_row_path=this->path;
menu_root.popup(event->button, event->time);
}
}
return Gtk::TreeView::on_button_press_event(event);

5
src/directories.h

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

Loading…
Cancel
Save