void ProjectPackagesDialog::displayAddPackageDialog() { AddPackageDialog dlg; if(dlg.run(true)) { OovStringVec packages = mProjectPackagesList.getText(); Package pkg = dlg.getPackage(); if(std::find(packages.begin(), packages.end(), pkg.getPkgName()) == packages.end()) { mProjectPackages.insertPackage(pkg); } else { Gui::messageBox("Package already exists"); } updatePackageList(); mProjectPackagesList.setSelected(pkg.getPkgName()); #ifndef __linux__ winScanDirectories(); #endif } }
void ProjectPackagesDialog::winScanDirectories() { Package pkg = mProjectPackages.getPackage( mProjectPackagesList.getSelected()); if(pkg.getPkgName().length() > 0) { OovString rootDir = getEntry("PackageRootDirEntry"); FilePaths dirs; dirs.push_back(FilePath("/", FP_Dir)); dirs.push_back(FilePath("/Program Files", FP_Dir)); OovString dir = findMatchingDir(dirs, rootDir); if(dir.length()) { pkg.setRootDir(dir); // move to project packages. mProjectPackages.insertPackage(pkg); } setEntry("PackageRootDirEntry", pkg.getRootDir()); } else Gui::messageBox("Select a package to scan", GTK_MESSAGE_INFO); }