Fixed two issues with KFileDialog:

- if the user types a new path manually, the new location was not used. Instead the older path was taken.
  In case the typed path does not exists, an error message is displayed
- if the user selected a path from the autocompletion lists using the mouse, the new selected location was
  not used when slotOK was invoked.
This resolves bug 2654.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/1/head
Michele Calgaro 8 роки тому
джерело 1571e61744
коміт 53e36f6db0

@ -334,6 +334,20 @@ void KFileDialog::slotOk()
{
kdDebug(tdefile_area) << "slotOK\n";
// If the user typed in the path field without confirming it with ENTER,
// "ops" will most likely point do a different folder. Make sure the folder exists,
// then update "ops" accordingly and only if necessary
TQDir savedir = TQDir(d->pathCombo->lineEdit()->text());
if (!savedir.exists())
{
KMessageBox::information(this, i18n("The selected folder does not exists. Please select an existing one."));
return;
}
if (ops->url().path(1) != KURL(savedir.absPath()).path(1))
{
setURL(savedir.absPath());
}
// a list of all selected files/directories (if any)
// can only be used if the user didn't type any filenames/urls himself
const KFileItemList *items = ops->selectedItems();
@ -981,9 +995,11 @@ void KFileDialog::init(const TQString& startDir, const TQString& filter, TQWidge
d->pathCombo->setCompletionObject( pathCompletionObj );
d->pathCombo->setAutoDeleteCompletionObject( true );
connect( d->pathCombo, TQT_SIGNAL( urlActivated( const KURL& )),
connect( d->pathCombo, TQT_SIGNAL( urlActivated( const KURL& )),
this, TQT_SLOT( enterURL( const KURL& ) ));
connect( d->pathCombo, TQT_SIGNAL( returnPressed( const TQString& )),
connect( d->pathCombo, TQT_SIGNAL( returnPressed( const TQString& )),
this, TQT_SLOT( enterURL( const TQString& ) ));
connect( d->pathCombo, TQT_SIGNAL( activated( const TQString& )),
this, TQT_SLOT( enterURL( const TQString& ) ));
TQString whatsThisText;

Завантаження…
Відмінити
Зберегти