void MainWindow::updateConnectionsMenu() { _connectionsMenu->clear(); int number = 1; // Populate list with connections SettingsManager::ConnectionSettingsContainerType connections = AppRegistry::instance().settingsManager()->connections(); for(SettingsManager::ConnectionSettingsContainerType::const_iterator it = connections.begin(); it!= connections.end(); ++it) { ConnectionSettings *connection = *it; QAction *action = new QAction(QtUtils::toQString(connection->getReadableName()), this); action->setData(QVariant::fromValue(connection)); if (number <= 9 && !AppRegistry::instance().settingsManager()->disableConnectionShortcuts()) { action->setShortcut(QKeySequence(QString("Alt+").append(QString::number(number)))); } _connectionsMenu->addAction(action); ++number; } if (AppRegistry::instance().settingsManager()->connections().size() > 0) _connectionsMenu->addSeparator(); // Connect action QAction *connectAction = new QAction("&Manage Connections...", this); connectAction->setIcon(GuiRegistry::instance().connectIcon()); connectAction->setToolTip("Connect to MongoDB"); VERIFY(connect(connectAction, SIGNAL(triggered()), this, SLOT(manageConnections()))); _connectionsMenu->addAction(connectAction); }
/** * @brief Initiate 'remove' action, usually when user clicked on Remove button */ void ConnectionsDialog::remove() { ConnectionListWidgetItem *currentItem = (ConnectionListWidgetItem *)_listWidget->currentItem(); // Do nothing if no item selected if (currentItem == 0) return; ConnectionSettings *connectionModel = currentItem->connection(); // Ask user int answer = QMessageBox::question(this, "Connections", QString("Really delete \"%1\" connection?").arg(QtUtils::toQString(connectionModel->getReadableName())), QMessageBox::Yes, QMessageBox::No, QMessageBox::NoButton); if (answer != QMessageBox::Yes) return; _settingsManager->removeConnection(connectionModel); }