Changeset 465
- Timestamp:
- Jan 22, 2010, 12:24:57 PM (16 years ago)
- Location:
- trunk/src/gui/kernel
- Files:
-
- 3 edited
-
qdnd_pm.cpp (modified) (3 diffs)
-
qmime.h (modified) (6 diffs)
-
qmime_pm.cpp (modified) (19 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gui/kernel/qdnd_pm.cpp
r464 r465 1024 1024 static ULONG itemID = 0; 1025 1025 1026 const char *type = 0;1027 const char *ext = 0;1026 ; 1027 ; 1028 1028 firstWorker->defaultFileType(type, ext); 1029 1029 … … 1043 1043 name = QString(QLatin1String("%1 %2")).arg(targetName).arg(i + 1); 1044 1044 1045 if (ext) { 1046 name += QLatin1Char('.'); 1047 name += QFile::decodeName(QByteArray(ext)); 1048 } 1045 if (!ext.isEmpty()) 1046 name += QString(QLatin1String(".%1")).arg(ext); 1049 1047 1050 1048 DEBUG(() << "QPMCoopDragWorker: item" << i << ": type" << type … … 1062 1060 item->hwndItem = hwnd(); 1063 1061 item->ulItemID = itemID ++; 1064 item->hstrType = DrgAddStrHandle(type ? type : DRT_UNKNOWN); 1062 item->hstrType = DrgAddStrHandle(!type.isEmpty() ? 1063 QFile::encodeName(type) : DRT_UNKNOWN); 1065 1064 item->hstrRMF = DrgAddStrHandle(allFormats); 1066 1065 item->hstrContainerName = 0; -
trunk/src/gui/kernel/qmime.h
r448 r465 154 154 virtual bool prepare(const char *drm, const char *drf, DRAGITEM *item, 155 155 ULONG itemIndex) { return false; } 156 virtual void defaultFileType( const char *&type, const char *&ext) {};156 virtual void defaultFileType(&ext) {}; 157 157 158 158 private: … … 169 169 virtual ~DefaultDragWorker(); 170 170 171 // Drag pWorker interface171 // DragWorker interface 172 172 bool cleanup(bool isCancelled); 173 173 bool isExclusive() const; … … 177 177 bool prepare(const char *drm, const char *drf, DRAGITEM *item, 178 178 ULONG itemIndex); 179 void defaultFileType( const char *&type, const char *&ext);179 void defaultFileType(&ext); 180 180 181 181 // QPMObjectWindow interface … … 188 188 virtual bool provide(const char *drf, const QByteArray &allData, 189 189 ULONG itemIndex, QByteArray &itemData) = 0; 190 virtual void fileType(const char *drf, const char *&type, 191 const char *&ext) {}; 190 virtual void fileType(const char *drf, QString &type, QString &ext) {}; 192 191 }; 193 192 194 bool addProvider(const char *drf, Provider *provider,193 bool addProvider(const drf, Provider *provider, 195 194 ULONG itemCount = 1); 196 195 … … 246 245 { 247 246 public: 248 virtual const char *drf(const QString &mimeType) const = 0;247 virtual drf(const QString &mimeType) const = 0; 249 248 virtual bool provide(const QString &mimeType, ULONG itemIndex, 250 249 const QByteArray &itemData, … … 255 254 bool addExclusiveProvider(const QString &mimeType, Provider *provider); 256 255 257 static bool canRender(DRAGITEM *item, const char *drf );256 static bool canRender(DRAGITEM *item, const char *drf); 258 257 static bool getSupportedRMFs(DRAGITEM *item, QList<QByteArrayList> &list); 259 258 -
trunk/src/gui/kernel/qmime_pm.cpp
r461 r465 213 213 } 214 214 215 // -----------------------------------------------------------------------------215 //----------------------------------------------------------------------------- 216 216 217 217 struct QPMMime::DefaultDragWorker::Data … … 248 248 { 249 249 DrfProvider() : prov(0) {} 250 DrfProvider(const char *d, Provider *p) : drf(d), prov(p) {}250 DrfProvider(const d, Provider *p) : drf(d), prov(p) {} 251 251 QByteArray drf; 252 252 Provider *prov; … … 421 421 } 422 422 423 void QPMMime::DefaultDragWorker::defaultFileType( const char *&type,424 const char *&ext)423 void QPMMime::DefaultDragWorker::defaultFileType(&type, 424 &ext) 425 425 { 426 426 Q_ASSERT(d->providers.count()); … … 580 580 req->sharedMem = ptr; 581 581 DEBUG(() << "DefaultDragWorker: Created shared memory " 582 "object" << ptr);582 "object" << ptr); 583 583 #ifndef QT_NO_DEBUG 584 584 } else { … … 665 665 } 666 666 667 bool QPMMime::DefaultDragWorker::addProvider(const char *drf, Provider *provider,667 bool QPMMime::DefaultDragWorker::addProvider(const drf, Provider *provider, 668 668 ULONG itemCnt /* = 1 */) 669 669 { … … 671 671 d->cleanupRequests(); 672 672 673 Q_ASSERT( drf&& provider && itemCnt >= 1);674 if ( drf&& provider && itemCnt >= 1) {673 Q_ASSERT( && provider && itemCnt >= 1); 674 if ( && provider && itemCnt >= 1) { 675 675 if (d->providers.count() == 0) { 676 676 // first provider … … 828 828 return ret; 829 829 830 const char *drf = provider->drf(mimeType);831 Q_ASSERT( drf);832 if ( !drf)830 drf = provider->drf(mimeType); 831 Q_ASSERT(); 832 if () 833 833 return ret; 834 834 … … 849 849 850 850 HSTR rmfOS2File = 851 DrgAddStrHandle(QString().sprintf("<DRM_OS2FILE,%s>", drf).toLocal8Bit()); 851 DrgAddStrHandle(QString().sprintf("<DRM_OS2FILE,%s>", 852 drf.data()).toLocal8Bit()); 852 853 HSTR rmfSharedMem = 853 DrgAddStrHandle(QString().sprintf("<DRM_SHAREDMEM,%s>", drf).toLocal8Bit()); 854 DrgAddStrHandle(QString().sprintf("<DRM_SHAREDMEM,%s>", 855 drf.data()).toLocal8Bit()); 854 856 855 857 MRESULT mrc; … … 1815 1817 #endif // !QT_NO_DRAGANDDROP 1816 1818 1817 // //////////////////////////////////////////////////////////////////////////////1819 // 1818 1820 1819 1821 class QPMMimeText : public QPMMime … … 1873 1875 bool provide(const char *drf, const QByteArray &allData, 1874 1876 ULONG itemIndex, QByteArray &itemData); 1875 void fileType(const char *drf, const char *&type, const char *&ext);1877 void fileType(const char *drf, &ext); 1876 1878 }; 1877 1879 … … 1880 1882 public: 1881 1883 // Provider interface 1882 const char *drf(const QString &mimeType) const;1883 bool provide(const QString & format, ULONG itemIndex,1884 drf(const QString &mimeType) const; 1885 bool provide(const QString &, ULONG itemIndex, 1884 1886 const QByteArray &itemData, QByteArray &allData); 1885 1887 }; … … 2246 2248 } 2247 2249 2248 void QPMMimeText::TextDragProvider::fileType(const char *drf, const char *&type,2249 const char *&ext)2250 void QPMMimeText::TextDragProvider::fileType(const char *drf, 2251 &ext) 2250 2252 { 2251 2253 if (qstrcmp(drf, "DRF_TEXT") == 0) { 2252 2254 if (exclusive) { 2253 type = "UniformResourceLocator";2255 type = ; 2254 2256 // no extension for URLs 2257 2255 2258 } else { 2256 type = DRT_TEXT;2257 ext = "txt";2259 type = ; 2260 ext = ; 2258 2261 } 2259 2262 } 2260 2263 }; 2261 2264 2262 const char *QPMMimeText::TextDropProvider::drf(const QString &mimeType) const2265 QPMMimeText::TextDropProvider::drf(const QString &mimeType) const 2263 2266 { 2264 2267 // sanity check 2265 2268 if (mimeType == QLatin1String("text/plain") || 2266 2269 mimeType == QLatin1String("text/uri-list")) 2267 return "DRF_TEXT";2270 return ; 2268 2271 return 0; 2269 2272 } … … 2400 2403 #endif // !QT_NO_DRAGANDDROP 2401 2404 2402 // //////////////////////////////////////////////////////////////////////////////2405 // 2403 2406 2404 2407 class QPMMimeImage : public QPMMime … … 2489 2492 } 2490 2493 2491 // //////////////////////////////////////////////////////////////////////////////2494 // 2492 2495 2493 2496 class QPMMimeAnyMime : public QPMMime … … 2507 2510 QVariant::Type preferredType) const; 2508 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2509 2545 private: 2510 2546 ULONG registerMimeType(const QString &mime) const; … … 2517 2553 static QString mimePrefix; 2518 2554 static QString customPrefix; 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2519 2568 }; 2520 2569 … … 2525 2574 2526 2575 QPMMimeAnyMime::QPMMimeAnyMime() 2576 2577 2578 2579 2527 2580 { 2528 2581 //MIME Media-Types … … 2637 2690 } 2638 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2639 2827 ULONG QPMMimeAnyMime::registerMimeType(const QString &mime) const 2640 2828 { … … 2689 2877 } 2690 2878 2691 //////////////////////////////////////////////////////////////////////////////// 2879 #if !defined(QT_NO_DRAGANDDROP) 2880 2881 // static 2882 ULONG QPMMimeAnyMime::drfToCf(const char *drf) 2883 { 2884 if (qstrncmp(drf, "CF_", 3) == 0) 2885 return QString(QLatin1String(drf + 3)).toULong(0, 16); 2886 return 0; 2887 } 2888 2889 // static 2890 QByteArray QPMMimeAnyMime::cfToDrf(ULONG cf) 2891 { 2892 return QString().sprintf("CF_%08lX", cf).toLatin1(); 2893 } 2894 2895 #endif // !QT_NO_DRAGANDDROP 2896 2897 //------------------------------------------------------------------------------ 2692 2898 2693 2899 QPMMimeList::QPMMimeList()
Note:
See TracChangeset
for help on using the changeset viewer.
