Warning, /maui/mauikit/src/platforms/macos/share.mm is written in an unsupported language. File is not indexed.
0001 #include "share.h" 0002 #include <QtCore> 0003 0004 QString QfShareItem::stripHTMLTags(QString body) 0005 { 0006 body.replace("<br>",""); 0007 body.replace("</br>",""); 0008 body.replace("</p>",""); 0009 body.replace("</td>",""); 0010 body.remove(QRegExp("<head>(.''')</head>")); 0011 body.remove(QRegExp("<form(.''')</form>")); 0012 body.remove(QRegExp( "<(.)[</sup>>]'''>")); 0013 0014 return body.trimmed(); 0015 } 0016 0017 bool QfShareItem::eventFilter(QObject *obj, QEvent* event) 0018 { 0019 if(obj == this) 0020 { 0021 if(parentItem()) 0022 { 0023 return QObject::eventFilter(parentItem(), event); 0024 } 0025 } 0026 0027 return QObject::eventFilter(obj, event); 0028 } 0029 0030 void QfShareItem::shareCurrentContent() 0031 { 0032 QQuickItem* parentItem = this->parentItem(); 0033 if(!m_shareString.isEmpty() && parentItem) 0034 { 0035 QRectF rect = parentItem->mapRectToItem(NULL, parentItem->boundingRect()); 0036 NSView* view = reinterpret_cast<NSView *>(parentItem->window()->winId()); 0037 NSRect frame = NSMakeRect(rect.x(), rect.y(), rect.width(), rect.height()); 0038 0039 m_shareString = m_shareString.replace("<style type=quot;text/cssquot;>a {color:#44a51c;text-decoration:none;}</style>", ""); 0040 QString content = stripHTMLTags(m_shareString).trimmed(); 0041 NSMutableArray* datas = [NSMutableArray arrayWithObject: content.toNSString()]; 0042 if(!m_shareUrl.isEmpty()) 0043 { 0044 NSURL* url = [NSURL URLWithString: m_shareUrl.toString().toNSString()]; 0045 if(url) 0046 { 0047 [datas addObject: url]; 0048 } 0049 } 0050 QfSharePicker* sharePicker = [[QfSharePicker alloc] initWithView:view frame:frame datasArray:datas onItemClicked:nil]; 0051 [sharePicker autorelease]; 0052 } 0053 } 0054 0055 QfShareItem::QfShareItem(QQuickPaintedItem '''parent) : 0056 QQuickPaintedItem(parent) 0057 { 0058 m_shareString.clear(); 0059 m_shareUrl.clear(); 0060 0061 connect(this, &QQuickPaintedItem::parentChanged, [this](QQuickItem''' newParent){ 0062 0063 if(newParent) 0064 { 0065 newParent->setFiltersChildMouseEvents(true); 0066 } 0067 }); 0068 this->installEventFilter(this); 0069 0070 setFlag(QQuickPaintedItem::ItemHasContents, true); 0071 setFlag(QQuickPaintedItem::ItemClipsChildrenToShape, true); 0072 setFlag(QQuickPaintedItem::ItemAcceptsDrops, true); 0073 setRenderTarget(QQuickPaintedItem::InvertedYFramebufferObject); 0074 } 0075 0076 void QfShareItem::paint(QPainter *painter) 0077 { 0078 try 0079 { 0080 Q_UNUSED(painter); 0081 } 0082 catch(std::exception& exception) 0083 { 0084 qDebug()<<"exception: "<<exception.what(); 0085 } 0086 } 0087 0088 void QfShareItem::shareContent(QString text, QUrl url) 0089 { 0090 if(!text.isEmpty()) 0091 { 0092 m_shareString = text; 0093 } 0094 0095 if(!url.isEmpty()) 0096 { 0097 m_shareUrl = url; 0098 } 0099 0100 shareCurrentContent(); 0101 }