resourcefile_p.h

来自「奇趣公司比较新的qt/emd版本」· C头文件 代码 · 共 197 行

H
197
字号
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the Qt Designer 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.******************************************************************************/////  W A R N I N G//  -------------//// This file is not part of the Qt API.  It exists for the convenience// of Qt Designer.  This header// file may change from version to version without notice, or even be removed.//// We mean it.//#ifndef RESOURCEFILE_H#define RESOURCEFILE_H#include <QtCore/QString>#include <QtCore/QStringList>#include <QtCore/QMap>#include <QtCore/QAbstractItemModel>#include "shared_global_p.h"namespace qdesigner_internal {class QDESIGNER_SHARED_EXPORT ResourceFile{public:    ResourceFile(const QString &file_name = QString());    void setFileName(const QString &file_name) { m_file_name = file_name; }    QString fileName() const { return m_file_name; }    bool load();    bool save();    QString errorMessage() const { return m_error_message; }    QString resolvePath(const QString &path) const;    QStringList prefixList() const;    QStringList fileList(int pref_idx) const;    int prefixCount() const;    QString prefix(int idx) const;    QString lang(int idx) const;        int fileCount(int prefix_idx) const;    QString file(int prefix_idx, int file_idx) const;    QString alias(int prefix_idx, int file_idx) const;    void addFile(int prefix_idx, const QString &file);    void addPrefix(const QString &prefix);        void removePrefix(int prefix_idx);    void removeFile(int prefix_idx, int file_idx);        void replacePrefix(int prefix_idx, const QString &prefix);    void replaceLang(int prefix_idx, const QString &lang);    void replaceAlias(int prefix_idx, int file_idx, const QString &alias);    void replaceFile(int pref_idx, int file_idx, const QString &file);    int indexOfPrefix(const QString &prefix) const;    int indexOfFile(int pref_idx, const QString &file) const;        bool contains(const QString &prefix, const QString &file = QString()) const;    bool contains(int pref_idx, const QString &file) const;    QString relativePath(const QString &abs_path) const;    QString absolutePath(const QString &rel_path) const;    static QString fixPrefix(const QString &prefix);    bool split(const QString &path, QString *prefix, QString *file) const;    bool isEmpty() const;    struct File {        File(const QString &_name = QString(), const QString &_alias = QString())            : name(_name), alias(_alias) {}        bool operator < (const File &other) const { return name < other.name; }        bool operator == (const File &other) const { return name == other.name; }        bool operator != (const File &other) const { return name != other.name; }        QString name;        QString alias;    };    typedef QList<File> FileList;    struct Prefix {        Prefix(const QString &_name = QString(), const QString &_lang = QString(), const FileList &_file_list = FileList())            : name(_name), lang(_lang), file_list(_file_list) {}        QString name;        QString lang;        FileList file_list;    };    typedef QList<Prefix> PrefixList;private:    PrefixList m_prefix_list;    QString m_file_name;    QString m_error_message;};class QDESIGNER_SHARED_EXPORT ResourceModel : public QAbstractItemModel{    Q_OBJECTpublic:    ResourceModel(const ResourceFile &resource_file, QObject *parent = 0);    QModelIndex index(int row, int column,                        const QModelIndex &parent = QModelIndex()) const;    QModelIndex parent(const QModelIndex &index) const;    int rowCount(const QModelIndex &parent) const;    int columnCount(const QModelIndex &parent) const;    bool hasChildren(const QModelIndex &parent) const;    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;    QString fileName() const { return m_resource_file.fileName(); }    void setFileName(const QString &file_name) { m_resource_file.setFileName(file_name); }    void getItem(const QModelIndex &index, QString &prefix, QString &file) const;    QString lang(const QModelIndex &index) const;    QString alias(const QModelIndex &index) const;        virtual QModelIndex addNewPrefix();    virtual QModelIndex addFiles(const QModelIndex &idx, const QStringList &file_list);    virtual void changePrefix(const QModelIndex &idx, const QString &prefix);    virtual void changeLang(const QModelIndex &idx, const QString &lang);    virtual void changeAlias(const QModelIndex &idx, const QString &alias);    virtual QModelIndex deleteItem(const QModelIndex &idx);    QModelIndex getIndex(const QString &prefix, const QString &file);    QModelIndex getIndex(const QString &prefixed_file);    QModelIndex prefixIndex(const QModelIndex &sel_idx) const;    QString absolutePath(const QString &path) const        { return m_resource_file.absolutePath(path); }    QString relativePath(const QString &path) const        { return m_resource_file.relativePath(path); }    QString lastResourceOpenDirectory() const;    virtual bool reload();    virtual bool save();    QString errorMessage() const { return m_resource_file.errorMessage(); }    bool dirty() const { return m_dirty; }    void setDirty(bool b);    virtual QMimeData *mimeData (const QModelIndexList & indexes) const;    static bool iconFileExtension(const QString &path);    static QString resourcePath(const QString &prefix, const QString &file);signals:    void dirtyChanged(bool b);private:    ResourceFile m_resource_file;    bool m_dirty;    QString m_lastResourceDir;};} // namespace qdesigner_internal#endif // RESOURCEFILE_H

⌨️ 快捷键说明

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