void KexiFileWidget::setLocationText(const QString& fn) { locationEdit()->setUrl(KUrl(fn)); /* #ifdef Q_WS_WIN //js @todo setSelection(fn); #else setSelection(fn); // locationEdit->setCurrentText(fn); // locationEdit->lineEdit()->setEdited( true ); // setSelection(fn); #endif*/ }
KexiFileWidget::KexiFileWidget( const KUrl &startDirOrVariable, Mode mode, QWidget *parent) : KFileWidget(startDirOrVariable, parent) , d(new Private()) { kDebug() << startDirOrVariable.scheme(); if (startDirOrVariable.protocol() == "kfiledialog") { KFileDialog::getStartUrl(startDirOrVariable, d->recentDirClass); } setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); setMode(mode); QAction *previewAction = actionCollection()->action("preview"); if (previewAction) previewAction->setChecked(false); setFocusProxy(locationEdit()); connect(this, SIGNAL(fileHighlighted(QString)), this, SLOT(slotExistingFileHighlighted(QString))); }
KexiFileWidget::KexiFileWidget( const KUrl &startDirOrVariable, Mode mode, QWidget *parent) : KFileWidget(startDirOrVariable, parent) , d(new Private()) { kDebug() << startDirOrVariable.scheme(); if (startDirOrVariable.protocol() == "kfiledialog") { KFileDialog::getStartUrl(startDirOrVariable, d->recentDirClass); } setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); setMode(mode); QAction *previewAction = actionCollection()->action("preview"); if (previewAction) previewAction->setChecked(false); //setMinimumHeight(100); //setSizeGripEnabled ( false ); //dirty hack to customize filedialog view: /* { QList<QPushButton*> l = findChildren<QPushButton*>(); foreach (QPushButton* btn, l) btn->hide(); QList<QWidget*> wl = findChildren<QWidget*>(); foreach (QWidget* w, wl) w->installEventFilter(this); } */ /* Qt4 #ifdef Q_WS_WIN if (startDirOrVariable.startsWith(":")) m_lastVisitedPathsVariable = startDirOrVariable; //store for later use #else*/ // toggleSpeedbar(false); setFocusProxy(locationEdit()); //#endif connect(this, SIGNAL(fileHighlighted(QString)), this, SLOT(slotExistingFileHighlighted(QString))); }
void KexiFileWidget::focusInEvent(QFocusEvent *) { locationEdit()->setFocus(); }
bool KexiFileWidget::checkSelectedFile() { kDebug() << "d->highlightedUrl: " << d->highlightedUrl; if (!locationEdit()->lineEdit()->text().isEmpty()) { kDebug() << locationEdit()->lineEdit()->text(); //kDebug() << locationEdit()->urls(); kDebug() << baseUrl(); d->highlightedUrl = baseUrl(); const QString firstUrl(locationEdit()->lineEdit()->text()); // FIXME: find first... if (QDir::isAbsolutePath(firstUrl)) d->highlightedUrl = KUrl::fromPath(firstUrl); else d->highlightedUrl.addPath(firstUrl); } kDebug() << "d->highlightedUrl: " << d->highlightedUrl; if (d->highlightedUrl.isEmpty()) { KMessageBox::error(this, i18n("Enter a filename.")); return false; } if (!currentFilter().isEmpty()) { if (d->mode & SavingFileBasedDB) { const QStringList filters( currentFilter().split(' ') ); QString path = highlightedFile(); kDebug()<< "filter:" << filters << "path:" << path; QString ext( QFileInfo(path).suffix() ); bool hasExtension = false; foreach (const QString& filter, filters) { const QString f( filter.trimmed() ); hasExtension = !f.mid(2).isEmpty() && ext==f.mid(2); if (hasExtension) break; } if (!hasExtension) { //no extension: add one QString defaultExtension( d->defaultExtension ); if (defaultExtension.isEmpty()) { defaultExtension = filters.first().trimmed().mid(2); //first one } path += (QLatin1String(".")+defaultExtension); kDebug() << "appended extension" << path; setSelection( path ); d->highlightedUrl = KUrl(path); } } } kDebug() << "KexiFileWidget::checkURL() path: " << d->highlightedUrl; // kDebug() << "KexiFileWidget::checkURL() fname: " << url.fileName(); //! @todo if ( url.isLocalFile() ) { QFileInfo fi(d->highlightedUrl.toLocalFile()); if (mode() & KFile::ExistingOnly) { if (!fi.exists()) { KMessageBox::error(this, "<qt>" + i18n("The file \"%1\" does not exist.", QDir::convertSeparators(d->highlightedUrl.toLocalFile()))); return false; } else if (mode() & KFile::File) { if (!fi.isFile()) { KMessageBox::error(this, "<qt>" + i18n("Enter a filename.")); return false; } else if (!fi.isReadable()) { KMessageBox::error(this, "<qt>" + i18n("The file \"%1\" is not readable.", QDir::convertSeparators(d->highlightedUrl.path()))); return false; } } } else if (d->confirmOverwrites && !askForOverwriting(d->highlightedUrl.path(), this)) { return false; } return true; }