void dlgPackageExporter::slot_export_package(){ //#ifndef Q_OS_WIN // filePath = ui->filePath->text(); //#endif QFile file_xml( filePath ); if( file_xml.open( QIODevice::WriteOnly ) ) { XMLexport writer( mpHost ); //write trigs QList<QTreeWidgetItem *> items = treeWidget->findItems(QString("Triggers"), Qt::MatchExactly, 0); QTreeWidgetItem * top = items.first(); QList<QTreeWidgetItem *> trigList; recurseTree(top,trigList); for (int i=0;i<trigList.size();i++){ QTreeWidgetItem * item = trigList.at(i); if (item->checkState(0) == Qt::Unchecked && triggerMap.contains(item)){ triggerMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && triggerMap.contains(item) && triggerMap[item]->mModuleMasterFolder){ triggerMap[item]->mModuleMasterFolder=false; modTriggerMap.insert(item, triggerMap[item]); } } items = treeWidget->findItems(QString("Timers"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> timerList; recurseTree(top,timerList); for (int i=0;i<timerList.size();i++){ QTreeWidgetItem * item = timerList.at(i); if (item->checkState(0) == Qt::Unchecked && timerMap.contains(item)){ timerMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && timerMap.contains(item) && timerMap[item]->mModuleMasterFolder){ timerMap[item]->mModuleMasterFolder=false; modTimerMap.insert(item, timerMap[item]); } } items = treeWidget->findItems(QString("Aliases"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> aliasList; recurseTree(top,aliasList); for (int i=0;i<aliasList.size();i++){ QTreeWidgetItem * item = aliasList.at(i); if (item->checkState(0) == Qt::Unchecked && aliasMap.contains(item)){ aliasMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && aliasMap.contains(item) && aliasMap[item]->mModuleMasterFolder){ aliasMap[item]->mModuleMasterFolder=false; modAliasMap.insert(item, aliasMap[item]); } } items = treeWidget->findItems(QString("Buttons"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> actionList; recurseTree(top,actionList); for (int i=0;i<actionList.size();i++){ QTreeWidgetItem * item = actionList.at(i); if (item->checkState(0) == Qt::Unchecked && actionMap.contains(item)){ actionMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && actionMap.contains(item) && actionMap[item]->mModuleMasterFolder){ actionMap[item]->mModuleMasterFolder=false; modActionMap.insert(item, actionMap[item]); } } items = treeWidget->findItems(QString("Scripts"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> scriptList; recurseTree(top,scriptList); for (int i=0;i<scriptList.size();i++){ QTreeWidgetItem * item = scriptList.at(i); if (item->checkState(0) == Qt::Unchecked && scriptMap.contains(item)){ scriptMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && scriptMap.contains(item) && scriptMap[item]->mModuleMasterFolder){ scriptMap[item]->mModuleMasterFolder=false; modScriptMap.insert(item, scriptMap[item]); } } items = treeWidget->findItems(QString("Keys"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> keyList; recurseTree(top,keyList); for (int i=0;i<keyList.size();i++){ QTreeWidgetItem * item = keyList.at(i); if (item->checkState(0) == Qt::Unchecked && keyMap.contains(item)){ keyMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && keyMap.contains(item) && keyMap[item]->mModuleMasterFolder){ keyMap[item]->mModuleMasterFolder=false; modKeyMap.insert(item, keyMap[item]); } } writer.exportGenericPackage(&file_xml); file_xml.close(); //now fix all the stuff we weren't exporting //trigger, timer, alias,action,script, keys for (int i=0;i<trigList.size();i++){ QTreeWidgetItem * item = trigList.at(i); if (triggerMap.contains(item)){ triggerMap[item]->exportItem = true; } if (modTriggerMap.contains(item)){ modTriggerMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<timerList.size();i++){ QTreeWidgetItem * item = timerList.at(i); if (timerMap.contains(item)){ timerMap[item]->exportItem = true; } if (modTimerMap.contains(item)){ modTimerMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<actionList.size();i++){ QTreeWidgetItem * item = actionList.at(i); if (actionMap.contains(item)){ actionMap[item]->exportItem = true; } if (modActionMap.contains(item)){ modActionMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<scriptList.size();i++){ QTreeWidgetItem * item = scriptList.at(i); if (scriptMap.contains(item)){ scriptMap[item]->exportItem = true; } if (modScriptMap.contains(item)){ modScriptMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<keyList.size();i++){ QTreeWidgetItem * item = keyList.at(i); if (keyMap.contains(item)){ keyMap[item]->exportItem = true; } if (modKeyMap.contains(item)){ modKeyMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<aliasList.size();i++){ QTreeWidgetItem * item = aliasList.at(i); if (aliasMap.contains(item)){ aliasMap[item]->exportItem = true; } if (modAliasMap.contains(item)){ modAliasMap[item]->mModuleMasterFolder = true; } } //#ifdef Q_OS_WIN JlCompress::compressDir(zip, tempDir ); // #else // ui->infoLabel->setText("Exported package to "+filePath); // #endif } else { ui->infoLabel->setText("Failed to export - couldn't open "+filePath+" for writing in. Do you have the necessary permissions to write to that folder?"); } close(); }
void dlgPackageExporter::slot_export_package(){ //#ifndef Q_OS_WIN // filePath = ui->filePath->text(); //#endif QFile file_xml( filePath ); if( file_xml.open( QIODevice::WriteOnly ) ) { XMLexport writer( mpHost ); //write trigs QList<QTreeWidgetItem *> items = treeWidget->findItems(QString("Triggers"), Qt::MatchExactly, 0); QTreeWidgetItem * top = items.first(); QList<QTreeWidgetItem *> trigList; recurseTree(top,trigList); for (int i=0;i<trigList.size();i++){ QTreeWidgetItem * item = trigList.at(i); if (item->checkState(0) == Qt::Unchecked && triggerMap.contains(item)){ triggerMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && triggerMap.contains(item) && triggerMap[item]->mModuleMasterFolder){ triggerMap[item]->mModuleMasterFolder=false; modTriggerMap.insert(item, triggerMap[item]); } } items = treeWidget->findItems(QString("Timers"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> timerList; recurseTree(top,timerList); for (int i=0;i<timerList.size();i++){ QTreeWidgetItem * item = timerList.at(i); if (item->checkState(0) == Qt::Unchecked && timerMap.contains(item)){ timerMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && timerMap.contains(item) && timerMap[item]->mModuleMasterFolder){ timerMap[item]->mModuleMasterFolder=false; modTimerMap.insert(item, timerMap[item]); } } items = treeWidget->findItems(QString("Aliases"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> aliasList; recurseTree(top,aliasList); for (int i=0;i<aliasList.size();i++){ QTreeWidgetItem * item = aliasList.at(i); if (item->checkState(0) == Qt::Unchecked && aliasMap.contains(item)){ aliasMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && aliasMap.contains(item) && aliasMap[item]->mModuleMasterFolder){ aliasMap[item]->mModuleMasterFolder=false; modAliasMap.insert(item, aliasMap[item]); } } items = treeWidget->findItems(QString("Buttons"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> actionList; recurseTree(top,actionList); for (int i=0;i<actionList.size();i++){ QTreeWidgetItem * item = actionList.at(i); if (item->checkState(0) == Qt::Unchecked && actionMap.contains(item)){ actionMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && actionMap.contains(item) && actionMap[item]->mModuleMasterFolder){ actionMap[item]->mModuleMasterFolder=false; modActionMap.insert(item, actionMap[item]); } } items = treeWidget->findItems(QString("Scripts"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> scriptList; recurseTree(top,scriptList); for (int i=0;i<scriptList.size();i++){ QTreeWidgetItem * item = scriptList.at(i); if (item->checkState(0) == Qt::Unchecked && scriptMap.contains(item)){ scriptMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && scriptMap.contains(item) && scriptMap[item]->mModuleMasterFolder){ scriptMap[item]->mModuleMasterFolder=false; modScriptMap.insert(item, scriptMap[item]); } } items = treeWidget->findItems(QString("Keys"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> keyList; recurseTree(top,keyList); for (int i=0;i<keyList.size();i++){ QTreeWidgetItem * item = keyList.at(i); if (item->checkState(0) == Qt::Unchecked && keyMap.contains(item)){ keyMap[item]->exportItem = false; } else if (item->checkState(0) == Qt::Checked && keyMap.contains(item) && keyMap[item]->mModuleMasterFolder){ keyMap[item]->mModuleMasterFolder=false; modKeyMap.insert(item, keyMap[item]); } } writer.exportGenericPackage(&file_xml); file_xml.close(); //now fix all the stuff we weren't exporting //trigger, timer, alias,action,script, keys for (int i=0;i<trigList.size();i++){ QTreeWidgetItem * item = trigList.at(i); if (triggerMap.contains(item)){ triggerMap[item]->exportItem = true; } if (modTriggerMap.contains(item)){ modTriggerMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<timerList.size();i++){ QTreeWidgetItem * item = timerList.at(i); if (timerMap.contains(item)){ timerMap[item]->exportItem = true; } if (modTimerMap.contains(item)){ modTimerMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<actionList.size();i++){ QTreeWidgetItem * item = actionList.at(i); if (actionMap.contains(item)){ actionMap[item]->exportItem = true; } if (modActionMap.contains(item)){ modActionMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<scriptList.size();i++){ QTreeWidgetItem * item = scriptList.at(i); if (scriptMap.contains(item)){ scriptMap[item]->exportItem = true; } if (modScriptMap.contains(item)){ modScriptMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<keyList.size();i++){ QTreeWidgetItem * item = keyList.at(i); if (keyMap.contains(item)){ keyMap[item]->exportItem = true; } if (modKeyMap.contains(item)){ modKeyMap[item]->mModuleMasterFolder = true; } } for (int i=0;i<aliasList.size();i++){ QTreeWidgetItem * item = aliasList.at(i); if (aliasMap.contains(item)){ aliasMap[item]->exportItem = true; } if (modAliasMap.contains(item)){ modAliasMap[item]->mModuleMasterFolder = true; } } //#ifdef Q_OS_WIN int err = 0; char buf[100]; zip* archive = zip_open( zipFile.toStdString().c_str(), ZIP_CREATE|ZIP_TRUNCATE, &err); qDebug()<<"dp saving to"<<zipFile; if ( err != 0 ) { zip_error_to_str(buf, sizeof(buf), err, errno); qDebug()<<"dp zip open error"<<zipFile<<buf; close(); return; } err = zip_dir_add( archive, tempDir.toStdString().c_str(), ZIP_FL_ENC_GUESS ); if ( err != 0 ) { zip_error_to_str(buf, sizeof(buf), err, errno); qDebug()<<"dp zip add dir error"<<buf; close(); return; } QDir dir(tempDir); QStringList contents = dir.entryList(); for(int i=0;i<contents.size();i++) { QString fname = contents[i]; if ( fname == "." || fname == ".." ) continue; QString fullName = tempDir+"/"+contents[i]; struct zip_source *s = zip_source_file( archive, fullName.toStdString().c_str(), 0, 0); if ( s == NULL ) { int sep = 0; zip_error_get( archive, &err, &sep); zip_error_to_str(buf, sizeof(buf), err, errno); qDebug()<<"zip source error"<<fullName<<fname<<buf; } err = zip_file_add( archive, fname.toStdString().c_str(), s, ZIP_FL_OVERWRITE ); if ( err == -1 ) { int sep = 0; zip_error_get( archive, &err, &sep); zip_error_to_str(buf, sizeof(buf), err, errno); qDebug()<<"added file error"<<fullName<<fname<<buf; } } err = zip_close( archive ); if ( err != 0 ){ zip_error_to_str(buf, sizeof(buf), err, errno); qDebug()<<"dp close file error"<<buf; close(); return; } //JlCompress::compressDir(zip, tempDir ); // #else // ui->infoLabel->setText("Exported package to "+filePath); // #endif } else { ui->infoLabel->setText("Failed to export - couldn't open "+filePath+" for writing in. Do you have the necessary permissions to write to that folder?"); } close(); }
void dlgPackageExporter::slot_export_package(){ QString filePath = ui->filePath->text(); QFile file_xml( filePath ); if( file_xml.open( QIODevice::WriteOnly ) ) { XMLexport writer( mpHost ); //write trigs QList<QTreeWidgetItem *> items = treeWidget->findItems(QString("Triggers"), Qt::MatchExactly, 0); QTreeWidgetItem * top = items.first(); QList<QTreeWidgetItem *> trigList; recurseTree(top,trigList); for (int i=0;i<trigList.size();i++){ QTreeWidgetItem * item = trigList.at(i); if (item->checkState(0) == Qt::Unchecked && triggerMap.contains(item)){ triggerMap[item]->exportItem = false; } } items = treeWidget->findItems(QString("Timers"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> timerList; recurseTree(top,timerList); for (int i=0;i<timerList.size();i++){ QTreeWidgetItem * item = timerList.at(i); if (item->checkState(0) == Qt::Unchecked && timerMap.contains(item)){ timerMap[item]->exportItem = false; } } items = treeWidget->findItems(QString("Aliases"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> aliasList; recurseTree(top,aliasList); for (int i=0;i<aliasList.size();i++){ QTreeWidgetItem * item = aliasList.at(i); if (item->checkState(0) == Qt::Unchecked && aliasMap.contains(item)){ aliasMap[item]->exportItem = false; } } items = treeWidget->findItems(QString("Buttons"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> actionList; recurseTree(top,actionList); for (int i=0;i<actionList.size();i++){ QTreeWidgetItem * item = actionList.at(i); if (item->checkState(0) == Qt::Unchecked && actionMap.contains(item)){ actionMap[item]->exportItem = false; } } items = treeWidget->findItems(QString("Scripts"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> scriptList; recurseTree(top,scriptList); for (int i=0;i<scriptList.size();i++){ QTreeWidgetItem * item = scriptList.at(i); if (item->checkState(0) == Qt::Unchecked && scriptMap.contains(item)){ qDebug()<<"not writing"<<scriptMap[item]->getName(); scriptMap[item]->exportItem = false; } } items = treeWidget->findItems(QString("Keys"), Qt::MatchExactly, 0); top = items.first(); QList<QTreeWidgetItem *> keyList; recurseTree(top,keyList); for (int i=0;i<keyList.size();i++){ QTreeWidgetItem * item = keyList.at(i); if (item->checkState(0) == Qt::Unchecked && keyMap.contains(item)){ keyMap[item]->exportItem = false; } } writer.exportGenericPackage(&file_xml); file_xml.close(); //now fix all the stuff we weren't exporting //trigger, timer, alias,action,script, keys for (int i=0;i<trigList.size();i++){ QTreeWidgetItem * item = trigList.at(i); if (triggerMap.contains(item)){ triggerMap[item]->exportItem = true; } } for (int i=0;i<timerList.size();i++){ QTreeWidgetItem * item = timerList.at(i); if (timerMap.contains(item)){ timerMap[item]->exportItem = true; } } for (int i=0;i<actionList.size();i++){ QTreeWidgetItem * item = actionList.at(i); if (actionMap.contains(item)){ actionMap[item]->exportItem = true; } } for (int i=0;i<scriptList.size();i++){ QTreeWidgetItem * item = scriptList.at(i); if (scriptMap.contains(item)){ scriptMap[item]->exportItem = true; } } for (int i=0;i<keyList.size();i++){ QTreeWidgetItem * item = keyList.at(i); if (keyMap.contains(item)){ keyMap[item]->exportItem = true; } } for (int i=0;i<aliasList.size();i++){ QTreeWidgetItem * item = aliasList.at(i); if (aliasMap.contains(item)){ aliasMap[item]->exportItem = true; } } ui->infoLabel->setText("Exported package to "+filePath); } else { ui->infoLabel->setText("Failed to export - couldn't open "+filePath+" for writing in. Do you have the necessary permissions to write to that folder?"); } }