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

📄 iconcache.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 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://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 ICONCACHE_H#define ICONCACHE_H#include "formeditor_global.h"#include <QtDesigner/QtDesigner>#include <resourcefile_p.h>#include <QtCore/QMap>#include <QtCore/QVariant>#include <QtCore/QString>#include <QtCore/QPair>#include <QtGui/QPixmap>#include <QtGui/QIcon>namespace qdesigner_internal {/*    We need two caches - one for icons and one for pixmaps - which are in all    other respects identical.*/template <typename Item>class ResourceCache{public:    Item keyToItem(const QString &path, const QString &resourcePath = QString());    QString itemToFilePath(const Item &item) const;    QString itemToQrcPath(const Item &item) const;    QList<Item> itemList() const;private:    typedef QPair<QString, QString> Key;    typedef QMap<Key, Item> KeyToItemMap;    typedef QMap<int, Key> SerialToKeyMap;    KeyToItemMap m_key_to_item;    SerialToKeyMap m_serial_to_key;};template <typename Item>Item ResourceCache<Item>::keyToItem(const QString &filePath, const QString &qrcPath){    Key key = qMakePair(filePath, qrcPath);    typename KeyToItemMap::const_iterator it = m_key_to_item.find(key);    if (it != m_key_to_item.end())        return *it;    QString real_path;    if (!qrcPath.isEmpty()) {        ResourceFile rf(qrcPath);        if (rf.load()) {            real_path = rf.resolvePath(filePath);        } else {            qWarning("IconCache::nameToIcon(): failed to open \"%s\": %s",                        qrcPath.toUtf8().constData(),                        rf.errorMessage().toUtf8().constData());        }    } else {       real_path = filePath;    }    if (real_path.isEmpty())        return Item();    Item item(real_path);    if (item.isNull())        return Item();    m_key_to_item.insert(key, item);    m_serial_to_key.insert(item.serialNumber(), key);    return item;}template <typename Item>QString ResourceCache<Item>::itemToFilePath(const Item &item) const{    typename SerialToKeyMap::const_iterator it = m_serial_to_key.find(item.serialNumber());    if (it != m_serial_to_key.end())        return (*it).first;    return QString();}template <typename Item>QString ResourceCache<Item>::itemToQrcPath(const Item &item) const{    typename SerialToKeyMap::const_iterator it = m_serial_to_key.find(item.serialNumber());    if (it != m_serial_to_key.end())        return (*it).second;    return QString();}template <typename Item>QList<Item> ResourceCache<Item>::itemList() const{    return m_key_to_item.values();}class QT_FORMEDITOR_EXPORT IconCache : public QDesignerIconCacheInterface{    Q_OBJECTpublic:    IconCache(QObject *parent);    virtual QIcon nameToIcon(const QString &path, const QString &resourcePath = QString());    virtual QString iconToFilePath(const QIcon &pm) const;    virtual QString iconToQrcPath(const QIcon &pm) const;    virtual QPixmap nameToPixmap(const QString &path, const QString &resourcePath = QString());    virtual QString pixmapToFilePath(const QPixmap &pm) const;    virtual QString pixmapToQrcPath(const QPixmap &pm) const;    virtual QList<QPixmap> pixmapList() const;    virtual QList<QIcon> iconList() const;    virtual QString resolveQrcPath(const QString &filePath, const QString &qrcPath, const QString &workingDirectory = QString()) const;private:    ResourceCache<QIcon> m_icon_cache;    ResourceCache<QPixmap> m_pixmap_cache;};}  // namespace qdesigner_internal#endif // ICONCACHE_H

⌨️ 快捷键说明

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