void AccountsManager::RemoveAccount (const QModelIndex& index) { if (!index.isValid ()) return; QObject *accObj = index.sibling (index.row (), 0) .data (Roles::AccountObj).value<QObject*> (); auto acc = qobject_cast<IStorageAccount*> (accObj); auto plugin = qobject_cast<IStoragePlugin*> (acc->GetParentPlugin ()); plugin->RemoveAccount (accObj); }
void CSLPNodeLookupThread::AddResult( const char* newNodeName ) { DBGLOG( "CSLPNodeLookupThread::AddResult (%s)\n", newNodeName ); if ( strcmp( newNodeName, "DEFAULT" ) == 0 ) { if ( mFoundDefaultScope ) return; // ignore if we've already found this mFoundDefaultScope = true; } CFStringRef scopeString = CFStringCreateWithCString( NULL, newNodeName, NSLGetSystemEncoding() ); if ( scopeString ) { GetParentPlugin()->AddNode( scopeString ); CFRelease( scopeString ); } }
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 ()); }