void MaterialEditor::browseTexture(gui::Button* b) { // Save which one selectTexture(b); m_browseTarget = m_selectedTexture; if(b->getName()[7] == 'n') m_browseTarget |= 0x100; // open file dialog FileDialog* d = m_gui->getWidget<FileDialog>("filedialog"); d->eventConfirm.bind(this, &MaterialEditor::setTexture); d->setFilter("*.dds,*.png"); d->setFileName(""); d->showOpen(); }
void EditFile::showFiles() { QString s = edtFile->text(); if (bDirMode){ if (bShowHidden) { FileDialog *dialog = new FileDialog(s, QString::null, topLevelWidget(), title); #ifdef USE_KDE dialog->setMode(KFile::Directory | KFile::ExistingOnly); #else dialog->setMode(QFileDialog::DirectoryOnly); #endif dialog->setShowHiddenFiles(bShowHidden); if (dialog->exec() == QDialog::Accepted) { s = dialog->selectedFile(); } } else { s = QFileDialog::getExistingDirectory(s, topLevelWidget(), title); } }else if (bMultiplyMode){ QStringList lst = QFileDialog::getOpenFileNames(filter, QString::null, topLevelWidget()); if ((lst.count() > 1) || ((lst.count() > 0) && (lst[0].find(' ') >= 0))){ for (QStringList::Iterator it = lst.begin(); it != lst.end(); ++it){ *it ='\"' + *it + '\"'; } } s = lst.join(" "); }else{ if (s.isEmpty()){ s = startDir; if (!s.isEmpty()) makedir(s); } if (createPreview){ FileDialog *dlg = new FileDialog( s, filter, topLevelWidget(), title.isEmpty() ? i18n("Open") : title); if ( topLevelWidget()->icon() && !topLevelWidget()->icon()->isNull()){ dlg->setIcon( *topLevelWidget()->icon() ); }else if (qApp->mainWidget() && qApp->mainWidget()->icon() && !qApp->mainWidget()->icon()->isNull()){ dlg->setIcon( *qApp->mainWidget()->icon() ); } FilePreview *preview = createPreview(dlg); #ifdef USE_KDE dlg->setOperationMode( KFileDialog::Opening); if (preview) dlg->setPreviewWidget(preview); #else dlg->setMode( QFileDialog::ExistingFile ); if (preview){ dlg->setContentsPreview(preview, preview); dlg->setContentsPreviewEnabled(true); dlg->setPreviewMode(QFileDialog::Contents); } #endif dlg->setFilter(filter); QString result; s = QString::null; if (dlg->exec() == QDialog::Accepted){ s = dlg->selectedFile(); } // under KDE 3.1x / QT 3.1x sim crashes when preview is deleted... // delete preview; #ifdef WIN32 delete preview; #endif delete dlg; }else{ #ifdef USE_KDE if (bCreate){ if (title.isEmpty()){ s = QFileDialog::getSaveFileName(s, filter, topLevelWidget()); }else{ s = QFileDialog::getSaveFileName(s, filter, topLevelWidget(), title); } }else{ if (title.isEmpty()){ s = QFileDialog::getOpenFileName(s, filter, topLevelWidget()); }else{ s = QFileDialog::getOpenFileName(s, filter, topLevelWidget(), title); } } #else if (bCreate){ s = QFileDialog::getSaveFileName(s, filter, topLevelWidget(), "filedialog", title); }else{ s = QFileDialog::getOpenFileName(s, filter, topLevelWidget(), "filedialog", title); } #endif } } if (s.length()) edtFile->setText(QDir::convertSeparators(s)); }
void EditFile::showFiles() { QString s = edtFile->text(); #ifdef WIN32 s.replace(QRegExp("\\\\"), "/"); #endif if (bDirMode){ s = QFileDialog::getExistingDirectory(s, topLevelWidget(), title); }else if (bMultiplyMode){ QStringList lst = QFileDialog::getOpenFileNames(filter, QString::null, topLevelWidget()); if ((lst.count() > 1) || ((lst.count() > 0) && (lst[0].find(' ') >= 0))){ for (QStringList::Iterator it = lst.begin(); it != lst.end(); ++it){ *it = QString("\"") + *it + QString("\""); } } s = lst.join(" "); }else{ if (s.isEmpty()){ s = startDir; if (!s.isEmpty()){ string d; d = QFile::encodeName(s); makedir((char*)d.c_str()); } } if (createPreview){ FileDialog *dlg = new FileDialog( s, filter, topLevelWidget(), title.isEmpty() ? i18n("Open") : title); if ( topLevelWidget()->icon() && !topLevelWidget()->icon()->isNull()){ dlg->setIcon( *topLevelWidget()->icon() ); }else if (qApp->mainWidget() && qApp->mainWidget()->icon() && !qApp->mainWidget()->icon()->isNull()){ dlg->setIcon( *qApp->mainWidget()->icon() ); } FilePreview *preview = createPreview(dlg); #ifdef USE_KDE dlg->setOperationMode( KFileDialog::Opening); if (preview) dlg->setPreviewWidget(preview); #else dlg->setMode( QFileDialog::ExistingFile ); if (preview){ dlg->setContentsPreview(preview, preview); dlg->setContentsPreviewEnabled(true); dlg->setPreviewMode(QFileDialog::Contents); } #endif dlg->setFilter(filter); QString result; s = ""; if (dlg->exec() == QDialog::Accepted){ s = dlg->selectedFile(); } delete dlg; }else{ #ifdef USE_KDE if (title.isEmpty()){ s = QFileDialog::getOpenFileName(s, filter, topLevelWidget()); }else{ s = QFileDialog::getOpenFileName(s, filter, topLevelWidget(), title); } #else s = QFileDialog::getOpenFileName(s, filter, topLevelWidget(), "filedialog", title); #endif } } #ifdef WIN32 s.replace(QRegExp("/"), "\\"); #endif if (s.length()) edtFile->setText(s); }