Added copy and paste to edit textboxes

This commit is contained in:
Jordan Sherer 2018-09-06 17:44:47 -04:00
parent 6725df3d26
commit f6c59d33bd
2 changed files with 43 additions and 4 deletions

View File

@ -1049,15 +1049,24 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
// setup tablewidget context menus
auto clearAction1 = new QAction(QIcon::fromTheme("edit-clear"), QString("Clear"), ui->textEditRX);
connect(clearAction1, &QAction::triggered, this, [this](){ this->on_clearAction_triggered(ui->textEditRX); });
ui->textEditRX->setContextMenuPolicy(Qt::ActionsContextMenu);
ui->textEditRX->addAction(clearAction1);
ui->textEditRX->addAction(clearActionAll);
ui->textEditRX->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->textEditRX, &QTableWidget::customContextMenuRequested, this, [this, clearAction1, clearActionAll](QPoint const &point){
QMenu * menu = new QMenu(ui->textEditRX);
buildEditMenu(ui->textEditRX, menu);
menu->addSeparator();
menu->addAction(clearAction1);
menu->addAction(clearActionAll);
menu->popup(ui->textEditRX->mapToGlobal(point));
});
auto clearAction2 = new QAction(QIcon::fromTheme("edit-clear"), QString("Clear"), ui->extFreeTextMsgEdit);
connect(clearAction2, &QAction::triggered, this, [this](){ this->on_clearAction_triggered(ui->extFreeTextMsgEdit); });
ui->extFreeTextMsgEdit->setContextMenuPolicy(Qt::ActionsContextMenu);
auto restoreAction = new QAction(QString("Restore Previous Message"), ui->extFreeTextMsgEdit);
connect(restoreAction, &QAction::triggered, this, [this](){ this->restoreMessage(); });
@ -1066,6 +1075,10 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
connect(ui->extFreeTextMsgEdit, &QTableWidget::customContextMenuRequested, this, [this, clearAction2, clearActionAll, restoreAction](QPoint const &point){
QMenu * menu = new QMenu(ui->extFreeTextMsgEdit);
buildEditMenu(ui->extFreeTextMsgEdit, menu);
menu->addSeparator();
restoreAction->setDisabled(m_lastTxMessage.isEmpty());
menu->addAction(restoreAction);
@ -7738,6 +7751,31 @@ void MainWindow::buildQueryMenu(QMenu * menu, QString call){
});
}
void MainWindow::buildEditMenu(QTextEdit *edit, QMenu *menu){
bool hasSelection = !edit->textCursor().selectedText().isEmpty();
auto cut = menu->addAction("Cu&t");
cut->setEnabled(hasSelection && !edit->isReadOnly());
connect(edit, &QTextEdit::copyAvailable, this, [this, edit, cut](bool copyAvailable){
cut->setEnabled(copyAvailable && !edit->isReadOnly());
});
connect(cut, &QAction::triggered, this, [this, edit](){
edit->copy();
edit->textCursor().removeSelectedText();
});
auto copy = menu->addAction("&Copy");
copy->setEnabled(hasSelection);
connect(edit, &QTextEdit::copyAvailable, this, [this, copy](bool copyAvailable){
copy->setEnabled(copyAvailable);
});
connect(copy, &QAction::triggered, edit, &QTextEdit::copy);
auto paste = menu->addAction("&Paste");
paste->setEnabled(edit->canPaste());
connect(paste, &QAction::triggered, edit, &QTextEdit::paste);
}
void MainWindow::on_queryButton_pressed(){
QMenu *menu = ui->queryButton->menu();
if(!menu){

View File

@ -267,6 +267,7 @@ private slots:
void buildBandActivitySortByMenu(QMenu * menu);
void buildCallActivitySortByMenu(QMenu * menu);
void buildQueryMenu(QMenu *, QString callsign);
void buildEditMenu(QTextEdit *, QMenu *);
void on_queryButton_pressed();
void on_macrosMacroButton_pressed();
void on_tableWidgetRXAll_cellClicked(int row, int col);