void ItemTagsScriptable::tag() { const auto args = currentArguments(); auto tagName = args.value(0).toString(); if ( tagName.isEmpty() ) { tagName = askTagName( addTagText(), m_userTags ); if ( tagName.isEmpty() ) return; } if ( args.size() <= 1 ) { const auto dataValueList = call("selectedItemsData").toList(); QVariantList dataList; dataList.reserve( dataValueList.size() ); for (const auto &itemDataValue : dataValueList) { auto itemData = itemDataValue.toMap(); auto itemTags = ::tags(itemData); if ( addTag(tagName, &itemTags) ) itemData.insert( mimeTags, itemTags.join(",") ); dataList.append(itemData); } call( "setSelectedItemsData", QVariantList() << QVariant(dataList) ); } else { for ( int row : rows(args, 1) ) { auto itemTags = tags(row); if ( addTag(tagName, &itemTags) ) setTags(row, itemTags); } } }
QStringList ItemTagsScriptable::tags() { const auto args = currentArguments(); const auto rows = this->rows(args, 0); QStringList allTags; for (int row : rows) allTags << this->tags(row); return allTags; }
bool DBusCommand::triggerPrivate(int *state) { Q_UNUSED(state); QDBusMessage m = QDBusMessage::createMethodCall(m_serviceName, m_path, m_interface, m_method); QList<QVariant> args; foreach (QString arg, m_args) { // krazy:exclude=foreach int i=0; while ((arg.contains("%")) && (i < currentArguments().count())) { arg = arg.arg(currentArguments()[i++]); } //check for integers bool ok = true; int a = arg.toInt(&ok); if (ok) args.append(QVariant(a)); else args.append(arg); }
void ItemTagsScriptable::untag() { const auto args = currentArguments(); auto tagName = args.value(0).toString(); if ( args.size() <= 1 ) { const auto dataValueList = call("selectedItemsData").toList(); if ( tagName.isEmpty() ) { QStringList allTags; for (const auto &itemDataValue : dataValueList) { const auto itemData = itemDataValue.toMap(); allTags.append( ::tags(itemData) ); } tagName = askRemoveTagName(allTags); if ( allTags.isEmpty() ) return; } QVariantList dataList; dataList.reserve( dataValueList.size() ); for (const auto &itemDataValue : dataValueList) { auto itemData = itemDataValue.toMap(); auto itemTags = ::tags(itemData); if ( removeTag(tagName, &itemTags) ) itemData.insert( mimeTags, itemTags.join(",") ); dataList.append(itemData); } call( "setSelectedItemsData", QVariantList() << QVariant(dataList) ); } else { const auto rows = this->rows(args, 1); if ( tagName.isEmpty() ) { QStringList allTags; for (int row : rows) allTags.append( this->tags(row) ); tagName = askRemoveTagName(allTags); if ( allTags.isEmpty() ) return; } for (int row : rows) { auto itemTags = tags(row); if ( removeTag(tagName, &itemTags) ) setTags(row, itemTags); } } }
void ItemPinnedScriptable::unpin() { const auto args = currentArguments(); if (args.isEmpty()) { unpinData(); } else { for (const auto &arg : args) { bool ok; const int row = arg.toInt(&ok); if (ok) call("change", QVariantList() << row << mimePinned << QVariant()); } } }
bool ItemEncryptedScriptable::isEncrypted() { const auto args = currentArguments(); for (const auto &arg : args) { bool ok; const int row = arg.toInt(&ok); if (ok) { const auto result = call("read", QVariantList() << "?" << row); if ( result.toByteArray().contains(mimeEncryptedData) ) return true; } } return false; }
bool ItemTagsScriptable::hasTag() { const auto args = currentArguments(); const auto tagName = args.value(0).toString(); if ( args.size() <= 1 ) { const auto dataValueList = call("selectedItemsData").toList(); for (const auto &itemDataValue : dataValueList) { const auto itemData = itemDataValue.toMap(); const auto itemTags = ::tags(itemData); if ( itemTags.contains(tagName) ) return true; } return false; } const auto row = args.value(1).toInt(); return tags(row).contains(tagName); }
void ItemTagsScriptable::clearTags() { const auto args = currentArguments(); if ( args.isEmpty() ) { const auto dataValueList = call("selectedItemsData").toList(); QVariantList dataList; for (const auto &itemDataValue : dataValueList) { auto itemData = itemDataValue.toMap(); itemData.remove(mimeTags); dataList.append(itemData); } call( "setSelectedItemsData", QVariantList() << QVariant(dataList) ); } else { const auto rows = this->rows(args, 0); for (int row : rows) setTags(row, QStringList()); } }
QByteArray ItemEncryptedScriptable::decrypt() { const auto args = currentArguments(); const auto bytes = args.value(0).toByteArray(); return decrypt(bytes); }