Changeset 323 for trunk/src/gui/kernel/qclipboard_pm.cpp
- Timestamp:
- Nov 16, 2009, 1:06:34 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gui/kernel/qclipboard_pm.cpp
r322 r323 55 55 #include "qdnd_p.h" 56 56 57 #define QCLIPBOARD_DEBUG 58 57 59 QT_BEGIN_NAMESPACE 58 60 … … 75 77 ULONG cf = 0; 76 78 while ((cf = WinEnumClipbrdFmts(NULLHANDLE, cf))) { 77 //if (QPMMime::converterToMime(mime, cf)) {78 //ok = true;79 //break;80 //}79 if (QPMMime::converterToMime(mime, cf)) { 80 ok = true; 81 break; 82 } 81 83 } 82 84 WinCloseClipbrd(NULLHANDLE); … … 94 96 QStringList fmts; 95 97 if (WinOpenClipbrd(NULLHANDLE)) { 96 // fmts = QPMMime::allMimesForFormats(); 98 QVector<ULONG> cfs; 99 ULONG cf = 0; 100 while ((cf = WinEnumClipbrdFmts(NULLHANDLE, cf))) 101 cfs << cf; 102 fmts = QPMMime::allMimesForFormats(cfs); 97 103 WinCloseClipbrd(NULLHANDLE); 98 104 } … … 108 114 QVariant::Type type) const 109 115 { 110 QStringList fmts; 116 QVariant result; 117 111 118 if (WinOpenClipbrd(NULLHANDLE)) { 112 // @todo enumerate all formats and select the best converter 113 // QPMMime *converter = QPMMime::converterToMime(mime, cf); 114 // if (converter) 115 // result = converter->convertToMime(mime, cf, type); 119 ULONG cf = 0; 120 while ((cf = WinEnumClipbrdFmts(NULLHANDLE, cf))) { 121 QPMMime *converter = QPMMime::converterToMime(mime, cf); 122 if (converter) { 123 ULONG flags; 124 if (WinQueryClipbrdFmtInfo(NULLHANDLE, cf, &flags)) { 125 ULONG data = WinQueryClipbrdData(NULLHANDLE, cf); 126 if (data) { 127 result = converter->convertToMime(mime, type, cf, flags, data); 128 } 129 } 130 break; 131 } 132 } 116 133 WinCloseClipbrd(NULLHANDLE); 117 134 } … … 121 138 WinGetLastError(NULLHANDLE)); 122 139 #endif 123 return fmts;140 return result; 124 141 } 125 142 … … 171 188 void QClipboard::setMimeData(QMimeData *src, Mode mode) 172 189 { 173 // @todo implement 190 if (mode != Clipboard) 191 return; 192 193 if (!WinOpenClipbrd(NULLHANDLE)) { 194 #ifndef QT_NO_DEBUG 195 qWarning("QClipboard: WinOpenClipbrd failed with %lX", 196 WinGetLastError(NULLHANDLE)); 197 #endif 198 return; 199 } 200 201 // @todo 202 // QClipboardData *d = clipboardData(); 203 // d->setSource(src); 204 205 WinCloseClipbrd(NULLHANDLE); 174 206 } 175 207
Note:
See TracChangeset
for help on using the changeset viewer.