void VegetationWidget::slotDeleteSelected() { QListView* view = qobject_cast<QListView*>(sender()); QStandardItemModel* model = qobject_cast<QStandardItemModel*>(view->model()); QString dirString(""); if (view == _treeListView) { std::string plantDir = g_SystemContext._workContextDir; plantDir.append(CONTEXT_DIR); plantDir.append("/Plant/"); dirString = chineseTextUTF8ToQString(plantDir + "Tree/"); } else { std::string plantDir = g_SystemContext._workContextDir; plantDir.append(CONTEXT_DIR); plantDir.append("/Plant/"); dirString = chineseTextUTF8ToQString(plantDir + "Grass/"); } QItemSelectionModel* selectionModel = view->selectionModel(); QModelIndexList modelList = selectionModel->selectedIndexes(); if (modelList.size() < 1) return; for (int i = 0; i < modelList.size(); ++i) { QStandardItem* everyItem = model->itemFromIndex(modelList.at(i)); QFile::remove(dirString + everyItem->text()); int row = everyItem->row(); model->removeRow(row); } }
void Database::init() { std::map<string, string> insertParamMap0 = { {"id", "1"}, {"username", "admin"}, {"password", encryptPassword("admin")} }; std::map<string, string> insertParamMap1 = { {"id", "2"}, {"username", "anonymous"}, {"password", encryptPassword("anonymous")} }; std::map<string, string> insertParamMap2 = { {"id", "3"}, {"username", "charles"}, {"password", encryptPassword("charles")} }; std::map<string, string> insertParamMap3 = { {"id", "4"}, {"username", "davey"}, {"password", encryptPassword("davey")} }; std::map<string, string> selectParamMap = { {"id", "1"}, {"username", "Paul"} }; std::map<string, string> updateParamMap = { {"username", "davey"}, {"password", "dddd"} }; create(); insert("user", insertParamMap0); insert("user", insertParamMap1); insert("user", insertParamMap2); insert("user", insertParamMap3); //select("user", selectParamMap); // init user's root working directory if(findALL("user")) { vector< map<string ,string> > myresultMapVector; getResult(myresultMapVector); for (vector< map<string ,string> >::iterator iter=myresultMapVector.begin(); iter!=myresultMapVector.end(); ++iter) { string dirString(ROOTDIR); dirString += (*iter)["USERNAME"]; DIR* d = opendir(dirString.c_str()); if(d) { fprintf(stderr, "Already exists: %s\n", dirString.c_str()); closedir(d); }else if(mkdir(dirString.c_str(), 0777) == -1) { char buf[MAXLINE]; fprintf(stdout, "Error(%s): %s\n", dirString.c_str(), strerror_r(errno, buf, MAXLINE)); } else { fprintf(stdout, "Directory created: %s\n", dirString.c_str()); } //traverseFiles(dirString); } } //update("user", "2", updateParamMap); //find("user", "2"); }
void VegetationWidget::slotViewSelected() { QListView* view = qobject_cast<QListView*>(sender()); QItemSelectionModel* selectionModel = view->selectionModel(); QModelIndexList modelList = selectionModel->selectedIndexes(); if (modelList.size() < 1) return; QStandardItemModel* model = qobject_cast<QStandardItemModel*>(view->model()); std::string dirString(""); if (view == _treeListView) { std::string plantDir = g_SystemContext._workContextDir; plantDir.append(CONTEXT_DIR); plantDir.append("/Plant/"); dirString = plantDir + "Tree/"; } else { std::string plantDir = g_SystemContext._workContextDir; plantDir.append(CONTEXT_DIR); plantDir.append("/Plant/"); dirString = plantDir + "Grass/"; } QStandardItem* currentItem = model->itemFromIndex(modelList.at(0)); dirString.append(chineseTextToUTF8String(currentItem->text())); osg::ref_ptr<osg::Node> node; if (currentItem->text().endsWith(".osgb")) { node = g_SystemContext._resourceLoader->getNodeByName(dirString, false); } else { osg::ref_ptr<osg::Image> image = g_SystemContext._resourceLoader->getImageByFileName(dirString); if (image.valid()) { float s = image->s(); float t = image->t(); osg::ref_ptr<osg::Geometry> geometry = osg::createTexturedQuadGeometry(osg::Vec3(-s / 2.0f, -t / 2.0f, 0), osg::Vec3(s, 0, 0), osg::Vec3(0, t, 0)); osg::ref_ptr<osg::Geode> geode = new osg::Geode; geode->addDrawable(geometry); osg::StateSet* ss = geode->getOrCreateStateSet(); ss->setMode(GL_BLEND, osg::StateAttribute::ON); ss->setRenderingHint(osg::StateSet::TRANSPARENT_BIN); osg::Texture2D* texture = new osg::Texture2D(image); ss->setTextureAttributeAndModes(0, texture, osg::StateAttribute::ON); node = geode; } } if (node.valid()) { _nodeViewDialog = new NodeViewDialog; _nodeViewDialog->setNode(node); _nodeViewDialog->exec(); //_nodeViewDialog->setNode(NULL); } }