void JsonBookmarksImportPage::HandleAccepted () { const auto& filePath = Ui_.Path_->text (); QFile file { filePath }; if (!file.open (QIODevice::ReadOnly)) { qWarning () << Q_FUNC_INFO << "unable to open file" << filePath << file.errorString (); QMessageBox::critical (this, "LeechCraft", tr ("Unable to open file %1: %2.") .arg (filePath) .arg (file.errorString ())); return; } const auto& map = Util::ParseJson (&file, Q_FUNC_INFO).toMap (); const auto& roots = map.value ("roots").toMap (); const auto& bms = FixTags (CollectBookmarks (roots, {})); auto entity = Util::MakeEntity ({}, {}, FromUserInitiated, "x-leechcraft/browser-import-data"); entity.Additional_ ["BrowserBookmarks"] = Util::Map (bms, [] (const Bookmark& bm) -> QVariant { return QVariantMap { { "Title", bm.Title_ }, { "URL", bm.URL_ }, { "Tags", bm.Tags_ } }; }); SendEntity (entity); }
void KTorrentImportPage::handleAccepted () { QString filename = Ui_.FileLocation_->text (); if (!CheckValidity (filename)) return; Entity e = Util::MakeEntity (QUrl::fromLocalFile (filename), QString (), FromUserInitiated, "x-leechcraft/bittorrent-import"); if (Ui_.ImportSettings_->checkState () == Qt::Checked) { QSettings settings (filename, QSettings::IniFormat); if (settings.status () == QSettings::NoError) { QMap<QString, QVariant> additional; settings.beginGroup ("downloads"); if (settings.contains ("completedDir")) additional ["CompletedDir"] = settings.value ("completedDir"); if (settings.contains ("dhtPort")) additional ["DHTPort"] = settings.value ("dhtPort"); if (settings.contains ("dhtSupport")) additional ["DHTSupport"] = settings.value ("dhtSupport"); if (settings.contains ("lastSaveDir")) additional ["LastSaveDir"] = settings.value ("lastSaveDir"); if (settings.contains ("oldTorrentsImported")) additional ["OldTorrentsImported"] = settings.value ("oldTorrentsImported"); if (settings.contains ("saveDir")) additional ["SaveDir"] = settings.value ("saveDir"); if (settings.contains ("TempDir")) { additional ["TempDir"] = settings.value ("TempDir"); QDir tempDir (settings.value ("TempDir").toString ()); if (tempDir.exists () && tempDir.isReadable ()) { QFileInfoList torrentsDir = tempDir.entryInfoList (QStringList ("tor"), QDir::Dirs | QDir::Readable, QDir::Unsorted); QList<QVariant> list; for (int i = 0; i < torrentsDir.size (); ++i) { QMap<QString, QVariant> map; GetTorrentSettings (torrentsDir.at (i).absoluteFilePath (), map); list << map; } additional ["BitTorrentImportTorrents"] = list; } } else { additional ["TempDir"] = "~/.kde/share/apps/ktorrent"; // TODO later } if (settings.contains ("TorrentCopyDir")) additional ["TorrentCopyDir"] = settings.value ("torrentCopyDir"); settings.endGroup (); e.Additional_ ["BitTorrent/SettingsImportData"] = additional; e.Additional_ ["UserVisibleName"] = tr ("KTorrent settings"); } else QMessageBox::critical (this, "LeechCraft", tr ("Could not access or parse KTorrent settings.")); } SendEntity (e); }