00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #include <gtk/gtk.h>
00047 #include <sys/types.h>
00048 #include <sys/stat.h>
00049 #include <dirent.h>
00050 #include <fnmatch.h>
00051 #include <string.h>
00052 #include <unistd.h>
00053
00054 #include "config.h"
00055 #include "gxsm/plugin.h"
00056 #include "gxsm/dataio.h"
00057 #include "gxsm/action_id.h"
00058 #include "gxsm/util.h"
00059 #include "batch.h"
00060 #include "fileio.c"
00061
00062 #include "converter.h"
00063 #include "gxsm_app.h"
00064 #include "surface.h"
00065
00066 #include "unit.h"
00067 #include "pcs.h"
00068 #include "xsmtypes.h"
00069
00070 #define IMGMAXCOLORS 64
00071 #define WSXM_MAXCHARS 1000
00072 #define UMASK (S_IRUSR | S_IWUSR | S_IXUSR )
00073
00074
00075 static void converter_init (void);
00076 static void converter_query (void);
00077 static void converter_about (void);
00078 static void converter_configure (void);
00079 static void converter_cleanup (void);
00080
00081 static void converter_convert(GtkWidget *w, void *data);
00082
00083
00084
00085
00086
00087 GxsmPlugin converter_pi = {
00088 NULL,
00089 NULL,
00090 0,
00091 NULL,
00092 "Converter",
00093 NULL,
00094 "Converts supported file types faster",
00095 "Kristan Temme and Thorsten Wagner",
00096 N_("_Tools/"),
00097 N_("Converter"),
00098 NULL,
00099 "No further info",
00100 NULL,
00101 NULL,
00102 converter_init,
00103 converter_query,
00104 converter_about,
00105 converter_configure,
00106 NULL,
00107 converter_cleanup
00108 };
00109
00110
00111
00112
00113 static const char *about_text = N_("Gxsm Converter for supported files.");
00114
00115
00116
00117
00118
00119
00120 GxsmPlugin *get_gxsm_plugin_info ( void ){
00121 converter_pi.description = g_strdup_printf(N_("Gxsm converter file converter %s"), VERSION);
00122 return &converter_pi;
00123 }
00124
00125
00126
00127
00128
00129
00130 static void converter_query(void)
00131 {
00132 static GnomeUIInfo menuinfo_Convert[] = {
00133 { GNOME_APP_UI_ITEM,
00134 N_("Converter"), N_("Converts supported file formats quickly"),
00135 (gpointer) converter_convert, NULL,
00136 NULL, GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN,
00137 0, GDK_CONTROL_MASK, NULL },
00138 GNOMEUIINFO_END
00139 };
00140
00141 gnome_app_insert_menus (
00142 GNOME_APP(converter_pi.app->getApp()),
00143 N_("Tools/"),
00144 menuinfo_Convert
00145 );
00146
00147 if(converter_pi.status) g_free(converter_pi.status);
00148 converter_pi.status = g_strconcat (
00149 N_("Plugin query has attached "),
00150 converter_pi.name,
00151 N_(": File converter is ready to use"),
00152 NULL);
00153 }
00154
00155
00156
00157
00158
00159 static void converter_init(void)
00160 {
00161 PI_DEBUG(DBG_L2,"converter Plugin Init");
00162 }
00163
00164
00165
00166
00167 static void converter_about(void)
00168 {
00169 const gchar *authors[] = { converter_pi.authors, NULL};
00170 gtk_widget_show(gnome_about_new ( converter_pi.name,
00171 VERSION,
00172 N_("(C) 2003 the Free Software Foundation"),
00173 about_text,
00174 authors,
00175 NULL,NULL,NULL
00176 ));
00177 }
00178
00179
00180
00181
00182 static void converter_configure(void)
00183 {
00184 if(converter_pi.app)
00185 converter_pi.app->message("converter Plugin Configuration");
00186 }
00187
00188
00189
00190
00191 static void converter_cleanup(void)
00192 {
00193 PI_DEBUG(DBG_L2,"converter Plugin Cleanup");
00194 gnome_app_remove_menus (GNOME_APP (converter_pi.app->getApp()),
00195 N_("Tools/Converter"), 1);
00196 }
00197
00198
00199
00200 static void converter_convert(GtkWidget *w, void *data)
00201 {
00202 converterControl *Popup = new converterControl();
00203 Popup->run();
00204 PI_DEBUG(DBG_L2,"converter dialog opened");
00205 }
00206
00207
00209
00211
00212 gchar *select_mask;
00213
00214 converter::converter() : m_converted(0)
00215 {
00216 PI_DEBUG(DBG_L2,"Generating converter object!");
00217 }
00218
00219
00220 void converter::concatenate_dirs(gchar* target, const gchar* add)
00221 {
00223 int len = strlen(target);
00224 if (len > 0 && target[len-1] != '/')
00225 strcat(target, "/");
00226 strcat(target, add);
00227 }
00228
00229
00230 void converter::create_full_path(gchar* target, const gchar* source_directory,
00231 const gchar* current_dir, const gchar* file)
00232 {
00233 if (source_directory)
00234 strcpy(target, source_directory);
00235 else
00236 *target = '\0';
00237
00238 if (current_dir)
00239 concatenate_dirs(target, current_dir);
00240
00241 if (file)
00242 concatenate_dirs(target, file);
00243 }
00244
00245
00246 void converter::replace_suffix(gchar* target, gchar* new_suffix)
00247 {
00248 int len = strlen(target);
00249
00250 for (int i = len-1; i > -1; --i) {
00251 if (target[i] == EXT_SEP) {
00252 strcpy(target+i+1, new_suffix);
00253 return;
00254 }
00255 }
00256 }
00257
00258
00260 void converter::ConvertDir(converterData* work_it, const gchar* current_dir)
00261 {
00262 gchar source_dir[MAX_PATH];
00263
00264 create_full_path(source_dir, work_it->sourceDir, current_dir, 0);
00265
00266 DIR* dir = opendir(source_dir);
00267
00268 if (dir) {
00269 struct stat file_stat;
00270 dirent* current_file;
00271 gchar source_name[MAX_PATH];
00272 gchar target_name[MAX_PATH];
00273
00274 while ((current_file = readdir(dir))) {
00275 create_full_path(source_name, work_it->sourceDir, current_dir,
00276 current_file->d_name);
00277 if (lstat(source_name, &file_stat) != -1) {
00278
00279 if (S_ISDIR(file_stat.st_mode) && *current_file->d_name != '.')
00280 {
00281 if (work_it->m_recursive) {
00282 if (work_it->m_create_subdirs) {
00283 create_full_path(target_name, work_it->destDir,
00284 current_dir, current_file->d_name);
00285
00286
00287
00288
00289 if (mkdir(target_name, S_IRUSR | S_IWUSR
00290 | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP)
00291 == -1)
00292 {
00293 std::cout << "Could not create directory "
00294 << target_name << std::endl;
00295 } else
00296 std::cout << "Create directory "
00297 << target_name << std::endl;
00298 }
00299 create_full_path(source_name, 0, current_dir,
00300 current_file->d_name);
00301 ConvertDir(work_it, source_name);
00302 }
00303
00304
00305
00306 } else if (!fnmatch(work_it->convFilter, current_file->d_name,
00307 0))
00308 {
00309 create_full_path(source_name, work_it->sourceDir,
00310 current_dir, current_file->d_name);
00311 create_full_path(target_name, work_it->destDir,
00312 work_it->m_create_subdirs ? current_dir : 0, current_file->d_name);
00313 replace_suffix(target_name, work_it->writeFormat);
00314
00315 if (!work_it->m_overwrite_target
00316 && lstat(target_name, &file_stat) != -1)
00317 {
00318 std::cout << target_name << " already exists!"
00319 << std::endl;
00320 continue;
00321 }
00322
00323 ++m_converted;
00324 std::cout << "Converting file " << m_converted << ": "
00325 << source_name << std::endl;
00326 DoConvert(source_name, target_name);
00327 }
00328 }
00329 }
00330 }
00331
00332 closedir(dir);
00333 }
00334
00335
00336 void converter::DoConvert(gchar *pathname,gchar *outputname)
00337 {
00338 if (gapp->xsm->ActivateFreeChannel()) {
00339 PI_DEBUG(DBG_L2,"Nc2top Error: finding Free Channel" );
00340 return;
00341 }
00342
00343 gint Ch = gapp->xsm->FindChan(ID_CH_M_ACTIVE);
00344
00345 if ((Ch = readToAct(pathname)) < 0)
00346 PI_DEBUG(DBG_L2,"readToAct: Conversion of " << pathname << "failed");
00347
00348 else {
00349 if (!writeFromCh(Ch, outputname))
00350 PI_DEBUG(DBG_L2,"Converted: " << pathname << " to " << outputname);
00351 else
00352 PI_DEBUG(DBG_L2,"writeFromCh: Conversion of " << pathname << "failed");
00353 }
00354
00355 gapp->xsm->SetMode(Ch, ID_CH_M_OFF, TRUE);
00356 }
00357
00358
00359 gint converter::readToAct( gchar *fname){
00360
00361 Scan *ActiveScan = NULL;
00362 Dataio *Dio = NULL;
00363 gint ret = -1;
00364
00365 ActiveScan = gapp->xsm->GetActiveScan();
00366 ret = gapp->xsm->FindChan(ID_CH_M_ACTIVE);
00367
00368
00369 if (!(strstr(fname, ".nc") || strstr(fname, ".NC"))){
00370 gapp->xsm->gnuimport (fname);
00371 return ret;
00372 }
00373 else {
00374 if (!strncasecmp(fname+strlen(fname)-3,".nc",3))
00375 Dio = new NetCDF(ActiveScan, fname);
00376 else ret =-1;
00377
00378 Dio->Read();
00379 if(Dio->ioStatus()){
00380
00381 ret = -1;
00382 }
00383 delete Dio;
00384
00385 ActiveScan->GetDataSet(gapp->xsm->data);
00386
00387 gapp->spm_update_all();
00388 ActiveScan->draw();
00389
00390 return ret ;
00391 }
00392 }
00393
00394 gint converter::writeFromCh(gint Ch, gchar *fname)
00395 {
00396 gint ret;
00397
00398 if (!(strstr(fname, ".nc") || strstr(fname, ".NC")))
00399 {
00400
00401 if (gapp->xsm->FindChan(ID_CH_M_ACTIVE) != Ch)
00402 gapp->xsm->ActivateChannel(Ch);
00403
00404 ret = gapp->xsm->gnuexport (fname);
00405 return ret;
00406 } else {
00407 ret = gapp->xsm->save(TRUE, fname, Ch, true);
00408 return ret;
00409 }
00410
00411 return -1;
00412 }
00413
00414
00416 gchar* converter::strParse(gchar* name, converterData* check)
00417 {
00419 int len = strlen(name);
00420 gchar* fname = strdup(name);
00421
00422 if (len > 0) {
00424 int index = len;
00425 for (; index > 0; --index) {
00426 if (fname[index] == EXT_SEP)
00427 break;
00428 }
00429 fname[index] = '\0';
00430
00431 len = strlen(check->destDir);
00432
00434 if (len > 0) {
00435 if(check->destDir[len-1] != '/')
00436 strcat(check->destDir, "/");
00437 }
00438
00439 snprintf(retStr, MAX_PATH, "%s%s.%s", check->destDir, fname,
00440 check->writeFormat);
00441 return retStr;
00442 } else
00443 return NULL;
00444 }
00445
00447
00449
00451
00453
00454 gint file_error(const gchar *err_msg, const gchar *dir);
00455
00456 converterControl::converterControl ()
00457 {
00458 topdata = new converterData(getenv("PWD"),getenv("PWD"),"*.nc", "top");
00459 XsmRescourceManager xrm("FilePathSelectionHistory","Converter");
00460 xrm.Get ("SourcePath",&topdata->sourceDir, getenv("PWD"));
00461 xrm.Get ("DestPath", &topdata->destDir, getenv("PWD"));
00462 xrm.Get ("InputFilter", &topdata->convFilter, "*.nc");
00463 xrm.Get ("OutputFilter",&topdata->writeFormat, "top");
00464 }
00465
00466
00467 converterControl::~converterControl ()
00468 {
00469 delete topdata;
00470 }
00471
00472
00473 void converterControl::run()
00474 {
00475 GtkWidget *dialog;
00476 GtkWidget *vbox;
00477 GtkWidget *hbox;
00478 GtkWidget *VarName;
00479 GtkWidget *variable;
00480 GtkWidget *help;
00481
00482 DlgStart();
00483 dialog = gnome_dialog_new(_("converter Convert"),
00484 _("Convert"),
00485 GNOME_STOCK_BUTTON_CANCEL,
00486 NULL);
00487
00488 gnome_dialog_set_close(GNOME_DIALOG(dialog), FALSE);
00489 gnome_dialog_close_hides(GNOME_DIALOG(dialog), FALSE);
00490 gnome_dialog_set_default(GNOME_DIALOG(dialog), 3);
00491
00492 vbox = gtk_vbox_new (FALSE, 0);
00493 gtk_widget_show (vbox);
00494
00495 gtk_box_pack_start(GTK_BOX(GNOME_DIALOG(dialog)->vbox),
00496 vbox, TRUE, TRUE, GNOME_PAD);
00497
00498
00499 hbox = gtk_hbox_new (FALSE, 0);
00500 gtk_widget_show (hbox);
00501 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
00502
00503 VarName = gtk_label_new (_("Source Path"));
00504 gtk_widget_set_usize (VarName, 100, -1);
00505 gtk_widget_show (VarName);
00506 gtk_label_set_justify(GTK_LABEL(VarName), GTK_JUSTIFY_LEFT);
00507 gtk_misc_set_alignment (GTK_MISC (VarName), 0.0, 0.5);
00508 gtk_misc_set_padding (GTK_MISC (VarName), 5, 0);
00509 gtk_box_pack_start (GTK_BOX (hbox), VarName, TRUE, TRUE, 0);
00510
00511 SrcDir = variable = gnome_file_entry_new( NULL, "Choose the source directory");
00512 gnome_file_entry_set_default_path( GNOME_FILE_ENTRY ( variable ), topdata->sourceDir);
00513 gnome_file_entry_set_directory_entry(GNOME_FILE_ENTRY (variable), TRUE);
00514 gnome_file_entry_set_filename (GNOME_FILE_ENTRY (variable), topdata->sourceDir);
00515 gtk_box_pack_start (GTK_BOX (hbox), variable, TRUE, TRUE, 0);
00516 gtk_widget_show(variable);
00517
00518 hbox = gtk_hbox_new (FALSE, 0);
00519 gtk_widget_show (hbox);
00520 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
00521
00522 VarName = gtk_label_new (_("Selection Mask"));
00523 gtk_widget_set_usize (VarName, 100, -1);
00524 gtk_widget_show (VarName);
00525 gtk_label_set_justify(GTK_LABEL(VarName), GTK_JUSTIFY_LEFT);
00526 gtk_misc_set_alignment (GTK_MISC (VarName), 0.0, 0.5);
00527 gtk_misc_set_padding (GTK_MISC (VarName), 5, 0);
00528 gtk_box_pack_start (GTK_BOX (hbox), VarName, TRUE, TRUE, 0);
00529
00530 SrcMask = variable = gtk_entry_new ();
00531 gtk_widget_show (variable);
00532 gtk_box_pack_start (GTK_BOX (hbox), variable, TRUE, TRUE, 0);
00533 gtk_entry_set_text (GTK_ENTRY (variable), topdata->convFilter);
00534
00535 help = gtk_button_new_with_label (_("Help"));
00536 gtk_widget_show (help);
00537 gtk_box_pack_start (GTK_BOX (hbox), help, TRUE, TRUE, 0);
00538 gtk_signal_connect (GTK_OBJECT (help), "clicked",
00539 GTK_SIGNAL_FUNC (show_info_callback),
00540 (void*)(_("Select subset of files via wildcard.")));
00541
00542 hbox = gtk_hbox_new (FALSE, 0);
00543 gtk_widget_show (hbox);
00544 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
00545
00546 VarName = gtk_label_new (_("Destination Path"));
00547 gtk_widget_set_usize (VarName, 100, -1);
00548 gtk_widget_show (VarName);
00549 gtk_label_set_justify(GTK_LABEL(VarName), GTK_JUSTIFY_LEFT);
00550 gtk_misc_set_alignment (GTK_MISC (VarName), 0.0, 0.5);
00551 gtk_misc_set_padding (GTK_MISC (VarName), 5, 0);
00552 gtk_box_pack_start (GTK_BOX (hbox), VarName, TRUE, TRUE, 0);
00553
00554 DestDir = variable = gnome_file_entry_new( NULL, "Choose the destination directory");
00555 gnome_file_entry_set_default_path( GNOME_FILE_ENTRY ( variable ), topdata->destDir);
00556 gnome_file_entry_set_directory_entry(GNOME_FILE_ENTRY (variable), TRUE);
00557 gnome_file_entry_set_filename (GNOME_FILE_ENTRY (variable), topdata->destDir);
00558 gtk_box_pack_start (GTK_BOX (hbox), variable, TRUE, TRUE,0 );
00559 gtk_widget_show(variable);
00560
00561 hbox = gtk_hbox_new (FALSE, 0);
00562 gtk_widget_show (hbox);
00563 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
00564
00565 VarName = gtk_label_new (_("Format"));
00566 gtk_widget_set_usize (VarName, 100, -1);
00567 gtk_widget_show (VarName);
00568 gtk_label_set_justify(GTK_LABEL(VarName), GTK_JUSTIFY_LEFT);
00569 gtk_misc_set_alignment (GTK_MISC (VarName), 0.0, 0.5);
00570 gtk_misc_set_padding (GTK_MISC (VarName), 5, 0);
00571 gtk_box_pack_start (GTK_BOX (hbox), VarName, TRUE, TRUE, 0);
00572
00573 DestMask = variable = gtk_entry_new ();
00574 gtk_widget_show (variable);
00575 gtk_box_pack_start (GTK_BOX (hbox), variable, TRUE, TRUE, 0);
00576 gtk_entry_set_text (GTK_ENTRY (variable), topdata->writeFormat);
00577
00578 help = gtk_button_new_with_label (_("Help"));
00579 gtk_widget_show (help);
00580 gtk_box_pack_start (GTK_BOX (hbox), help, TRUE, TRUE, 0);
00581 gtk_signal_connect (GTK_OBJECT (help), "clicked",
00582 GTK_SIGNAL_FUNC (show_info_callback),
00583 (void*)(_("Enter the file format suffix without any special characters")));
00584
00585 gtk_signal_connect(GTK_OBJECT(dialog), "clicked",
00586 GTK_SIGNAL_FUNC(converterControl::dlg_clicked),
00587 this);
00588
00589 hbox = gtk_hbox_new(FALSE, 0);
00590 gtk_widget_show(hbox);
00591 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
00592 GtkWidget* toggle_recursive = gtk_check_button_new_with_label("Recursive");
00593
00594 gtk_box_pack_start(GTK_BOX (hbox), toggle_recursive, TRUE, TRUE, 0);
00595 gtk_widget_show(toggle_recursive);
00596 GtkWidget* toggle_overwrite_target = gtk_check_button_new_with_label("Overwrite Target File");
00597 gtk_signal_connect(GTK_OBJECT(toggle_recursive), "clicked",
00598 GTK_SIGNAL_FUNC(converterControl::recursive_click),
00599 this);
00600
00601 gtk_box_pack_start(GTK_BOX (hbox), toggle_overwrite_target, TRUE, TRUE, 0);
00602 gtk_widget_show(toggle_overwrite_target);
00603 gtk_signal_connect(GTK_OBJECT(toggle_overwrite_target), "clicked",
00604 GTK_SIGNAL_FUNC(converterControl::overwrite_target_click),
00605 this);
00606
00607 GtkWidget* toggle_create_subdirs = gtk_check_button_new_with_label("Create sub-directories");
00608 gtk_box_pack_start(GTK_BOX (hbox), toggle_create_subdirs, TRUE, TRUE, 0);
00609 gtk_widget_show(toggle_create_subdirs);
00610 gtk_signal_connect(GTK_OBJECT(toggle_create_subdirs), "clicked",
00611 GTK_SIGNAL_FUNC(converterControl::create_subdirs_click),
00612 this);
00613
00614
00615 gtk_widget_show(dialog);
00616 }
00617
00618
00619 void converterControl::recursive_click(GtkWidget* widget, gpointer userdata)
00620 {
00621 ((converterControl*) userdata)->topdata->m_recursive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
00622 }
00623
00624
00625 void converterControl::overwrite_target_click(GtkWidget* widget, gpointer userdata)
00626 {
00627 ((converterControl*) userdata)->topdata->m_overwrite_target = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
00628 }
00629
00630
00631 void converterControl::create_subdirs_click(GtkWidget* widget, gpointer userdata)
00632 {
00633 ((converterControl*) userdata)->topdata->m_create_subdirs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
00634 }
00635
00636
00637 void converterControl::dlg_clicked(GnomeDialog * dialog, gint button_number, converterControl *mic){
00638
00639 converter *converter_obj;
00640 converter_obj = new converter();
00641
00642
00643 g_free(mic->topdata->sourceDir);
00644 mic->topdata->sourceDir = g_strdup(gnome_file_entry_get_full_path(GNOME_FILE_ENTRY (mic->SrcDir),TRUE));
00645 if(mic->topdata->sourceDir == NULL && !button_number)
00646 if(file_error("Source directory does not exist",NULL)){
00647 gnome_dialog_close(dialog);
00648 goto finish;
00649 }
00650
00651 g_free(mic->topdata->convFilter);
00652 mic->topdata->convFilter = g_strdup(gtk_entry_get_text (GTK_ENTRY (mic->SrcMask)));
00653
00654
00655 g_free(mic->topdata->destDir);
00656 mic->topdata->destDir = g_strdup(gnome_file_entry_get_full_path(GNOME_FILE_ENTRY (mic->DestDir),FALSE));
00657 if(access(mic->topdata->destDir,F_OK) && !button_number)
00658 if(file_error("Destination directory does not exist",mic->topdata->destDir)){
00659 gnome_dialog_close(dialog);
00660 goto finish;
00661 }
00662
00663 g_free(mic->topdata->writeFormat);
00664 mic->topdata->writeFormat = g_strdup(gtk_entry_get_text (GTK_ENTRY (mic->DestMask)));
00665
00666
00667 switch(button_number){
00668
00669 case 0:
00670 gnome_dialog_close(dialog);
00671 show_info_callback(NULL, _("Converting ..."));
00672 converter_obj->ConvertDir(mic->topdata, 0);
00673 break;
00674
00675 case 1:
00676 gnome_dialog_close(dialog);
00677 break;
00678
00679 }
00680 finish:
00681 XsmRescourceManager xrm("FilePathSelectionHistory","Converter");
00682 xrm.Put ("SourcePath", mic->topdata->sourceDir);
00683 xrm.Put ("DestPath", mic->topdata->destDir);
00684 xrm.Put ("InputFilter", mic->topdata->convFilter);
00685 xrm.Put ("OutputFilter", mic->topdata->writeFormat);
00686 mic->DlgDone();
00687
00688 }
00689
00690 gint file_error(const gchar *err_msg, const gchar *dir)
00691 {
00692 GtkWidget *dialog;
00693
00694 if(dir != NULL){
00695
00696 dialog = gnome_message_box_new(err_msg, GNOME_MESSAGE_BOX_QUESTION,
00697 GNOME_STOCK_BUTTON_YES,
00698 GNOME_STOCK_BUTTON_NO,
00699 NULL);
00700
00701 if(gnome_dialog_run_and_close( GNOME_DIALOG (dialog)) == 0){
00702 if(mkdir(dir, UMASK)){
00703 PI_DEBUG(DBG_L2,"Error: creating the directory");
00704 return 1;
00705 }
00706 return 0;
00707 }
00708 else {
00709 PI_DEBUG(DBG_L2,"Aborting ..."<< err_msg);
00710 return 1;
00711 }
00712 }
00713
00714 else{
00715 dialog = gnome_error_dialog(err_msg);
00716 gnome_dialog_run_and_close( GNOME_DIALOG (dialog) );
00717 PI_DEBUG(DBG_L2, "Aborting ... " << err_msg);
00718 return 1;
00719 }
00720 }
00722
00724
00726
00728
00729 converterData :: converterData(gchar *src, gchar *dst, gchar *conv, gchar *write) : m_recursive(false), m_overwrite_target(false), m_create_subdirs(false)
00730 {
00731 sourceDir = g_strdup(src);
00732 destDir = g_strdup(dst);
00733 convFilter = g_strdup(conv);
00734 writeFormat = g_strdup(write);
00735 }
00736
00737 converterData :: ~converterData()
00738 {
00739 g_free(sourceDir);
00740 g_free(destDir);
00741 g_free(convFilter);
00742 g_free(writeFormat);
00743 }
00744
00746
00748