François Gautrais 8 lat temu
rodzic
commit
0a4d8dfba2
6 zmienionych plików z 40 dodań i 21 usunięć
  1. 9 5
      src/g-window.cc
  2. 1 1
      src/general.cc
  3. 11 11
      src/generator.cc
  4. 7 1
      src/os.cc
  5. 6 2
      src/stage-tab.cc
  6. 6 1
      src/stage.cc

+ 9 - 5
src/g-window.cc

@@ -234,6 +234,8 @@ void GWindow::on_generate()
                                  GTK_BUTTONS_OK,
                                  sb.c_str());
 	gtk_dialog_run (GTK_DIALOG (dialog));
+	gtk_widget_destroy (dialog);
+	
 }
 
 void GWindow::write(const std::string& file)
@@ -267,6 +269,7 @@ void GWindow::on_new()
 	m_zone->open(v);
 	m_general->open(v);
 	m_stage->open(v);
+	m_general->on_stage_changed();
 	changeFile ("");
 }
 
@@ -310,7 +313,7 @@ void GWindow::on_import()
 	GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
 	gint res;
 
-	dialog = gtk_file_chooser_dialog_new ("Ouvrir le fichier de jeu",
+	dialog = gtk_file_chooser_dialog_new ("Importer le fichier Merkaartor",
 		                                  GTK_WINDOW(m_window),
 		                                  action,
 		                                  _("_Annuler"),
@@ -352,18 +355,18 @@ void GWindow::on_save()
 void GWindow::on_saveas()
 {
 	GtkWidget *dialog;
-	GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
+	GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
 	gint res;
 
-	dialog = gtk_file_chooser_dialog_new ("Ouvrir le fichier de jeu",
+	dialog = gtk_file_chooser_dialog_new ("Enregister le fichier de jeu",
 		                                  GTK_WINDOW(m_window),
 		                                  action,
 		                                  _("_Annuler"),
 		                                  GTK_RESPONSE_CANCEL,
-		                                  _("_Ouvrir"),
+		                                  _("_Enregistrer"),
 		                                  GTK_RESPONSE_ACCEPT,
 		                                  NULL);
-
+	gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE);
 	res = gtk_dialog_run (GTK_DIALOG (dialog));
 	if (res == GTK_RESPONSE_ACCEPT)
 	{
@@ -371,6 +374,7 @@ void GWindow::on_saveas()
 		write(gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog)));
 		changeFile(gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(dialog)));
 	}
+	gtk_widget_destroy (dialog);
 }
 
 void GWindow::changeFile(const std::string& file)

+ 1 - 1
src/general.cc

@@ -28,7 +28,7 @@ General::General(Json::Value& v) : Data(v)
 	else
 	{
 		m_name="";
-		m_nStages=0;
+		m_nStages=3;
 		m_dir=".";
 	}
 }

+ 11 - 11
src/generator.cc

@@ -37,7 +37,7 @@ Generator::Generator(General& g, std::vector<Area>& a,std::vector<Resource>& r,
 {
 	m_gen=g;
 	m_resources=r;
-	m_areas=a;
+	m_areas=a; 
 	m_stages=s;
 	m_ui=ui;
 	m_nErrors=0;
@@ -47,6 +47,7 @@ Generator::Generator(General& g, std::vector<Area>& a,std::vector<Resource>& r,
 	std::cout << "Err =" << m_nErrors << "\n";
 	prepare();
 }
+
 Generator::~Generator()
 {
 } 
@@ -61,7 +62,7 @@ std::string Generator::getLog()
 	ret+="\n\nErreurs\n";
 	
 	for(int i=0; i<m_errors.size(); i++)
-	{
+	{ 
 		if(m_errors[i][0] == 'A') w++;
 		else if(m_errors[i][0] == 'E') e++;
 		else c++;
@@ -77,7 +78,7 @@ void Generator::log(const std::string& l)
 {
 	m_log.push_back (l);
 }
-
+ 
 void Generator::error(const std::string& l, int level)
 {
 	std::string p;
@@ -115,8 +116,8 @@ Resource*  Generator::findResource(const std::string& name)
 		if(m_resources[i].getName () == name)
 			return &m_resources[i];
 	return NULL;
-}
-
+} 
+ 
 Stage*  Generator::findStage(int i)
 {
 	for(int i=0; i<m_stages.size(); i++)
@@ -268,7 +269,7 @@ void Generator::generateResource(Resource& r)
 			generateResource3D (r);
 			break;
 		case TYPE_IMAGE:
-			generateResourceImage (r);
+			generateResourceImage (r); 
 			break;
 		case TYPE_AUDIO:
 			generateResourceAudio (r);
@@ -279,10 +280,9 @@ void Generator::generateResource(Resource& r)
 			break;
 	}
 }
-
+ 
 std::string Generator::newFilename(const std::string& file)
 {
-	
 	OS::Path p(file);
 	return strtolower(p.m_name)+"_"+strtolower(p.m_ext);
 }
@@ -324,7 +324,7 @@ void Generator::copyObj(const std::string& obj, const std::string& dir, const st
 			out << buf << std::endl;
 	}
 }
-
+ 
 
 int   Generator::getErrorsCount() { return m_nErrors; }
 int   Generator::getWarningCount() { return m_nWarning; }
@@ -351,7 +351,7 @@ void Generator::copyMtl(const std::string& mtl, const std::string& dir)
 		{
 			std::string tmp="";
 			std::string file="";
-
+ 
 			//std::cout << "buf = "<< buf << std::endl;
 			tmp=buf.substr(start, 7);
 			for(int j=start+7; j<buf.size() && buf[j] != '\n'
@@ -365,7 +365,7 @@ void Generator::copyMtl(const std::string& mtl, const std::string& dir)
 		else
 			out << buf  << std::endl;
 	}
-}   
+}    
   
  
 void Generator::copyImage(const std::string& img, const std::string& dir)

