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})
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/")
INCLUDE(FindPkgConfig)

4
juci/cmake/Modules/FindTestlcl.cmake

@ -10,11 +10,11 @@
find_package(PkgConfig)
find_path(LCL_INCLUDE_DIR headers/TranslationUnit.h
HINTS "/home/forgie/code/libclangpp/"
HINTS "/home/gm/bachelor/lib/"
)
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_INCLUDE_DIRS ${LCL_INCLUDE_DIR} )

26
juci/entry.cc

@ -5,10 +5,13 @@ Entry::Model::Model() :
prev_("Prev"){
std::cout<<"Model Entry"<<std::endl;
}
Entry::View::View() :
view_(Gtk::ORIENTATION_HORIZONTAL),
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() {
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_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()
{
view_.remove(entry_);
view_.remove(button_cancel_);
view_.remove(button_apply_);
view_.remove(button_next_);
view_.remove(button_prev_);
}
Entry::Controller::Controller() {
}
@ -40,6 +54,16 @@ void Entry::Controller::OnShowSetFilenName(std::string exstension) {
view_.entry().grab_focus();
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(){
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_cancel(){return button_cancel_;};
void OnShowSetFilenName(std::string exstension);
void OnShowSearch(std::string current);
void OnHideEntry();
protected:
Gtk::Box view_;
Gtk::Entry entry_;
Gtk::Button button_apply_, button_cancel_;
Gtk::Button button_apply_, button_cancel_, button_next_, button_prev_;
};
class Model {
public:
@ -33,7 +34,9 @@ namespace Entry {
Controller();
Gtk::Box& view();
Gtk::Button& button_apply();
std::string text();
void OnShowSetFilenName(std::string exstension);
void OnShowSearch(std::string current);
void OnHideEntries();
View view_;
};// class controller

54
juci/notebook.cc

@ -27,18 +27,21 @@ Notebook::Controller::Controller(Keybindings::Controller& keybindings){
"New empty file",
"Create a new file"),
[this]() {
isnewfile = true;
OnFileNewEmptyfile();
});
keybindings.action_group_menu()->add(Gtk::Action::create("FileNewCC",
"New cc file"),
Gtk::AccelKey("<control><alt>c"),
[this]() {
isnewfile = true;
OnFileNewCCFile();
});
keybindings.action_group_menu()->add(Gtk::Action::create("FileNewH",
"New h file"),
Gtk::AccelKey("<control><alt>h"),
[this]() {
isnewfile = true;
OnFileNewHeaderFile();
});
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",
Gtk::Stock::FIND),
[this]() {
isnewfile = false;
OnEditSearch();
//TODO(Oyvang, Zalox, Forgi)Create function OnEditFind();
});
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(
[this]() {
OnNewPage(entry_.view_.entry().get_text());
if(isnewfile){
OnNewPage(entry_.text());
}else{
Search();
}
entry_.OnHideEntries();
});
}//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());
source_vec_.push_back(new Source::Controller);
scrolledwindow_vec_.back()->add(source_vec_.back()->view());
source_vec_.back()->OnOpenFile(filename);
view_.notebook().append_page(*scrolledwindow_vec_.back(), filename);
source_vec_.back()->OnOpenFile(path);
unsigned pos = path.find_last_of("/\\");
view_.notebook().append_page(*scrolledwindow_vec_.back(), path.substr(pos+1));
view_.notebook().show_all_children();
view_.notebook().set_focus_child(*scrolledwindow_vec_.back());
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 OnCloseCurrentPage();
void OnOpenFile(std::string filename);
// private:
View view_;
Entry::Controller entry_;
std::vector<Source::Controller*> source_vec_;
std::vector<Gtk::ScrolledWindow*> scrolledwindow_vec_;
Glib::RefPtr<Gtk::Clipboard> refClipboard;
std::list<Gtk::TargetEntry> listTargets;
std::string GetCursorWord();
void OnFileNewEmptyfile();
void OnFileNewCCFile();
void OnFileNewHeaderFile();
void OnEditCopy();
void OnEditPaste();
void OnEditCut();
void OnEditSearch();
void Search();
private:
bool isnewfile;
}; // class controller
} // namespace Notebook

Loading…
Cancel
Save