⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qfiledialog_p.h

📁 奇趣公司比较新的qt/emd版本
💻 H
字号:
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the QtGui module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QFILEDIALOG_P_H#define QFILEDIALOG_P_H////  W A R N I N G//  -------------//// This file is not part of the Qt API.  It exists purely as an// implementation detail.  This header file may change from version to// version without notice, or even be removed.//// We mean it.//#ifndef QT_NO_FILEDIALOG#include "qfiledialog.h"#include "private/qdialog_p.h"#include "qfilesystemmodel_p.h"#include <qlistview.h>#include <qtreeview.h>#include <qcombobox.h>#include <qtoolbutton.h>#include <qlabel.h>#include <qevent.h>#include <qlineedit.h>#include <qurl.h>#include <qstackedwidget.h>#include <qdialogbuttonbox.h>#include <qabstractproxymodel.h>#include <qcompleter.h>#include <qtimeline.h>#include <qdebug.h>#include "qsidebar_p.h"#if defined (Q_OS_UNIX)#include <unistd.h>#endifclass QFileDialogListView;class QFileDialogTreeView;class QFileDialogLineEdit;class QGridLayout;class QCompleter;class QHBoxLayout;class Ui_QFileDialog;struct QFileDialogArgs{    QFileDialogArgs() : parent(0), mode(QFileDialog::AnyFile) {}    QWidget *parent;    QString caption;    QString directory;    QString selection;    QString filter;    QFileDialog::FileMode mode;    QFileDialog::Options options;};#define UrlRole (Qt::UserRole + 1)class QFileDialogPrivate : public QDialogPrivate{    Q_DECLARE_PUBLIC(QFileDialog)public:    QFileDialogPrivate() :    urlModel(0),#ifndef QT_NO_PROXYMODEL    proxyModel(0),#endif    model(0),    fileMode(QFileDialog::AnyFile),    acceptMode(QFileDialog::AcceptOpen),    confirmOverwrite(true),    currentHistoryLocation(-1),    renameAction(0),    deleteAction(0),    showHiddenAction(0),    useDefaultCaption(true),    defaultFileTypes(true),    qFileDialogUi(0)    {};    void createToolButtons();    void createMenuActions();    void createWidgets();    void init(const QString &directory = QString(), const QString &nameFilter = QString(),              const QString &caption = QString());    bool itemViewKeyboardEvent(QKeyEvent *event);    QString getEnvironmentVariable(const QString &string);    static QString workingDirectory(const QString &path);    static QString initialSelection(const QString &path);    QStringList typedFiles() const;    inline QModelIndex mapToSource(const QModelIndex &index) const;    inline QModelIndex mapFromSource(const QModelIndex &index) const;    inline QModelIndex rootIndex() const;    inline void setRootIndex(const QModelIndex &index) const;    inline QModelIndex select(const QModelIndex &index) const;    inline QString rootPath() const;    QLineEdit *lineEdit() const;    int maxNameLength(const QString &path) {#if defined(Q_OS_UNIX)        return ::pathconf(QFile::encodeName(path).data(), _PC_NAME_MAX);#elif defined(Q_OS_WIN)        DWORD maxLength;        QString drive = path.left(3);        if (QT_WA_INLINE(::GetVolumeInformationW(reinterpret_cast<const WCHAR *>(drive.utf16()), NULL, 0, NULL, &maxLength, NULL, NULL, 0),            ::GetVolumeInformationA(drive.toLocal8Bit().constData(), NULL, 0, NULL, &maxLength, NULL, NULL, 0)) == FALSE)            return -1;        return maxLength;#else        Q_UNUSED(path);#endif        return -1;    }    QString basename(const QString &path)    {        int separator = path.lastIndexOf(QDir::separator());        if (separator != -1)            return path.mid(separator + 1);        return path;    }    static inline QDir::Filters filterForMode(QFileDialog::FileMode mode)    {        if (mode == QFileDialog::DirectoryOnly)            return QDir::Drives | QDir::AllDirs | QDir::NoDotAndDotDot;        return QDir::Drives | QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot;    }    QAbstractItemView *currentView() const;    static inline QString toInternal(const QString &path)    {#if defined(Q_FS_FAT) || defined(Q_OS_OS2EMX)        QString n(path);        for (int i = 0; i < (int)n.length(); ++i)            if (n[i] == '\\') n[i] = '/';        return n;#else // the compile should optimize away this        return path;#endif    }    void retranslateWindowTitle();    void retranslateStrings();    void _q_goHome();    void _q_pathChanged(const QString &);    void _q_navigateBackward();    void _q_navigateForward();    void _q_navigateToParent();    void _q_createDirectory();    void _q_showListView();    void _q_showDetailsView();    void _q_showContextMenu(const QPoint &position);    void _q_renameCurrent();    void _q_deleteCurrent();    void _q_showHidden();    void _q_showHeader(QAction *);    void _q_updateOkButton();    void _q_currentChanged(const QModelIndex &index);    void _q_enterDirectory(const QModelIndex &index);    void _q_goToDirectory(const QString &);    void _q_useNameFilter(const QString &nameFilter);    void _q_selectionChanged();    void _q_goToUrl(const QUrl &url);    void _q_autoCompleteFileName(const QString &);    void _q_rowsInserted(const QModelIndex & parent);    // layout    QUrlModel *urlModel;#ifndef QT_NO_PROXYMODEL    QAbstractProxyModel *proxyModel;#endif    // data    QStringList watching;    QFileSystemModel *model;    QCompleter *completer;    QFileDialog::FileMode fileMode;    QFileDialog::AcceptMode acceptMode;    bool confirmOverwrite;    QString defaultSuffix;    QString setWindowTitle;    QStringList history;    QStringList currentHistory;    int currentHistoryLocation;    QAction *renameAction;    QAction *deleteAction;    QAction *showHiddenAction;    QAction *newFolderAction;    bool useDefaultCaption;    bool defaultFileTypes;    Ui_QFileDialog *qFileDialogUi;};class QFileDialogLineEdit : public QLineEdit{public:    QFileDialogLineEdit(QWidget *parent = 0) : QLineEdit(parent), hideOnEsc(false), d_ptr(0){}    void init(QFileDialogPrivate *d_pointer) {d_ptr = d_pointer; }    void keyPressEvent(QKeyEvent *e);    bool hideOnEsc;private:    QFileDialogPrivate *d_ptr;};class QFileDialogListView : public QListView{public:    QFileDialogListView(QWidget *parent = 0);    void init(QFileDialogPrivate *d_pointer);    QSize sizeHint() const;protected:    void keyPressEvent(QKeyEvent *e);private:    QFileDialogPrivate *d_ptr;};class QFileDialogTreeView : public QTreeView{public:    QFileDialogTreeView(QWidget *parent);    void init(QFileDialogPrivate *d_pointer);    QSize sizeHint() const;protected:    void keyPressEvent(QKeyEvent *e);private:    QFileDialogPrivate *d_ptr;};inline QModelIndex QFileDialogPrivate::mapToSource(const QModelIndex &index) const {#ifdef QT_NO_PROXYMODEL    return index;#else    return proxyModel ? proxyModel->mapToSource(index) : index;#endif}inline QModelIndex QFileDialogPrivate::mapFromSource(const QModelIndex &index) const {#ifdef QT_NO_PROXYMODEL    return index;#else    return proxyModel ? proxyModel->mapFromSource(index) : index;#endif}inline QString QFileDialogPrivate::rootPath() const {    return model->rootPath();}#ifndef QT_NO_COMPLETER/*!    QCompleter that can deal with QFileSystemModel  */class QFSCompletor :  public QCompleter {public:    QFSCompletor(QAbstractItemModel *model, QObject *parent = 0) : QCompleter(model, parent){}    QString pathFromIndex(const QModelIndex &index) const;    QStringList splitPath(const QString& path) const;};#endif // QT_NO_COMPLETER#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -