Browse Source

Fixed minor issues and started on seach function

master
oyvang 11 years ago
parent
commit
c7726918ae
  1. 2
      juci/CMakeLists.txt
  2. 4
      juci/cmake/Modules/FindTestlcl.cmake
  3. 26
      juci/entry.cc
  4. 5
      juci/entry.h
  5. 54
      juci/notebook.cc
  6. 7
      juci/notebook.h

2
juci/CMakeLists.txt

@ -4,7 +4,7 @@ set(module juci_to_python_api)
project (${project_name}) project (${project_name})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/")
INCLUDE(FindPkgConfig) INCLUDE(FindPkgConfig)

4
juci/cmake/Modules/FindTestlcl.cmake

@ -10,11 +10,11 @@
find_package(PkgConfig) find_package(PkgConfig)
find_path(LCL_INCLUDE_DIR headers/TranslationUnit.h find_path(LCL_INCLUDE_DIR headers/TranslationUnit.h
HINTS "/home/forgie/code/libclangpp/" HINTS "/home/gm/bachelor/lib/"
) )
find_library(LCL_LIBRARY NAMES testlcl find_library(LCL_LIBRARY NAMES testlcl
HINTS "/home/forgie/code/libclangpp/lib") HINTS "/home/gm/bachelor/lib/lib/")
set(LCL_LIBRARIES ${LCL_LIBRARY} ) set(LCL_LIBRARIES ${LCL_LIBRARY} )
set(LCL_INCLUDE_DIRS ${LCL_INCLUDE_DIR} ) set(LCL_INCLUDE_DIRS ${LCL_INCLUDE_DIR} )

26
juci/entry.cc

@ -5,10 +5,13 @@ Entry::Model::Model() :
prev_("Prev"){ prev_("Prev"){
std::cout<<"Model Entry"<<std::endl; std::cout<<"Model Entry"<<std::endl;
} }
Entry::View::View() : Entry::View::View() :
view_(Gtk::ORIENTATION_HORIZONTAL), view_(Gtk::ORIENTATION_HORIZONTAL),
button_apply_(Gtk::Stock::APPLY), button_apply_(Gtk::Stock::APPLY),
button_cancel_(Gtk::Stock::CANCEL){ button_cancel_(Gtk::Stock::CANCEL),
button_next_("Next"),
button_prev_("Prev"){
} }
Gtk::Box& Entry::View::view() { Gtk::Box& Entry::View::view() {
return view_; return view_;
@ -20,11 +23,22 @@ void Entry::View::OnShowSetFilenName(std::string exstension) {
view_.pack_end(button_cancel_, Gtk::PACK_SHRINK); view_.pack_end(button_cancel_, Gtk::PACK_SHRINK);
view_.pack_end(button_apply_, Gtk::PACK_SHRINK); view_.pack_end(button_apply_, Gtk::PACK_SHRINK);
} }
void Entry::View::OnShowSearch(std::string current){
entry_.set_max_length(50);
entry_.set_text(current);
view_.pack_start(entry_);
view_.pack_start(button_next_, Gtk::PACK_SHRINK);
view_.pack_start(button_prev_, Gtk::PACK_SHRINK);
view_.pack_end(button_cancel_, Gtk::PACK_SHRINK);
view_.pack_end(button_apply_, Gtk::PACK_SHRINK);
}
void Entry::View::OnHideEntry() void Entry::View::OnHideEntry()
{ {
view_.remove(entry_); view_.remove(entry_);
view_.remove(button_cancel_); view_.remove(button_cancel_);
view_.remove(button_apply_); view_.remove(button_apply_);
view_.remove(button_next_);
view_.remove(button_prev_);
} }
Entry::Controller::Controller() { Entry::Controller::Controller() {
} }
@ -40,6 +54,16 @@ void Entry::Controller::OnShowSetFilenName(std::string exstension) {
view_.entry().grab_focus(); view_.entry().grab_focus();
view_.entry().set_position(0); view_.entry().set_position(0);
} }
void Entry::Controller::OnShowSearch(std::string current){
view_.OnShowSearch(current);
view_.view().show_all();
view_.entry().grab_focus();
view_.entry().set_position(0);
}
void Entry::Controller::OnHideEntries(){ void Entry::Controller::OnHideEntries(){
view_.OnHideEntry(); view_.OnHideEntry();
} }
std::string Entry::Controller::text(){
return view_.entry().get_text();
}

