Ejemplo n.º 1
0
	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);
	}
Ejemplo n.º 2
0
	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);
	}