X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=src%2Flgconfig%2Flgconfig.cpp;h=c46d5a3136a13df88d0bc640c878dac489ea53ed;hb=31d49cd787312431117965de1b91de922a842d22;hp=4d599dc22f7e2bcc51cd7d4fa4ca912e0744b974;hpb=7a277153cc72eed9f152af09f22e680db3ec6563;p=vlp.git diff --git a/src/lgconfig/lgconfig.cpp b/src/lgconfig/lgconfig.cpp index 4d599dc..c46d5a3 100644 --- a/src/lgconfig/lgconfig.cpp +++ b/src/lgconfig/lgconfig.cpp @@ -23,6 +23,7 @@ #include #include +#include class VLPEntry { @@ -239,9 +240,8 @@ void QInstall::SetOptions() QLabel* tmpQLabel; QPushButton *addbtn,*delbtn,*okbtn,*cancelbtn; VLPEntry *pom; - QFile *vlp_file; int i,j; - char pomstr[255],line[255]; + char pomstr[255]; //dlg.setStyle(WindowsStyle); nodelist = new QListBox( &dlg, "ListBox_1" ); @@ -278,25 +278,57 @@ void QInstall::SetOptions() { j = Nodes.at(); sprintf(pomstr,"%s.cfg",pom->addr); - vlp_file = new QFile(pomstr); - vlp_file->open(IO_WriteOnly); - sprintf(line,"progdir=%s\n",pom->progdir); - vlp_file->writeBlock(line,strlen(line)); - sprintf(line,"homedir=%s\n",pom->homedir); - vlp_file->writeBlock(line,strlen(line)); - sprintf(line,"node_number=%d\n",pom->ID); - vlp_file->writeBlock(line,strlen(line)); - if ( pom->type == 0) - { - sprintf(line,"type=explicit\n"); - vlp_file->writeBlock(line,strlen(line)); + + config_t cfg; + config_setting_t *root, *setting; + config_init(&cfg); + + root = config_root_setting(&cfg); + + setting = config_setting_get_member(root, "progdir"); + if(!setting) { + setting = config_setting_add(root, "progdir", CONFIG_TYPE_STRING); + } + config_setting_set_string(setting, pom->progdir); + + setting = config_setting_get_member(root, "homedir"); + if(!setting) { + setting = config_setting_add(root, "homedir", CONFIG_TYPE_STRING); + } + config_setting_set_string(setting, pom->homedir); + + setting = config_setting_get_member(root, "node_number"); + if(!setting) { + setting = config_setting_add(root, "node_number", CONFIG_TYPE_INT); + } + config_setting_set_int(setting, pom->ID); + + if (pom->type == 0) + { + setting = config_setting_get_member(root, "type"); + if(!setting) { + setting = config_setting_add(root, "type", CONFIG_TYPE_STRING); } + config_setting_set_string(setting, "explicit"); + } for(i=0;iaddr); - vlp_file->writeBlock(line,strlen(line)); - }; - vlp_file->close(); + { + if (pom!=Nodes.at(i)) + { + setting = config_setting_get_member(root, "host"); + if(!setting) { + setting = config_setting_add(root, "host", CONFIG_TYPE_STRING); + } + config_setting_set_string(setting, Nodes.at(i)->addr); + }; + } + + if(!config_write_file(&cfg, pomstr)) + { + fprintf(stderr, "Error while writing to file: %s.\n", pomstr); + } + config_destroy(&cfg); + pom = Nodes.at(j); pom = Nodes.next(); }