MCPcopy Create free account
hub / github.com/IJHack/QtPass / showContextMenu

Method showContextMenu

src/mainwindow.cpp:1169–1224  ·  view source on GitHub ↗

* @brief MainWindow::showContextMenu show us the (file or folder) context * menu * @param pos */

Source from the content-addressed store, hash-verified

1167 * @param pos
1168 */
1169void MainWindow::showContextMenu(const QPoint &pos) {
1170 QModelIndex index = ui->treeView->indexAt(pos);
1171 bool selected = true;
1172 if (!index.isValid()) {
1173 ui->treeView->clearSelection();
1174 ui->actionDelete->setEnabled(false);
1175 ui->actionEdit->setEnabled(false);
1176 currentDir = "";
1177 selected = false;
1178 }
1179
1180 ui->treeView->setCurrentIndex(index);
1181
1182 QPoint globalPos = ui->treeView->viewport()->mapToGlobal(pos);
1183
1184 QFileInfo fileOrFolder =
1185 model.fileInfo(proxyModel.mapToSource(ui->treeView->currentIndex()));
1186
1187 QMenu contextMenu;
1188 if (!selected || fileOrFolder.isDir()) {
1189 QAction *openFolder =
1190 contextMenu.addAction(tr("Open folder with file manager"));
1191 QAction *addFolder = contextMenu.addAction(tr("Add folder"));
1192 QAction *addPassword = contextMenu.addAction(tr("Add password"));
1193 QAction *users = contextMenu.addAction(tr("Users"));
1194 connect(openFolder, &QAction::triggered, this, &MainWindow::openFolder);
1195 connect(addFolder, &QAction::triggered, this, &MainWindow::addFolder);
1196 connect(addPassword, &QAction::triggered, this, &MainWindow::addPassword);
1197 connect(users, &QAction::triggered, this, &MainWindow::onUsers);
1198 } else if (fileOrFolder.isFile()) {
1199 QAction *edit = contextMenu.addAction(tr("Edit"));
1200 connect(edit, &QAction::triggered, this, &MainWindow::onEdit);
1201 }
1202 if (selected) {
1203 contextMenu.addSeparator();
1204 if (fileOrFolder.isDir()) {
1205 QAction *renameFolder = contextMenu.addAction(tr("Rename folder"));
1206 connect(renameFolder, &QAction::triggered, this,
1207 &MainWindow::renameFolder);
1208 } else if (fileOrFolder.isFile()) {
1209 QAction *renamePassword = contextMenu.addAction(tr("Rename password"));
1210 connect(renamePassword, &QAction::triggered, this,
1211 &MainWindow::renamePassword);
1212 }
1213 QAction *deleteItem = contextMenu.addAction(tr("Delete"));
1214 connect(deleteItem, &QAction::triggered, this, &MainWindow::onDelete);
1215 if (fileOrFolder.isDir()) {
1216 QString dirPath = QDir::cleanPath(
1217 Util::getDir(ui->treeView->currentIndex(), false, model, proxyModel));
1218 QAction *reencrypt = contextMenu.addAction(tr("Re-encrypt"));
1219 connect(reencrypt, &QAction::triggered, this,
1220 [this, dirPath]() { reencryptPath(dirPath); });
1221 }
1222 }
1223 contextMenu.exec(globalPos);
1224}
1225
1226/**

Callers

nothing calls this directly

Calls 1

isValidMethod · 0.80

Tested by

no test coverage detected