+ 7 - 1
src/os.cc

@@ -22,6 +22,12 @@
 #include <fstream>
 #if defined(__linux__)
 #include <unistd.h>
+
+#include <sys/time.h>
+#include <sys/vfs.h>
+#include <sys/statvfs.h>
+#include <sys/stat.h>
+#include <sys/types.h>
 #else
 #include <direct.h>
 #endif
@@ -75,7 +81,7 @@ std::string OS::Path::getFileName()
 void OS::mkdir(const std::string& dir)
 {
 	#if defined(__linux__)
-	//::mkdir(dir.c_str(), 0755);
+	::mkdir(dir.c_str(), 0755);
 	#else
 	::mkdir(dir.c_str());
 	

+ 6 - 2
src/stage-tab.cc

@@ -27,24 +27,28 @@
 
 static void on_save_clicked(GtkWidget* gtk, gpointer ud)
 {
+	//printf("Save clicked\n");
 	StageTab* z = (StageTab*) ((CallbackArg*)ud)->tab;
 	z->on_save_clicked ();
 }
 
 static void on_click_res(GtkButton* gtk, gpointer ud)
 {
+	//printf("Click res\n");
 	StageTab* z = (StageTab*) ((CallbackArg*)ud)->tab;
 	z->on_click_res ();
 }
 
 static void on_select(GtkTreeView* b, gpointer ud)
 {
+	//printf("Select\n");
 	StageTab* z = (StageTab*) ((CallbackArg*)ud)->tab;
 	z->on_select ();
 }
 
 static void on_select_res(GtkTreeView* b, gpointer ud)
 {
+	//printf("Select res\n");
 	StageTab* z = (StageTab*) ((CallbackArg*)ud)->tab;
 	z->on_select_res ();
 }
@@ -64,7 +68,7 @@ StageTab::StageTab(GtkWidget *window, GtkBuilder *builder, ResourceTab* tab)
 	m_nRes=GTK_SPIN_BUTTON(gtk_builder_get_object(m_builder, "spin_sta_res"));
 
 	CONNECT(m_devRes, "clicked", ::on_click_res, mca);
-	CONNECT(m_nRes, "changed", ::on_save_clicked, mca);
+	CONNECT(m_nRes, "value-changed", ::on_save_clicked, mca);
 	CONNECT(m_resource, "changed", ::on_save_clicked, mca);
 
 
@@ -114,7 +118,7 @@ void StageTab::on_save_clicked()
 	
 	bool exists;
 	std::string old;
-	old=gtk_tree_view_get_str_selected(m_listRes, &exists);
+	old=gtk_tree_view_get_str_selected(m_list, &exists);
 	Stage* s=NULL;
 
 	

+ 6 - 1
src/stage.cc

@@ -23,13 +23,18 @@
 Stage::Stage(Json::Value v) : Data(v)
 {
 	m_data_type=DATA_TYPE_STAGE;
-	set(v);
+	if(v.size()) set(v);
+	else
+	{
+		m_nRes=1;
+	}
 }
 
 
 Stage::Stage() : Data()
 {
 	m_data_type=DATA_TYPE_STAGE;
+	m_nRes=1;
 }
 
 Stage::~Stage()