void SearchEnginesDialog::accept() { if (ui->treeWidget->topLevelItemCount() < 1) { return; } QVector<SearchEngine> allEngines; for (int i = 0; i < ui->treeWidget->topLevelItemCount(); i++) { QTreeWidgetItem* item = ui->treeWidget->topLevelItem(i); if (!item) { continue; } SearchEngine engine = getEngine(item); allEngines.append(engine); if (isDefaultEngine(item)) { m_manager->setDefaultEngine(engine); } } m_manager->setAllEngines(allEngines); QDialog::accept(); }
void SearchEnginesDialog::editEngine() { QTreeWidgetItem* item = ui->treeWidget->currentItem(); if (!item) { return; } SearchEngine engine = getEngine(item); EditSearchEngine dialog(tr("Edit Search Engine"), this); dialog.setName(engine.name); dialog.setUrl(engine.url); dialog.setShortcut(engine.shortcut); dialog.setIcon(engine.icon); if (dialog.exec() != QDialog::Accepted) { return; } engine.name = dialog.name(); engine.url = dialog.url(); engine.shortcut = dialog.shortcut(); engine.icon = dialog.icon(); if (engine.name.isEmpty() || engine.url.isEmpty()) { return; } setEngine(item, engine); changeItemToDefault(item, isDefaultEngine(item)); item->setIcon(0, engine.icon); item->setText(1, engine.shortcut); }
void SearchEnginesDialog::removeEngine() { QTreeWidgetItem* item = ui->treeWidget->currentItem(); if (!item || ui->treeWidget->topLevelItemCount() == 1) { return; } if (isDefaultEngine(item)) { SearchEngine en = getEngine(item); QMessageBox::warning(this, tr("Remove Engine"), tr("You can't remove the default search engine.<br>" "Set a different engine as default before removing %1.").arg(en.name)); } else { delete item; } }
void SearchEnginesDialog::setDefaultEngine() { QTreeWidgetItem* item = ui->treeWidget->currentItem(); if (!item) { return; } for (int j = 0; j < ui->treeWidget->topLevelItemCount(); ++j) { QTreeWidgetItem* i = ui->treeWidget->topLevelItem(j); if (isDefaultEngine(i)) { if (i == item) { return; } changeItemToDefault(i, false); break; } } changeItemToDefault(item, true); }