示例#1
0
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
        }
    }
示例#2
0
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);
    }