GUI: show hidden (dot) files in file/dir selection dialogs. Closes issue #62
This commit is contained in:
parent
b6c73ecdeb
commit
16dea9d490
@ -26,7 +26,6 @@
|
||||
#include <qlayout.h>
|
||||
#include <qtooltip.h>
|
||||
#include <qwhatsthis.h>
|
||||
#include <qfiledialog.h>
|
||||
#include <qmessagebox.h>
|
||||
|
||||
#include <list>
|
||||
@ -374,6 +373,6 @@ void AdvSearch::runSearch()
|
||||
|
||||
void AdvSearch::browsePB_clicked()
|
||||
{
|
||||
QString dir = QFileDialog::getExistingDirectory();
|
||||
QString dir = myGetFileName(true);
|
||||
subtreeCMB->setEditText(dir);
|
||||
}
|
||||
|
||||
@ -22,7 +22,6 @@
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <QFrame>
|
||||
#include <QFileDialog>
|
||||
#include <QListWidget>
|
||||
|
||||
#include <qobject.h>
|
||||
@ -43,6 +42,7 @@
|
||||
#include "smallut.h"
|
||||
#include "debuglog.h"
|
||||
#include "rcldb.h"
|
||||
#include "guiutils.h"
|
||||
|
||||
#include <list>
|
||||
using std::list;
|
||||
@ -267,10 +267,9 @@ void ConfParamFNW::loadValue()
|
||||
|
||||
void ConfParamFNW::showBrowserDialog()
|
||||
{
|
||||
QString s = m_isdir ?
|
||||
QFileDialog::getExistingDirectory() : QFileDialog::getSaveFileName();
|
||||
if (!s.isEmpty())
|
||||
m_le->setText(s);
|
||||
QString s = myGetFileName(m_isdir);
|
||||
if (!s.isEmpty())
|
||||
m_le->setText(s);
|
||||
}
|
||||
|
||||
class SmallerListWidget: public QListWidget
|
||||
@ -400,7 +399,7 @@ void ConfParamSLW::deleteSelected()
|
||||
// "Add entry" dialog for a file name list
|
||||
void ConfParamDNLW::showInputDialog()
|
||||
{
|
||||
QString s = QFileDialog::getExistingDirectory();
|
||||
QString s = myGetFileName(true);
|
||||
if (!s.isEmpty()) {
|
||||
QList<QListWidgetItem *>items =
|
||||
m_lb->findItems(s, Qt::MatchFixedString|Qt::MatchCaseSensitive);
|
||||
|
||||
@ -20,7 +20,6 @@
|
||||
#include <QVBoxLayout>
|
||||
#include <QGroupBox>
|
||||
#include <QFrame>
|
||||
#include <QFileDialog>
|
||||
#include <qlayout.h>
|
||||
#include <qwidget.h>
|
||||
#include <qlabel.h>
|
||||
|
||||
@ -26,41 +26,7 @@ using namespace std;
|
||||
|
||||
#include <qglobal.h>
|
||||
#include <qobject.h>
|
||||
|
||||
#if QT_VERSION < 0x040000
|
||||
#define QFRAME_INCLUDE <qframe.h>
|
||||
#define QFILEDIALOG_INCLUDE <qfiledialog.h>
|
||||
#define QLISTBOX_INCLUDE <qlistbox.h>
|
||||
#include <qtabdialog.h>
|
||||
#define QFILEDIALOG QFileDialog
|
||||
#define QFRAME QFrame
|
||||
#define QHBOXLAYOUT QHBoxLayout
|
||||
#define QLISTBOX QListBox
|
||||
#define QLISTBOXITEM QListBoxItem
|
||||
#define QVBOXLAYOUT QVBoxLayout
|
||||
#define QTABDIALOG QTabDialog
|
||||
|
||||
#else // Qt4 ->
|
||||
|
||||
#include <Q3HBoxLayout>
|
||||
#include <Q3VBoxLayout>
|
||||
#include <Q3TabDialog>
|
||||
#include <QFrame>
|
||||
#define QFRAME_INCLUDE <q3frame.h>
|
||||
|
||||
#include <QFileDialog>
|
||||
#define QFILEDIALOG_INCLUDE <q3filedialog.h>
|
||||
#define QLISTBOX_INCLUDE <q3listbox.h>
|
||||
|
||||
#define QFILEDIALOG Q3FileDialog
|
||||
#define QFRAME Q3Frame
|
||||
#define QHBOXLAYOUT Q3HBoxLayout
|
||||
#define QLISTBOX Q3ListBox
|
||||
#define QLISTBOXITEM Q3ListBoxItem
|
||||
#define QVBOXLAYOUT Q3VBoxLayout
|
||||
#define QTABDIALOG Q3TabDialog
|
||||
#endif // QT 3/4
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qapplication.h>
|
||||
#include <qtranslator.h>
|
||||
@ -68,7 +34,6 @@ using namespace std;
|
||||
#include <qthread.h>
|
||||
#include <qtimer.h>
|
||||
#include <qlayout.h>
|
||||
#include QFRAME_INCLUDE
|
||||
#include <qwidget.h>
|
||||
#include <qlabel.h>
|
||||
|
||||
|
||||
@ -27,8 +27,9 @@
|
||||
#include "base64.h"
|
||||
#include "transcode.h"
|
||||
|
||||
#include <qsettings.h>
|
||||
#include <qstringlist.h>
|
||||
#include <QSettings>
|
||||
#include <QStringList>
|
||||
#include <QFileDialog>
|
||||
|
||||
RclDynConf *g_dynconf;
|
||||
|
||||
@ -324,3 +325,30 @@ void rwSettings(bool writing)
|
||||
prefs.asearchSubdirHist.push_front(QString::fromUtf8(it->c_str()));
|
||||
}
|
||||
}
|
||||
|
||||
QString myGetFileName(bool isdir, QString caption)
|
||||
{
|
||||
LOGDEB1(("myFileDialog: isdir %d\n", isdir));
|
||||
QFileDialog dialog(0, caption);
|
||||
|
||||
if (isdir) {
|
||||
dialog.setFileMode(QFileDialog::Directory);
|
||||
dialog.setOptions(QFileDialog::ShowDirsOnly);
|
||||
} else {
|
||||
dialog.setFileMode(QFileDialog::AnyFile);
|
||||
dialog.setAcceptMode(QFileDialog::AcceptSave);
|
||||
}
|
||||
dialog.setViewMode(QFileDialog::List);
|
||||
QFlags<QDir::Filter> flags = QDir::NoDotAndDotDot | QDir::Hidden;
|
||||
if (isdir)
|
||||
flags |= QDir::Dirs;
|
||||
else
|
||||
flags |= QDir::Dirs | QDir::Files;
|
||||
dialog.setFilter(flags);
|
||||
|
||||
|
||||
if (dialog.exec() == QDialog::Accepted) {
|
||||
return dialog.selectedFiles().value(0);
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
@ -131,4 +131,8 @@ extern void rwSettings(bool dowrite);
|
||||
|
||||
extern QString g_stringAllStem, g_stringNoStem;
|
||||
|
||||
/** Specialized version of the qt file dialog. Can't use getOpenFile()
|
||||
etc. cause they hide dot files... */
|
||||
extern QString myGetFileName(bool isdir, QString caption = QString());
|
||||
|
||||
#endif /* _GUIUTILS_H_INCLUDED_ */
|
||||
|
||||
@ -35,7 +35,6 @@
|
||||
#include <qlineedit.h>
|
||||
#include <qcheckbox.h>
|
||||
#include <qcombobox.h>
|
||||
#include <qfiledialog.h>
|
||||
#include <qlayout.h>
|
||||
#include <qtooltip.h>
|
||||
#include <qwhatsthis.h>
|
||||
@ -355,14 +354,12 @@ void UIPrefsDialog::delExtraDbPB_clicked()
|
||||
*/
|
||||
void UIPrefsDialog::addExtraDbPB_clicked()
|
||||
{
|
||||
static QString lastdir;
|
||||
QString input = myGetFileName(true,
|
||||
tr("Select xapian index directory "
|
||||
"(ie: /home/buddy/.recoll/xapiandb)"));
|
||||
|
||||
QString input = QFileDialog::getExistingDirectory(this,
|
||||
tr("Select xapian index directory (ie: /home/buddy/.recoll/xapiandb)"),
|
||||
lastdir);
|
||||
if (input.isEmpty())
|
||||
return;
|
||||
lastdir = input;
|
||||
|
||||
string dbdir = (const char *)input.toLocal8Bit();
|
||||
LOGDEB(("ExtraDbDial: got: [%s]\n", dbdir.c_str()));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user