Beispiel #1
0
	void UpManager::handleError (const QString& str, const QString& path)
	{
		qWarning () << Q_FUNC_INFO << str << path;

		RemovePending (path);

		auto plugin = GetSenderPlugin ();
		const Entity& e = Util::MakeNotification (plugin->GetStorageName (),
				tr ("Failed to upload %1: %2.")
					.arg (path)
					.arg (str),
				PWarning_);
		Proxy_->GetEntityManager ()->HandleEntity (e);
	}
Beispiel #2
0
	void UpManager::handleGotURL (const QUrl& url, const QString& path)
	{
		const QString& urlStr = url.toString ();
		qApp->clipboard ()->setText (urlStr, QClipboard::Clipboard);
		qApp->clipboard ()->setText (urlStr, QClipboard::Selection);

		RemovePending (path);

		auto plugin = GetSenderPlugin ();
		const Entity& e = Util::MakeNotification (plugin->GetStorageName (),
				tr ("%1 is successfully uploaded, URL is pasted into clipboard.")
					.arg (QFileInfo (path).fileName ()),
				PInfo_);
		emit gotEntity (e);
	}
Beispiel #3
0
	void UpManager::handleUploadRequest (IStorageAccount *acc, const QString& path)
	{
		if (!Uploads_.contains (acc))
		{
			QObject *accObj = acc->GetObject ();
			connect (accObj,
					SIGNAL (gotURL (QUrl, QString)),
					this,
					SLOT (handleGotURL (QUrl, QString)));
			connect (accObj,
					SIGNAL (upError (QString, QString)),
					this,
					SLOT (handleError (QString, QString)));
			connect (accObj,
					SIGNAL (upStatusChanged (QString, QString)),
					this,
					SLOT (handleUpStatusChanged (QString, QString)));
			connect (accObj,
					SIGNAL (upProgress (quint64, quint64, QString)),
					this,
					SLOT (handleUpProgress (quint64, quint64, QString)));
		}
		else if (Uploads_ [acc].contains (path))
		{
			const Entity& e = Util::MakeNotification ("NetStoreManager",
					tr ("%1 is already uploading to %2.")
						.arg (QFileInfo (path).fileName ())
						.arg (acc->GetAccountName ()),
					PWarning_);
			emit gotEntity (e);
			return;
		}

		acc->Upload (path);

		auto plugin = qobject_cast<IStoragePlugin*> (acc->GetParentPlugin ());

		QList<QStandardItem*> row;
		row << new QStandardItem (tr ("Uploading %1 to %2...")
					.arg (QFileInfo (path).fileName ())
					.arg (plugin->GetStorageName ()));
		row << new QStandardItem ();
		row << new QStandardItem (tr ("Initializing..."));
		ReprModel_->appendRow (row);

		ReprItems_ [acc] [path] = row;
	}
Beispiel #4
0
	void SyncWidget::RestoreData ()
	{
		const auto& infos = XmlSettingsManager::Instance ().property ("Synchronization").value<QList<SyncerInfo>> ();
		for (const auto& info : infos)
		{
			auto isa = AM_->GetAccountFromUniqueID (info.AccountId_);
			if (!isa)
			{
				qWarning () << Q_FUNC_INFO
						<< "there is no account with ID"
						<< info.AccountId_;
				continue;
			}
			auto isp = qobject_cast<IStoragePlugin*> (isa->GetParentPlugin ());
			if (!isp)
				continue;

			QStandardItem *accItem = new QStandardItem;
			accItem->setData (isp->GetStorageName () + ": " + isa->GetAccountName (),
					Qt::EditRole);
			accItem->setData (info.AccountId_, SyncItemDelegate::AccountId);
			QStandardItem *localDirItem = new QStandardItem;
			localDirItem->setData (info.LocalDirectory_, Qt::EditRole);
			QStandardItem *remoteDirItem = new QStandardItem;
			remoteDirItem->setData (info.RemoteDirectory_, Qt::EditRole);
			Model_->appendRow ({ accItem, localDirItem, remoteDirItem });

			Ui_.SyncView_->openPersistentEditor (Model_->indexFromItem (accItem));
			Ui_.SyncView_->resizeColumnToContents (SyncItemDelegate::Account);
		}

		RemoveInvalidRows ();
		RemoveDuplicateRows ();

		emit directoriesToSyncUpdated (GetInfos ());
	}