Browse Source

directories.h and .cc code cleanup

master
tedjk 11 years ago
parent
commit
be3cdb1dc1
  1. 30
      juci/directories.cc
  2. 21
      juci/directories.h
  3. 5
      juci/notebook.cc

30
juci/directories.cc

@ -1,12 +1,12 @@
#include "directories.h"
Directories::Controller::Controller() {
m_ScrolledWindow.add(m_TreeView);
m_ScrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
}
bool Directories::Controller::open_folder(const boost::filesystem::path& dir_path) {
bool Directories::Controller::
open_folder(const boost::filesystem::path& dir_path) {
m_refTreeModel = Gtk::TreeStore::create(view());
m_TreeView.set_model(m_refTreeModel);
m_TreeView.remove_all_columns();
@ -14,12 +14,12 @@ bool Directories::Controller::open_folder(const boost::filesystem::path& dir_pat
m_TreeView.append_column(project_name, view().m_col_name);
int row_id = 0;
Gtk::TreeModel::Row row;
std::string col_id("a"+dir_path.filename().string());
list_dirs(dir_path, row, row_id);
m_refTreeModel->set_sort_column(0, Gtk::SortType::SORT_ASCENDING);
}
bool Directories::Controller::list_dirs( const boost::filesystem::path& dir_path,
void Directories::Controller::
list_dirs(const boost::filesystem::path& dir_path,
Gtk::TreeModel::Row &parent,
unsigned row_id) {
boost::filesystem::directory_iterator end_itr;
@ -28,7 +28,7 @@ bool Directories::Controller::list_dirs( const boost::filesystem::path& dir_path
Gtk::TreeModel::Row child;
Gtk::TreeModel::Row row;
//Fill the TreeView's model
// Fill the treeview
for ( boost::filesystem::directory_iterator itr( dir_path );
itr != end_itr;
++itr ) {
@ -59,43 +59,39 @@ bool Directories::Controller::list_dirs( const boost::filesystem::path& dir_path
}
int Directories::Controller::count(const std::string path) {
int count = 0;
for (int i = 0; i < path.size(); i++)
if (path[i] == '/') count++;
return count;
}
std::string Directories::Controller::get_project_name(const boost::filesystem::path& dir_path) {
std::string Directories::Controller::
get_project_name(const boost::filesystem::path& dir_path) {
std::string project_name;
std::string project_name_var;
boost::filesystem::directory_iterator end_itr;
for (boost::filesystem::directory_iterator itr( dir_path );
itr != end_itr;
++itr ) {
std::cout << "not cmakelists.txt" << itr->path().string() << std::endl;
if (itr->path().filename().string() == "CMakeLists.txt") {
std::cout << "found cmakeliksts.txt" << std::endl;
std::ifstream ifs(itr->path().string());
std::string line;
while (std::getline(ifs, line)) {
if (line.find("project(", 0) != std::string::npos
|| line.find("project (", 0) != std::string::npos ) {
std::cout << "found the variabel for project name: "<< line << std::endl;
size_t variabel_start = line.find("{", 0);
size_t variabel_end = line.find("}", variabel_start);
project_name_var = line.substr(variabel_start+1, (variabel_end)-variabel_start-1);
std::cout << "it is: "<< project_name_var << std::endl;
project_name_var = line.substr(variabel_start+1,
(variabel_end)-variabel_start-1);
break;
}
}
std::ifstream ifs2(itr->path().string());
while (std::getline(ifs2, line)) {
if (line.find("set("+project_name_var, 0) != std::string::npos) {
std::cout << "the variabel value for project name: " << line << std::endl;
size_t variabel_start = line.find(project_name_var,0) +project_name_var.length();
size_t variabel_start = line.find(project_name_var, 0)
+project_name_var.length();
size_t variabel_end = line.find(")", variabel_start);
project_name = line.substr(variabel_start, variabel_end-variabel_start);
project_name = line.substr(variabel_start,
variabel_end-variabel_start);
return project_name;
}
}

21
juci/directories.h

@ -1,5 +1,5 @@
#ifndef JUCI_DIRECTIRIES_H_
#define JUCI_DIRECTIRIES_H_
#ifndef JUCI_DIRECTORIES_H_
#define JUCI_DIRECTORIES_H_
#include <gtkmm.h>
#include <glib.h>
@ -23,35 +23,30 @@ namespace Directories {
class Model {
};
class Controller {
public:
Controller();
View& view() { return view_;};
Model& model() { return model_;};
View& view() { return view_;}
Model& model() { return model_;}
Gtk::ScrolledWindow& widget() {return m_ScrolledWindow;};
Gtk::ScrolledWindow& widget() {return m_ScrolledWindow;}
bool open_folder (const boost::filesystem::path& dir_path);
bool list_dirs( const boost::filesystem::path& dir_path,
void list_dirs (const boost::filesystem::path& dir_path,
Gtk::TreeModel::Row &row, unsigned depth);
std::string get_project_name(const boost::filesystem::path& dir_path);
int count (const std::string path);
//Child widgets:
Gtk::Box m_VBox;
Gtk::ScrolledWindow m_ScrolledWindow;
Gtk::TreeView m_TreeView;
Glib::RefPtr<Gtk::TreeStore> m_refTreeModel;
private:
View view_;
Model model_;
protected:
void on_treeview_row_activated(const Gtk::TreeModel::Path& path,
Gtk::TreeViewColumn* column);
};
}
} // namespace Directories
#endif // JUCI_DIRECTIRIES_H_
#endif // JUCI_DIRECTORIES_H_

5
juci/notebook.cc

@ -318,7 +318,8 @@ void Notebook::Controller::OnBufferChange() {
delete scroll;
}
}
void Notebook::Controller::OnDirectoryNavigation(const Gtk::TreeModel::Path& path,
void Notebook::Controller
::OnDirectoryNavigation(const Gtk::TreeModel::Path& path,
Gtk::TreeViewColumn* column) {
Gtk::TreeModel::iterator iter = directories().m_refTreeModel->get_iter(path);
if(iter) {
@ -326,7 +327,6 @@ void Notebook::Controller::OnDirectoryNavigation(const Gtk::TreeModel::Path& pat
boost::filesystem::path fs_path(Glib::ustring(row[directories()
.view().m_col_path]));
if (boost::filesystem::is_directory(fs_path)) {
std::cout << "Expand folder: " << row[directories().view().m_col_path] << std::endl;
directories().m_TreeView.row_expanded(path) ?
directories().m_TreeView.collapse_row(path) :
directories().m_TreeView.expand_row(path, false);
@ -334,7 +334,6 @@ void Notebook::Controller::OnDirectoryNavigation(const Gtk::TreeModel::Path& pat
std::stringstream sstm;
sstm << row[directories().view().m_col_path];
std::string file = sstm.str();
std::cout << "open file: "<< row[directories().view().m_col_path] << std::endl;
OnOpenFile(file);
}
}

Loading…
Cancel
Save