void ExplorerTreeWidget::ui_renameCollection() { ExplorerCollectionTreeItem *collectionItem = selectedCollectionItem(); if (!collectionItem) return; MongoCollection *collection = collectionItem->collection(); MongoDatabase *database = collection->database(); MongoServer *server = database->server(); ConnectionSettings *settings = server->connectionRecord(); CreateDatabaseDialog dlg(settings->getFullAddress(), database->name(), collection->name()); dlg.setWindowTitle("Rename Collection"); dlg.setOkButtonText("&Rename"); dlg.setInputLabelText("New Collection Name:"); dlg.setInputText(collection->name()); int result = dlg.exec(); if (result == QDialog::Accepted) { database->renameCollection(collection->name(), dlg.databaseName()); // refresh list of collections database->loadCollections(); } }
void ExplorerTreeWidget::ui_addDocument() { ExplorerCollectionTreeItem *collectionItem = selectedCollectionItem(); if (!collectionItem) return; MongoCollection *collection = collectionItem->collection(); MongoDatabase *database = collection->database(); MongoServer *server = database->server(); ConnectionSettings *settings = server->connectionRecord(); DocumentTextEditor editor(settings->getFullAddress(), database->name(), collection->name(), "{\n \n}"); editor.setCursorPosition(1, 4); editor.setWindowTitle("Insert Document"); int result = editor.exec(); activateWindow(); if (result == QDialog::Accepted) { mongo::BSONObj obj = editor.bsonObj(); server->insertDocument(obj, database->name(), collection->name()); } /* openCurrentCollectionShell( "db.%1.insert({\n" " '' : '',\n" "})" , false, CursorPosition(1, 5)); */ }
void ExplorerCollectionTreeItem::ui_copyToCollectionToDiffrentServer() { MongoDatabase *databaseFrom = _collection->database(); MongoServer *server = databaseFrom->server(); ConnectionSettings *settings = server->connectionRecord(); CopyCollection dlg(QtUtils::toQString(settings->getFullAddress()), QtUtils::toQString(databaseFrom->name()), QtUtils::toQString(_collection->name()) ); int result = dlg.exec(); if (result == QDialog::Accepted) { MongoDatabase *databaseTo = dlg.selectedDatabase(); databaseTo->copyCollection(server, databaseFrom->name(), _collection->name()); databaseTo->loadCollections(); } }
void ExplorerCollectionTreeItem::ui_addDocument() { MongoDatabase *database = _collection->database(); MongoServer *server = database->server(); ConnectionSettings *settings = server->connectionRecord(); DocumentTextEditor editor(CollectionInfo(settings->getFullAddress(), database->name(), _collection->name()), "{\n \n}"); editor.setCursorPosition(1, 4); editor.setWindowTitle("Insert Document"); int result = editor.exec(); treeWidget()->activateWindow(); if (result == QDialog::Accepted) { server->insertDocuments(editor.bsonObj(), MongoNamespace(database->name(), _collection->name()) ); } }
void ExplorerCollectionTreeItem::ui_renameCollection() { MongoDatabase *database = _collection->database(); MongoServer *server = database->server(); ConnectionSettings *connSettings = server->connectionRecord(); CreateDatabaseDialog dlg(QtUtils::toQString(connSettings->getFullAddress()), QtUtils::toQString(database->name()), QtUtils::toQString(_collection->name()), treeWidget()); dlg.setWindowTitle("Rename Collection"); dlg.setOkButtonText("&Rename"); dlg.setInputLabelText("New Collection Name:"); dlg.setInputText(QtUtils::toQString(_collection->name())); int result = dlg.exec(); if (result == QDialog::Accepted) { database->renameCollection(_collection->name(), QtUtils::toStdString(dlg.databaseName())); } }
void MainWindow::handle(ConnectionFailedEvent *event) { ConnectionSettings *connection = event->server->connectionRecord(); QString message = QString("Cannot connect to MongoDB (%1),\nerror: %2").arg(QtUtils::toQString(connection->getFullAddress())).arg(QtUtils::toQString(event->error().errorMessage())); QMessageBox::information(this, "Error", message); }
void MainWindow::connectToServer(QAction *connectionAction) { QVariant data = connectionAction->data(); ConnectionSettings *ptr = data.value<ConnectionSettings *>(); try { _app->openServer(ptr, true); } catch(const std::exception &) { QString message = QString("Cannot connect to MongoDB (%1)").arg(QtUtils::toQString(ptr->getFullAddress())); QMessageBox::information(this, "Error", message); } }
void MainWindow::manageConnections() { ConnectionsDialog dialog(AppRegistry::instance().settingsManager(), this); int result = dialog.exec(); // save settings and update connection menu AppRegistry::instance().settingsManager()->save(); updateConnectionsMenu(); if (result == QDialog::Accepted) { ConnectionSettings *selected = dialog.selectedConnection(); try { _app->openServer(selected, true); } catch(const std::exception &) { QString message = QString("Cannot connect to MongoDB (%1)").arg(QtUtils::toQString(selected->getFullAddress())); QMessageBox::information(this, "Error", message); } } // on linux focus is lost - we need to activate main window back activateWindow(); }