{
}
-void ShareeModel::fetch(const QString &search, const ShareeSet &blacklist)
+void ShareeModel::fetch(const QString &search, const ShareeSet &blacklist, LookupMode lookupMode)
{
_search = search;
_shareeBlacklist = blacklist;
auto *job = new OcsShareeJob(_account);
connect(job, &OcsShareeJob::shareeJobFinished, this, &ShareeModel::shareesFetched);
connect(job, &OcsJob::ocsError, this, &ShareeModel::displayErrorMessage);
- job->getSharees(_search, _type, 1, 50);
+ job->getSharees(_search, _type, 1, 50, lookupMode == GlobalSearch ? true : false);
}
void ShareeModel::shareesFetched(const QJsonDocument &reply)
#include "capabilities.h"
#include "guiutility.h"
#include "thumbnailjob.h"
-#include "sharee.h"
#include "sharemanager.h"
#include "theme.h"
_completer->setCompletionMode(QCompleter::UnfilteredPopupCompletion);
_ui->shareeLineEdit->setCompleter(_completer);
+ auto searchGloballyAction = new QAction(_ui->shareeLineEdit);
+ searchGloballyAction->setIcon(QIcon(":/client/theme/magnifying-glass.svg"));
+ searchGloballyAction->setToolTip(tr("Search globally"));
+
+ connect(searchGloballyAction, &QAction::triggered, this, [this]() {
+ searchForSharees(ShareeModel::GlobalSearch);
+ });
+
+ _ui->shareeLineEdit->addAction(searchGloballyAction, QLineEdit::LeadingPosition);
+
_manager = new ShareManager(_account, this);
connect(_manager, &ShareManager::sharesFetched, this, &ShareUserGroupWidget::slotSharesFetched);
connect(_manager, &ShareManager::shareCreated, this, &ShareUserGroupWidget::getShares);
connect(_ui->shareeLineEdit, &QLineEdit::textEdited,
this, &ShareUserGroupWidget::slotLineEditTextEdited, Qt::QueuedConnection);
_ui->shareeLineEdit->installEventFilter(this);
- connect(&_completionTimer, &QTimer::timeout, this, &ShareUserGroupWidget::searchForSharees);
+ connect(&_completionTimer, &QTimer::timeout, this, [this]() {
+ searchForSharees(ShareeModel::LocalSearch);
+ });
_completionTimer.setSingleShot(true);
_completionTimer.setInterval(600);
_completionTimer.start();
}
-
-void ShareUserGroupWidget::searchForSharees()
+void ShareUserGroupWidget::searchForSharees(ShareeModel::LookupMode lookupMode)
{
+ if (_ui->shareeLineEdit->text().isEmpty()) {
+ return;
+ }
+
+ _ui->shareeLineEdit->setEnabled(false);
_completionTimer.stop();
_pi_sharee.startAnimation();
ShareeModel::ShareeSet blacklist;
blacklist << sw->share()->getShareWith();
}
_ui->errorLabel->hide();
- _completerModel->fetch(_ui->shareeLineEdit->text(), blacklist);
+ _completerModel->fetch(_ui->shareeLineEdit->text(), blacklist, lookupMode);
}
void ShareUserGroupWidget::getShares()
scrollArea->setWidget(newViewPort);
_disableCompleterActivated = false;
- _ui->shareeLineEdit->setEnabled(true);
+ activateShareeLineEdit();
}
void ShareUserGroupWidget::slotAdjustScrollWidgetSize()
void ShareUserGroupWidget::slotShareesReady()
{
+ activateShareeLineEdit();
+
_pi_sharee.stopAnimation();
if (_completerModel->rowCount() == 0) {
displayError(0, tr("No results for '%1'").arg(_completerModel->currentSearch()));
- return;
}
+
+ // if no rows are present in the model - complete() will hide the completer
_completer->complete();
}
qCWarning(lcSharing) << "Sharing error from server" << code << message;
_ui->errorLabel->setText(message);
_ui->errorLabel->show();
- _ui->shareeLineEdit->setEnabled(true);
+ activateShareeLineEdit();
}
void ShareUserGroupWidget::slotPrivateLinkOpenBrowser()
}
}
+void ShareUserGroupWidget::activateShareeLineEdit()
+{
+ _ui->shareeLineEdit->setEnabled(true);
+ _ui->shareeLineEdit->setFocus();
+}
+
ShareUserLine::ShareUserLine(QSharedPointer<Share> share,
SharePermissions maxSharingPermissions,
bool isFile,
#include "accountfwd.h"
#include "sharepermissions.h"
+#include "sharee.h"
#include "QProgressIndicator.h"
#include <QDialog>
#include <QWidget>
class AbstractCredentials;
class SyncResult;
class Share;
-class Sharee;
class ShareManager;
-class ShareeModel;
/**
* @brief The ShareDialog (user/group) class
void slotSharesFetched(const QList<QSharedPointer<Share>> &shares);
void on_shareeLineEdit_textChanged(const QString &text);
- void searchForSharees();
+ void searchForSharees(ShareeModel::LookupMode lookupMode);
void slotLineEditTextEdited(const QString &text);
void slotLineEditReturn();
private:
void customizeStyle();
+ void activateShareeLineEdit();
+
Ui::ShareUserGroupWidget *_ui;
QScrollArea *_parentScrollArea;
AccountPtr _account;