Ignore:
Timestamp:
Nov 18, 2009, 1:49:31 AM (16 years ago)
Author:
Dmitry A. Kuminov
Message:

gui/kernel: Improved mime <-> PM clipboard format conversion interfaces.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gui/kernel/qmime.h

    r323 r324  
    123123
    124124    // for converting from Qt
    125     virtual bool canConvertFromMime(ULONG format, const QMimeData *mimeData) const = 0;
    126     virtual bool convertFromMime(ULONG format, const QMimeData *mimeData,
    127                                  ULONG &flags, ULONG &data) const = 0;
    128     virtual QVector<ULONG> formatsForMime(const QString &mimeType, const QMimeData *mimeData) const = 0;
     125    virtual QList<ULONG> formatsForMimeData(const QMimeData *mimeData) const = 0;
     126    virtual bool convertFromMimeData(const QMimeData *mimeData, ULONG format,
     127                                     ULONG &flags, ULONG *data) const = 0;
    129128
    130129    // for converting to Qt
    131     virtual bool canConvertToMime(const QString &mimeType, ULONG format) const = 0;
    132     virtual QVariant convertToMime(const QString &mimeType, QVariant::Type preferredType,
    133                                    ULONG format, ULONG flags, ULONG data) const = 0;
    134     virtual QString mimeForFormat(ULONG format) const = 0;
     130    virtual QStringList mimesForFormats(const QList<ULONG> &formats) const = 0;
     131    virtual QVariant convertFromFormat(ULONG format, ULONG flags, ULONG data,
     132                                       const QString &mimeType,
     133                                       QVariant::Type preferredType) const = 0;
    135134
    136135    static ULONG registerMimeType(const QString &mime);
     
    138137private:
    139138    friend class QClipboardWatcher;
    140 
    141     static QPMMime *converterToMime(const QString &mimeType, ULONG format);
    142     static QStringList allMimesForFormats(const QVector<ULONG> &formats);
    143     static QPMMime *converterFromMime(ULONG format, const QMimeData *mimeData);
    144     static QVector<ULONG> allFormatsForMime(const QMimeData *mimeData);
     139    friend class QClipboard;
     140
     141    struct Match
     142    {
     143        Match(QPMMime *c, const QString f, int p) :
     144            converter(c), mime(f), format(0), priority(p) {}
     145
     146        Match(QPMMime *c, ULONG f, int p) :
     147            converter(c), format(f), priority(p) {}
     148
     149        QPMMime *converter;
     150        QString mime; // used by allConvertersFromFormats()
     151        ULONG format; // used by allConvertersFromMimeData()
     152        int priority;
     153    };
     154
     155    static QList<Match> allConvertersFromFormats(const QList<ULONG> &formats);
     156    static QList<Match> allConvertersFromMimeData(const QMimeData *mimeData);
    145157};
    146158
Note: See TracChangeset for help on using the changeset viewer.