Browse Source

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 2 years ago
parent
commit
53e36f6db0
1 changed files with 18 additions and 2 deletions
  1. 18
    2
      tdeio/tdefile/tdefiledialog.cpp

+ 18
- 2
tdeio/tdefile/tdefiledialog.cpp View File

@@ -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;

Loading…
Cancel
Save