Added copy and paste to edit textboxes
This commit is contained in:
parent
6725df3d26
commit
f6c59d33bd
@ -1049,15 +1049,24 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
// setup tablewidget context menus
|
// setup tablewidget context menus
|
||||||
auto clearAction1 = new QAction(QIcon::fromTheme("edit-clear"), QString("Clear"), ui->textEditRX);
|
auto clearAction1 = new QAction(QIcon::fromTheme("edit-clear"), QString("Clear"), ui->textEditRX);
|
||||||
connect(clearAction1, &QAction::triggered, this, [this](){ this->on_clearAction_triggered(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);
|
auto clearAction2 = new QAction(QIcon::fromTheme("edit-clear"), QString("Clear"), ui->extFreeTextMsgEdit);
|
||||||
connect(clearAction2, &QAction::triggered, this, [this](){ this->on_clearAction_triggered(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);
|
auto restoreAction = new QAction(QString("Restore Previous Message"), ui->extFreeTextMsgEdit);
|
||||||
connect(restoreAction, &QAction::triggered, this, [this](){ this->restoreMessage(); });
|
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){
|
connect(ui->extFreeTextMsgEdit, &QTableWidget::customContextMenuRequested, this, [this, clearAction2, clearActionAll, restoreAction](QPoint const &point){
|
||||||
QMenu * menu = new QMenu(ui->extFreeTextMsgEdit);
|
QMenu * menu = new QMenu(ui->extFreeTextMsgEdit);
|
||||||
|
|
||||||
|
buildEditMenu(ui->extFreeTextMsgEdit, menu);
|
||||||
|
|
||||||
|
menu->addSeparator();
|
||||||
|
|
||||||
restoreAction->setDisabled(m_lastTxMessage.isEmpty());
|
restoreAction->setDisabled(m_lastTxMessage.isEmpty());
|
||||||
menu->addAction(restoreAction);
|
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(){
|
void MainWindow::on_queryButton_pressed(){
|
||||||
QMenu *menu = ui->queryButton->menu();
|
QMenu *menu = ui->queryButton->menu();
|
||||||
if(!menu){
|
if(!menu){
|
||||||
|
@ -267,6 +267,7 @@ private slots:
|
|||||||
void buildBandActivitySortByMenu(QMenu * menu);
|
void buildBandActivitySortByMenu(QMenu * menu);
|
||||||
void buildCallActivitySortByMenu(QMenu * menu);
|
void buildCallActivitySortByMenu(QMenu * menu);
|
||||||
void buildQueryMenu(QMenu *, QString callsign);
|
void buildQueryMenu(QMenu *, QString callsign);
|
||||||
|
void buildEditMenu(QTextEdit *, QMenu *);
|
||||||
void on_queryButton_pressed();
|
void on_queryButton_pressed();
|
||||||
void on_macrosMacroButton_pressed();
|
void on_macrosMacroButton_pressed();
|
||||||
void on_tableWidgetRXAll_cellClicked(int row, int col);
|
void on_tableWidgetRXAll_cellClicked(int row, int col);
|
||||||
|
Loading…
Reference in New Issue
Block a user