コード例 #1
0
void GlobalSearchSettingsPage::UpdateLoggedInState(GlobalSearch* engine,
                                                   QTreeWidgetItem* item,
                                                   bool set_checked_state) {
  SearchProvider* provider =
      item->data(0, Qt::UserRole).value<SearchProvider*>();

  const bool enabled = engine->is_provider_enabled(provider);
  const bool logged_in = provider->IsLoggedIn();

  Qt::CheckState check_state =
      logged_in && enabled ? Qt::Checked : Qt::Unchecked;
  Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
  if (logged_in) flags |= Qt::ItemIsUserCheckable;

  if (set_checked_state) item->setData(0, Qt::CheckStateRole, check_state);
  item->setFlags(flags);

  if (logged_in) {
    item->setIcon(1, QIcon());
    item->setText(1, QString());
  } else {
    item->setIcon(1, warning_icon_);
    item->setText(1, tr("Not logged in") + "    ");
  }
}
コード例 #2
0
void GlobalSearchSettingsPage::ConfigureProvider() {
  QTreeWidgetItem* item = ui_->sources->currentItem();
  if (!item) return;

  SearchProvider* provider =
      item->data(0, Qt::UserRole).value<SearchProvider*>();
  provider->ShowConfig();
}
コード例 #3
0
void GlobalSearchSettingsPage::CurrentProviderChanged(QTreeWidgetItem* item) {
  if (!item) return;

  QTreeWidgetItem* root = ui_->sources->invisibleRootItem();
  SearchProvider* provider =
      item->data(0, Qt::UserRole).value<SearchProvider*>();
  const int row = root->indexOfChild(item);

  ui_->up->setEnabled(row != 0);
  ui_->down->setEnabled(row != root->childCount() - 1);
  ui_->configure->setEnabled(provider->can_show_config());
}
コード例 #4
0
bool GlobalSearch::SetProviderEnabled(const SearchProvider* const_provider,
                                      bool enabled) {
  SearchProvider* provider = const_cast<SearchProvider*>(const_provider);
  if (!providers_.contains(provider)) return true;

  if (providers_[provider].enabled_ != enabled) {
    // If we try to enable this provider but it is not logged in, don't change
    // state, and show configuration menu, if any
    if (enabled && !provider->IsLoggedIn()) {
      provider->ShowConfig();
      return false;
    } else {
      providers_[provider].enabled_ = enabled;
      emit ProviderToggled(provider, enabled);
      SaveProvidersSettings();
      return true;
    }
  }
  return true;
}