void Tools::share_link(QString linktoshare){ // thanks matyjas for example on — https://github.com/matyjas/share-bear/ QString title = "Imgrup"; QString desc = "uploaded to imgur with N9"; MDataUri duri; duri.setMimeType ("text/x-url"); duri.setTextData (linktoshare); duri.setAttribute ("title", title); duri.setAttribute ("description", desc); if (duri.isValid() == false) { qCritical() << "Invalid URI"; return; } QStringList link; link << duri.toString(); ShareUiInterface shareIf("com.nokia.ShareUi"); shareIf.share(link); }
void ShareCommand::share () { QString link = "http://forum.nokia.com"; QString title = "Forum Nokia"; QString desc = "Support for Nokia Developers"; /* qDebug() << "Make data URI from" << link << title << desc; */ MDataUri duri; duri.setMimeType ("text/x-url"); duri.setTextData (link); duri.setAttribute ("title", title); duri.setAttribute ("description", desc); if (duri.isValid() == false) { qCritical() << "Invalid URI"; return; } QStringList items; items << duri.toString(); //qDebug() << "URI:" << items.join (" "); // Create a interface object ShareUiInterface shareIf("com.nokia.ShareUi"); // Check if interface is valid if (shareIf.isValid()) { // Start ShareUI application with selected files. //qDebug() << "Signalling share-ui daemon..."; shareIf.share (items); } else { qCritical() << "Invalid interface"; return; } }
void FileHandler::startShareUi() { QStringList itemList; QString fileUri = "file://" + m_path; qDebug() << "Share file path uri" << fileUri; itemList << fileUri; // Create a interface object qDebug() << "Connecting to service" << SHAREUI_DBUS_SERVICE; ShareUiIf shareIf(SHAREUI_DBUS_SERVICE, "/", QDBusConnection::sessionBus()); // You can check if interface is valid // if (shareIf.isValid()) { // Start ShareUI application with selected files. qDebug() << "Signalling share-ui daemon..."; shareIf.share (itemList); // } else { // qCritical() << "Invalid interface"; // } }
int main(int argc, char **argv) { // Create a QStringlist where file uri will be stored QStringList itemList; // Append the file uris to the list (files need to indexed by Tracker) // If application is reading files from Tracker then Tracker's "file ID // URIs" should be used instead. These are URIs of files entry in Tracker // database. In this example simple file path URI is used to keep code // simple. bool help = false; for(int i = 1; i < argc; ++i) { const QString arg = argv[i]; if (arg == "--help" || arg == "-h") { help = true; break; } if(arg.startsWith("-")) { // This is probably some kind of option, like -software. Ignore. qDebug() << "Ignoring option" << arg; continue; } if (arg.startsWith ("data:") == true) { qDebug() << "Share data URI" << arg; itemList << arg; } else { QFileInfo fileInfo (arg); QString fileUri = fileInfo.canonicalFilePath(); if (fileUri.isEmpty ()) { qDebug() << "Share Tracker IRI (?)" << arg; itemList << arg; } else { fileUri.prepend("file://"); qDebug() << "Share file path uri" << fileUri; itemList << fileUri; } } } if (help || itemList.isEmpty()) { std::cout << "Usage: " << argv[0] << " { <data-uri> | <tracker-iri> | <file-uri> }+ " << std::endl; exit(0); } // Create a interface object qDebug() << "Connecting to service" << SHAREUI_DBUS_SERVICE; ShareUiInterface shareIf(SHAREUI_DBUS_SERVICE, "/", QDBusConnection::sessionBus()); // You can check if interface is valid if (shareIf.isValid()) { // Start ShareUI application with selected files. qDebug() << "Signalling share-ui daemon..."; shareIf.share (itemList); } else { qCritical() << "Invalid interface"; return -1; } }