QStandardItem *PromptOverwriteDialog::itemForFile(const QString &f) const { const int rowCount = m_model->rowCount(); for (int r = 0; r < rowCount; ++r) { QStandardItem *item = m_model->item(r, 0); if (fileNameOfItem(item) == f) return item; } return 0; }
QStringList PromptOverwriteDialog::files(Qt::CheckState cs) const { QStringList result; const int rowCount = m_model->rowCount(); for (int r = 0; r < rowCount; ++r) { const QStandardItem *item = m_model->item(r, 0); if (item->checkState() == cs) result.push_back(fileNameOfItem(item)); } return result; }
//! [16] void Window::contextMenu(const QPoint &pos) { const QTableWidgetItem *item = filesTable->itemAt(pos); if (!item) return; QMenu menu; #ifndef QT_NO_CLIPBOARD QAction *copyAction = menu.addAction("Copy Name"); #endif QAction *openAction = menu.addAction("Open"); QAction *action = menu.exec(filesTable->mapToGlobal(pos)); if (!action) return; const QString fileName = fileNameOfItem(item); if (action == openAction) openFile(fileName); #ifndef QT_NO_CLIPBOARD else if (action == copyAction) QGuiApplication::clipboard()->setText(QDir::toNativeSeparators(fileName)); #endif }
void Window::openFileOfItem(int row, int /* column */) { const QTableWidgetItem *item = filesTable->item(row, 0); openFile(fileNameOfItem(item)); }