5
juci/entry.h

@ -14,11 +14,12 @@ namespace Entry {
Gtk::Button& button_apply(){return button_apply_;}; Gtk::Button& button_apply(){return button_apply_;};
Gtk::Button& button_cancel(){return button_cancel_;}; Gtk::Button& button_cancel(){return button_cancel_;};
void OnShowSetFilenName(std::string exstension); void OnShowSetFilenName(std::string exstension);
void OnShowSearch(std::string current);
void OnHideEntry(); void OnHideEntry();
protected: protected:
Gtk::Box view_; Gtk::Box view_;
Gtk::Entry entry_; Gtk::Entry entry_;
Gtk::Button button_apply_, button_cancel_; Gtk::Button button_apply_, button_cancel_, button_next_, button_prev_;
}; };
class Model { class Model {
public: public:
@ -33,7 +34,9 @@ namespace Entry {
Controller(); Controller();
Gtk::Box& view(); Gtk::Box& view();
Gtk::Button& button_apply(); Gtk::Button& button_apply();
std::string text();
void OnShowSetFilenName(std::string exstension); void OnShowSetFilenName(std::string exstension);
void OnShowSearch(std::string current);
void OnHideEntries(); void OnHideEntries();
View view_; View view_;
};// class controller };// class controller

54
juci/notebook.cc

@ -27,18 +27,21 @@ Notebook::Controller::Controller(Keybindings::Controller& keybindings){
"New empty file", "New empty file",
"Create a new file"), "Create a new file"),
[this]() { [this]() {
isnewfile = true;
OnFileNewEmptyfile(); OnFileNewEmptyfile();
}); });
keybindings.action_group_menu()->add(Gtk::Action::create("FileNewCC", keybindings.action_group_menu()->add(Gtk::Action::create("FileNewCC",
"New cc file"), "New cc file"),
Gtk::AccelKey("<control><alt>c"), Gtk::AccelKey("<control><alt>c"),
[this]() { [this]() {
isnewfile = true;
OnFileNewCCFile(); OnFileNewCCFile();
}); });
keybindings.action_group_menu()->add(Gtk::Action::create("FileNewH", keybindings.action_group_menu()->add(Gtk::Action::create("FileNewH",
"New h file"), "New h file"),
Gtk::AccelKey("<control><alt>h"), Gtk::AccelKey("<control><alt>h"),
[this]() { [this]() {
isnewfile = true;
OnFileNewHeaderFile(); OnFileNewHeaderFile();
}); });
keybindings.action_group_menu()->add(Gtk::Action::create("WindowCloseTab", keybindings.action_group_menu()->add(Gtk::Action::create("WindowCloseTab",
@ -50,6 +53,8 @@ Notebook::Controller::Controller(Keybindings::Controller& keybindings){
keybindings.action_group_menu()->add(Gtk::Action::create("EditFind", keybindings.action_group_menu()->add(Gtk::Action::create("EditFind",
Gtk::Stock::FIND), Gtk::Stock::FIND),
[this]() { [this]() {
isnewfile = false;
OnEditSearch();
//TODO(Oyvang, Zalox, Forgi)Create function OnEditFind(); //TODO(Oyvang, Zalox, Forgi)Create function OnEditFind();
}); });
keybindings.action_group_menu()->add(Gtk::Action::create("EditCopy", keybindings.action_group_menu()->add(Gtk::Action::create("EditCopy",
@ -69,7 +74,11 @@ Notebook::Controller::Controller(Keybindings::Controller& keybindings){
}); });
entry_.view_.entry().signal_activate().connect( entry_.view_.entry().signal_activate().connect(
[this]() { [this]() {
OnNewPage(entry_.view_.entry().get_text()); if(isnewfile){
OnNewPage(entry_.text());
}else{
Search();
}
entry_.OnHideEntries(); entry_.OnHideEntries();
}); });
}//Constructor }//Constructor
@ -132,17 +141,54 @@ void Notebook::Controller::OnEditCut() {
} }
} }
void Notebook::Controller::OnOpenFile(std::string filename) { void Notebook::Controller::OnOpenFile(std::string path) {
scrolledwindow_vec_.push_back(new Gtk::ScrolledWindow()); scrolledwindow_vec_.push_back(new Gtk::ScrolledWindow());
source_vec_.push_back(new Source::Controller); source_vec_.push_back(new Source::Controller);
scrolledwindow_vec_.back()->add(source_vec_.back()->view()); scrolledwindow_vec_.back()->add(source_vec_.back()->view());
source_vec_.back()->OnOpenFile(filename); source_vec_.back()->OnOpenFile(path);
view_.notebook().append_page(*scrolledwindow_vec_.back(), filename); unsigned pos = path.find_last_of("/\\");
view_.notebook().append_page(*scrolledwindow_vec_.back(), path.substr(pos+1));
view_.notebook().show_all_children(); view_.notebook().show_all_children();
view_.notebook().set_focus_child(*scrolledwindow_vec_.back()); view_.notebook().set_focus_child(*scrolledwindow_vec_.back());
view_.notebook().set_current_page(view_.notebook().get_n_pages()-1); view_.notebook().set_current_page(view_.notebook().get_n_pages()-1);
} }
std::string Notebook::Controller::GetCursorWord(){
int page = view_.notebook().get_current_page();
std::string word;
Gtk::TextIter start,end;
start=source_vec_.at(page)->view().get_buffer()->begin();
end=source_vec_.at(page)->view().get_buffer()->end();
// if(!source_vec_.at(page)->view().get_buffer()->get_selection_bounds(start,
// end)){
start=source_vec_.at(page)->view().get_buffer()->get_insert()->get_iter();
end=source_vec_.at(page)->view().get_buffer()->get_insert()->get_iter();
if(!end.ends_line()) {
while(!end.ends_word()){
end.forward_char();
}
}
if(!start.starts_line()) {
while(!start.starts_word()){
start.backward_char();
}
}
word = source_vec_.at(page)->view().get_buffer()->get_text(start,end);
//TODO(Oyvang)fix selected text
return word;
}
void Notebook::Controller::OnEditSearch(){
entry_.OnShowSearch(GetCursorWord());
}
void Notebook::Controller::Search(){
std::string search_word;
search_word = entry_.text();
//TODO(oyvang) create seacrh function
std::cout<<"funka"<<std::endl;
}

7
juci/notebook.h

@ -24,19 +24,24 @@ namespace Notebook {
void OnNewPage(std::string name); void OnNewPage(std::string name);
void OnCloseCurrentPage(); void OnCloseCurrentPage();
void OnOpenFile(std::string filename); void OnOpenFile(std::string filename);
// private:
View view_; View view_;
Entry::Controller entry_; Entry::Controller entry_;
std::vector<Source::Controller*> source_vec_; std::vector<Source::Controller*> source_vec_;
std::vector<Gtk::ScrolledWindow*> scrolledwindow_vec_; std::vector<Gtk::ScrolledWindow*> scrolledwindow_vec_;
Glib::RefPtr<Gtk::Clipboard> refClipboard; Glib::RefPtr<Gtk::Clipboard> refClipboard;
std::list<Gtk::TargetEntry> listTargets; std::list<Gtk::TargetEntry> listTargets;
std::string GetCursorWord();
void OnFileNewEmptyfile(); void OnFileNewEmptyfile();
void OnFileNewCCFile(); void OnFileNewCCFile();
void OnFileNewHeaderFile(); void OnFileNewHeaderFile();
void OnEditCopy(); void OnEditCopy();
void OnEditPaste(); void OnEditPaste();
void OnEditCut(); void OnEditCut();
void OnEditSearch();
void Search();
private:
bool isnewfile;
}; // class controller }; // class controller
} // namespace Notebook } // namespace Notebook

Loading…
Cancel
Save