Browse Source

Merge branch 'configbug' of bitbucket.org:cppit/juci into configbug

merge-requests/365/head
tedjk 11 years ago
parent
commit
eaefc899c0
  1. 1
      juci/config.cc
  2. 10
      juci/notebook.cc
  3. 2
      juci/source.cc
  4. 5
      juci/source.h
  5. 37
      juci/terminal.cc
  6. 10
      juci/terminal.h

1
juci/config.cc

@ -26,7 +26,6 @@ void MainConfig::GenerateSource() {
for (auto &i : extensions_json) {
source_cfg_.InsertExtension(i.second.get_value<std::string>());
}
DEBUG("Source cfg fetched");
}

10
juci/notebook.cc

@ -3,8 +3,8 @@
#include "logging.h"
Notebook::Model::Model() {
cc_extension_ = ".cc";
h_extension_ = ".h";
cc_extension_ = ".cpp";
h_extension_ = ".hpp";
scrollvalue_ = 50;
}
@ -17,7 +17,6 @@ Notebook::Controller::Controller(Gtk::Window* window,
Keybindings::Controller& keybindings,
Source::Config& source_cfg,
Directories::Config& dir_cfg) :
source_config_(source_cfg),
directories_(dir_cfg),
index_(0, 1) {
window_ = window;
@ -25,6 +24,7 @@ Notebook::Controller::Controller(Gtk::Window* window,
refClipboard_ = Gtk::Clipboard::get();
ispopup = false;
view().pack1(directories_.widget(), true, true);
source_config_ = source_cfg;
CreateKeybindings(keybindings);
INFO("Notebook Controller Success");
} // Constructor
@ -719,13 +719,9 @@ bool Notebook::Controller::LegalExtension(std::string e) {
std::transform(e.begin(), e.end(),e.begin(), ::tolower);
std::vector<std::string> extensions =
source_config().extensiontable();
if (find(extensions.begin(), extensions.end(), e) != extensions.end()) {
DEBUG("Legal extension");
return true;
// if(e=="c" ||e=="cc" ||e=="cpp" ||e=="cxx" || e=="c++"||
// e=="h" ||e=="hh" ||e=="hpp" ||e=="hxx" || e=="h++"){
}
DEBUG("Ilegal extension");
return false;

2
juci/source.cc

@ -70,7 +70,7 @@ const std::unordered_map<string, string>& Source::Config::typetable() const {
return typetable_;
}
const std::vector<string>& Source::Config::extensiontable() const{
std::vector<string>& Source::Config::extensiontable(){
return extensiontable_;
}

5
juci/source.h

@ -20,7 +20,7 @@ namespace Source {
Config();
const std::unordered_map<std::string, std::string>& tagtable() const;
const std::unordered_map<std::string, std::string>& typetable() const;
const std::vector<std::string>& extensiontable() const;
std::vector<std::string>& extensiontable();
void SetTagTable(const std::unordered_map<std::string, std::string>
&tagtable);
void InsertTag(const std::string &key, const std::string &value);
@ -28,10 +28,11 @@ namespace Source {
&tagtable);
void InsertType(const std::string &key, const std::string &value);
void InsertExtension(const std::string &ext);
std::vector<std::string> extensiontable_;
private:
std::unordered_map<std::string, std::string> tagtable_;
std::unordered_map<std::string, std::string> typetable_;
std::vector<std::string> extensiontable_;
std::string background_;
}; // class Config

37
juci/terminal.cc

@ -4,6 +4,18 @@
#include "logging.h"
Terminal::Config::Config() {
}
Terminal::Config::Config(Terminal::Config& original) {
for (auto it = 0; original.compile_commands().size(); ++it) {
InsertCompileCommand(original.compile_commands().at(it));
}
}
void Terminal::Config::InsertCompileCommand(std::string command){
compile_commands_.push_back(command);
}
Terminal::View::View(){
scrolledwindow_.add(textview_);
scrolledwindow_.set_size_request(-1,150);
@ -28,11 +40,18 @@ void Terminal::Controller::Compile(){
INFO("Terminal: Compile");
Terminal().get_buffer()->set_text("");
DEBUG("Terminal: Compile: running cmake command");
ExecuteCommand("cmake .", "r");
if (ExistInConsole(cmake_sucsess)){
DEBUG("Terminal: Compile: running make command");
ExecuteCommand("make", "r");
std::vector<std::string> commands = config().compile_commands();
for (auto it = 0; it < commands.size(); ++it) {
ExecuteCommand(commands.at(it), "r");
}
// ExecuteCommand("rm -rf ./.build", "r");
// ExecuteCommand("mkdir ./.build", "r");
// ExecuteCommand("cmake -B./build -H.", "r");
// if (ExistInConsole(cmake_sucsess)){
// DEBUG("Terminal: Compile: running make command");
// ExecuteCommand("cd ./.build/; make", "r");
// }
PrintMessage("\n");
DEBUG("Terminal: Compile: compile done");
}
@ -42,7 +61,7 @@ void Terminal::Controller::Run(std::string executable) {
PrintMessage("juCi++ execute: " + executable + "\n");
DEBUG("Terminal: Compile: running run command: ");
DEBUG_VAR(executable);
ExecuteCommand("./"+executable, "r");
ExecuteCommand("cd ./build/; ./"+executable, "r");
PrintMessage("\n");
}
@ -66,16 +85,18 @@ void Terminal::Controller::ExecuteCommand(std::string command, std::string mode)
INFO("Terminal: ExecuteCommand");
command = folder_command_+command;
DEBUG("Terminal: PrintMessage: Running command");
DEBUG_VAR(command);
FILE* p = popen(command.c_str(), mode.c_str());
FILE* p = NULL;
p = popen(command.c_str(), mode.c_str());
std::cout << "KJØRTE FINT!" << std::endl;
if (p == NULL) {
PrintMessage("juCi++ ERROR: Failed to run command" + command + "\n");
}else {
std::cout << "SKRIVER UT KOMMANDO RESULAT" << std::endl;
char buffer[1028];
while (fgets(buffer, 1028, p) != NULL) {
PrintMessage(buffer);
}
pclose(p);
}
}

10
juci/terminal.h

@ -7,6 +7,16 @@
namespace Terminal {
class Config {
public:
Config ();
Config(Terminal::Config& original);
std::vector<std::string>& compile_commands() {return &compile_commands_;}
void InsertCompileCommand(std::string command);
private:
std::vector<std::string> compile_commands_;
};
class View {
public:
View();

Loading…
Cancel
Save