Exemplo n.º 1
0
bool milxQtFile::openModelCollection(vtkPolyDataCollection* collection, QStringList &filenames)
{
    bool success = true;
    QPointer<QFileDialog> fileOpener = new QFileDialog;
    QSettings settings("Shekhar Chandra", "milxQt");

    ///If filenames list is empty ask for them
    if(filenames.isEmpty())
    {
        QString path = settings.value("recentPath").toString();
        filenames = fileOpener->getOpenFileNames(NULL,
                    tr("Select File(s) to Open"),
                    path,
                    tr(openModelExts.c_str()));
    }

    if(filenames.size() == 0)
        return !success;

    QFileInfo fi(filenames[0]);
    settings.setValue("recentPath", fi.absolutePath()); //!< Remember path if successful.

    for(int j = 0; j < filenames.size(); j ++)
    {
        vtkSmartPointer<vtkPolyData> data = vtkSmartPointer<vtkPolyData>::New();

        success = openModel(filenames[j], data); ///Open supported model file

        if(!success)
        {
            cerr << "Encountered Error in Reading model. Aborting Collection Read." << endl;
            break;
        }
        else
            cout << "Opened " << filenames[j].toStdString() << " into collection." << endl;

        collection->AddItem(data);

        qApp->processEvents();
    }

    return success;
}