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 }