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

📄 qfiledialog_p.h

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 H
字号:
/******************************************************************************** Copyright (C) 1992-2006 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://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** 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.//#include "private/qdialog_p.h"#include "QtGui/qitemselectionmodel.h"#include "QtGui/qabstractitemview.h"#include "QtGui/qheaderview.h"#include "QtGui/qlistview.h"#include "QtGui/qtreeview.h"#include "QtGui/qtoolbutton.h"#include "QtGui/qevent.h"class QDirModel;class QComboBox;class QAction;class QPushButton;class QFileDialogLineEdit;class QGridLayout;class QLabel;class QFileDialogListView;class QFileDialogTreeView;class QFileDialogPrivate : public QDialogPrivate{    Q_DECLARE_PUBLIC(QFileDialog)public:    QFileDialogPrivate();    // private slots    void _q_reload();    void _q_navigateToPrevious();    void _q_navigateToParent();    void _q_enterDirectory(const QModelIndex &index);    void _q_enterDirectory(const QString &path);    void _q_enterDirectory();    void _q_showList();    void _q_showDetails();    void _q_showHidden();    void _q_useFilter(const QString &filter);    void _q_updateFileName(const QItemSelection &selection);    void _q_autoCompleteFileName(const QString &text);    void _q_autoCompleteDirectory(const QString &text);    void _q_showContextMenu(const QPoint &pos);    void _q_createDirectory();    void _q_renameCurrent();    void _q_deleteCurrent();    void _q_sortByName();    void _q_sortBySize();    void _q_sortByDate();    void _q_setUnsorted();    void _q_sortByColumn(int column);    void _q_currentChanged(const QModelIndex &index);    // setup    void setup(const QString &directory, const QStringList &nameFilter);    void setupActions();    void setupListView(const QModelIndex &index, QGridLayout *grid);    void setupTreeView(const QModelIndex &index, QGridLayout *grid);    void setupToolButtons(const QModelIndex &index, QGridLayout *grid);    void setupWidgets(QGridLayout *grid);    // other    void updateButtons(const QModelIndex &index);    void setRootIndex(const QModelIndex &index);    QModelIndex rootIndex() const;    void setDirSorting(QDir::SortFlags sort);    void setDirFilter(QDir::Filters filter);    QDir::Filters filterForMode(QFileDialog::FileMode mode);    QAbstractItemView::SelectionMode selectionMode(QFileDialog::FileMode mode);    QModelIndex matchDir(const QString &text, const QModelIndex &first) const;    QModelIndex matchName(const QString &name, const QModelIndex &first) const;    bool itemViewKeyboardEvent(QKeyEvent *e);    static QString getEnvironmentVariable(const QString &str);    // inlined stuff    inline QString tr(const char *text) const { return QObject::tr(text); }    inline QString toNative(const QString &path) const        { return QDir::convertSeparators(path); }    inline QString toInternal(const QString &path) const        {#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        }    inline QFileDialog::ViewMode viewMode() const        { return (listModeButton->isDown() ? QFileDialog::List : QFileDialog::Detail); }    // static stuff    static QString workingDirectory(const QString &path);    static QString initialSelection(const QString &path);    // data    QDirModel *model;    QItemSelectionModel *selections;    QFileDialogListView *listView;    QFileDialogTreeView *treeView;    QFileDialog::FileMode fileMode;    QFileDialog::AcceptMode acceptMode;    bool confirmOverwrite;    QString defaultSuffix;    QStringList history;    QComboBox *lookInCombo;    QFileDialogLineEdit *fileNameEdit;    QFileDialogLineEdit *lookInEdit;    QComboBox *fileTypeCombo;    QAction *openAction;    QAction *renameAction;    QAction *deleteAction;    QAction *reloadAction;    QAction *sortByNameAction;    QAction *sortBySizeAction;    QAction *sortByDateAction;    QAction *unsortedAction;    QAction *showHiddenAction;    QPushButton *acceptButton;    QPushButton *rejectButton;    QToolButton *backButton;    QToolButton *toParentButton;    QToolButton *newFolderButton;    QToolButton *detailModeButton;    QToolButton *listModeButton;    QLabel *lookInLabel;    QLabel *fileNameLabel;    QLabel *fileTypeLabel;};struct QFileDialogArgs{    QFileDialogArgs() : parent(0), mode(QFileDialog::AnyFile) {}    QWidget *parent;    QString caption;    QString directory;    QString selection;    QString filter;    QFileDialog::FileMode mode;    QFileDialog::Options options;};class QFileDialogListView : public QListView{public:    QFileDialogListView(QFileDialogPrivate *d_pointer)        : QListView(qobject_cast<QWidget*>(d_pointer->q_ptr)), d_ptr(d_pointer)    {}protected:    void keyPressEvent(QKeyEvent *e)    {        if (d_ptr->itemViewKeyboardEvent(e)) {            e->accept();        } else {            QListView::keyPressEvent(e);        }    }private:    QFileDialogPrivate *d_ptr;};class QFileDialogTreeView : public QTreeView{public:    QFileDialogTreeView(QFileDialogPrivate *d_pointer)        : QTreeView(qobject_cast<QWidget*>(d_pointer->q_ptr)), d_ptr(d_pointer)    {        // we want to handle this our selves in QFileDialog        disconnect(header(), SIGNAL(sectionClicked(int)), this, SLOT(sortByColumn(int)));    }protected:    void keyPressEvent(QKeyEvent *e)    {        if (d_ptr->itemViewKeyboardEvent(e)) {            e->accept();        } else {            QTreeView::keyPressEvent(e);        }    }private:    QFileDialogPrivate *d_ptr;};#endif // QFILEDIALOG_P_H

⌨️ 快捷键说明

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