QFileDialog - enter key behaviour



  • Hi, here is a directory chooser code:
    @QFileDialog dlg(this);
    dlg.setFileMode(QFileDialog::Directory);
    dlg.setOptions(QFileDialog::ShowDirsOnly);
    dlg.setAcceptMode(QFileDialog::AcceptSave);
    dlg.exec();@

    The problem is the keyboard-enter behaviour: when user type a dir using keyboard and press enter, it immediately calls accept().
    But I prefer to show the content of given dir when the directory-lineEdit has a focus - without closing the dialog...

    Is there any way to change keyboard-enter behaviour?

    Thanks.



  • Without looking in the docs I guess you'd have to subclass QFileDialog and change it's keyPressEvent().



  • One thing you can do is check whether the dialog input is a valid directory. If not, pop the dialog again...

    You don't really need to instantiate a QFileDialog object, you can simply do something like this:
    @
    QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), "/home", QFileDialog::ShowDirsOnly);@



  • yes, i know that native dialog works, but it is not so beautiful as styled Qt dialog :o)
    The problem is with network path - typically the user types a machine name: \computer\ and then he wants to pick the dir...



  • Well, you can always write your own custom input dialog it is fairly easy, or subclass QFileDialog and modify it.



  • Ok, that's the way.
    But I think that the default behaviour of the qt-style dialog si buggy, because no one wants to choose dir with enter when the edit line is focused...



  • Ironically, the native dialog is working very well for me, I can type folder names, press enter and pretty much navigate everywhere, ugly - maybe, but I am more about functional anyway :)

    If you really think it is a bug you can always "file a bug report":http://bugreports.qt.nokia.com/ :)



  • For now, I have switched to native dialog too :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.