[CSE] Dedicated function for the subfolder menu

This commit is contained in:
Tomaz Canabrava 2017-10-31 11:03:24 +01:00
parent c7d9abbea3
commit 69dc099b17
2 changed files with 47 additions and 45 deletions

View file

@ -255,30 +255,20 @@ void AccountSettings::doExpand()
ui->_folderList->expandToDepth(0);
}
void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos)
void AccountSettings::slotSubfolderContextMenuRequested(const QModelIndex& index, const QPoint& pos)
{
QTreeView *tv = ui->_folderList;
QModelIndex index = tv->indexAt(pos);
if (!index.isValid()) {
return;
}
if (_model->classify(index) == FolderStatusModel::SubFolder) {
QTreeView *tv = ui->_folderList;
QMenu *menu = new QMenu(tv);
menu->setAttribute(Qt::WA_DeleteOnClose);
QAction *ac = menu->addAction(tr("Open folder"));
QMenu menu;
auto ac = menu.addAction(tr("Open folder"));
connect(ac, &QAction::triggered, this, &AccountSettings::slotOpenCurrentLocalSubFolder);
QString fileName = _model->data(index, FolderStatusDelegate::FolderPathRole).toString();
auto fileName = _model->data(index, FolderStatusDelegate::FolderPathRole).toString();
if (!QFile::exists(fileName)) {
ac->setEnabled(false);
}
auto fileId = _model->data(index, FolderStatusModel::FileIdRole).toByteArray();
if (accountsState()->account()->capabilities().clientSideEncryptionAvaliable()) {
ac = menu->addAction(tr("Encrypt"));
ac = menu.addAction(tr("Encrypt"));
connect(ac, &QAction::triggered, [this, &fileId](bool triggered) {
Q_UNUSED(triggered);
auto job = new OCC::SetEncryptionFlagApiJob(accountsState()->account(), QString(fileId));
@ -295,7 +285,7 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos)
job->start();
});
ac = menu->addAction(tr("Decrypt"));
ac = menu.addAction(tr("Decrypt"));
connect(ac, &QAction::triggered, [this, &fileId](bool triggered) {
Q_UNUSED(triggered);
auto job = new OCC::DeleteApiJob(accountsState()->account(),
@ -307,8 +297,19 @@ void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos)
});
}
menu->exec(QCursor::pos());
menu.exec(QCursor::pos());
}
void AccountSettings::slotCustomContextMenuRequested(const QPoint &pos)
{
QTreeView *tv = ui->_folderList;
QModelIndex index = tv->indexAt(pos);
if (!index.isValid()) {
return;
}
if (_model->classify(index) == FolderStatusModel::SubFolder) {
slotSubfolderContextMenuRequested(index, pos);
return;
}

View file

@ -85,6 +85,7 @@ protected slots:
void slotOpenAccountWizard();
void slotAccountAdded(AccountState *);
void refreshSelectiveSyncStatus();
void slotSubfolderContextMenuRequested(const QModelIndex& idx, const QPoint& point);
void slotCustomContextMenuRequested(const QPoint &);
void slotFolderListClicked(const QModelIndex &indx);
void doExpand();