add copy, past and cut for plainTextedit
This commit is contained in:
parent
75f9928957
commit
516d432bdd
@ -514,12 +514,19 @@ void MainWindow::on_actionopenFile_triggered()
|
|||||||
void MainWindow::copyText(){
|
void MainWindow::copyText(){
|
||||||
QWidget *focused = QApplication::focusWidget();
|
QWidget *focused = QApplication::focusWidget();
|
||||||
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(focused);
|
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(focused);
|
||||||
|
QPlainTextEdit* plainTextEdit = qobject_cast<QPlainTextEdit*>(focused);
|
||||||
|
|
||||||
if(lineEdit) {
|
if (lineEdit && !lineEdit->selectedText().isEmpty()) {
|
||||||
Clipboard->setText(lineEdit->selectedText());
|
Clipboard->setText(lineEdit->selectedText());
|
||||||
|
} else if (plainTextEdit) {
|
||||||
|
QTextCursor cursor = plainTextEdit->textCursor();
|
||||||
|
if (cursor.hasSelection()) {
|
||||||
|
Clipboard->setText(cursor.selectedText());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionEditCopy_triggered()
|
void MainWindow::on_actionEditCopy_triggered()
|
||||||
{
|
{
|
||||||
this->copyText();
|
this->copyText();
|
||||||
@ -528,12 +535,12 @@ void MainWindow::on_actionEditCopy_triggered()
|
|||||||
void MainWindow::pastText(){
|
void MainWindow::pastText(){
|
||||||
QWidget *focused = QApplication::focusWidget();
|
QWidget *focused = QApplication::focusWidget();
|
||||||
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(focused);
|
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(focused);
|
||||||
|
QPlainTextEdit* plainTextEdit = qobject_cast<QPlainTextEdit*>(focused);
|
||||||
|
|
||||||
if (lineEdit) {
|
if (lineEdit) {
|
||||||
QString text = lineEdit->text();
|
lineEdit->insert(Clipboard->text());
|
||||||
int pos = lineEdit->cursorPosition();
|
} else if (plainTextEdit) {
|
||||||
text.insert(pos, Clipboard->text());
|
plainTextEdit->insertPlainText(Clipboard->text());
|
||||||
lineEdit->setText(text);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void MainWindow::on_actionEditPaste_triggered()
|
void MainWindow::on_actionEditPaste_triggered()
|
||||||
@ -545,14 +552,20 @@ void MainWindow::on_actionEditPaste_triggered()
|
|||||||
void MainWindow::cutText(){
|
void MainWindow::cutText(){
|
||||||
QWidget *focused = QApplication::focusWidget();
|
QWidget *focused = QApplication::focusWidget();
|
||||||
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(focused);
|
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(focused);
|
||||||
|
QPlainTextEdit* plainTextEdit = qobject_cast<QPlainTextEdit*>(focused);
|
||||||
|
|
||||||
if (lineEdit) {
|
if (lineEdit) {
|
||||||
QString text = lineEdit->text();
|
|
||||||
QString selectedText = lineEdit->selectedText();
|
QString selectedText = lineEdit->selectedText();
|
||||||
int pos = lineEdit->selectionStart();
|
if (!selectedText.isEmpty()) {
|
||||||
text.remove(pos, selectedText.length());
|
|
||||||
Clipboard->setText(selectedText);
|
Clipboard->setText(selectedText);
|
||||||
lineEdit->setText(text);
|
lineEdit->del();
|
||||||
|
}
|
||||||
|
} else if (plainTextEdit) {
|
||||||
|
QTextCursor cursor = plainTextEdit->textCursor();
|
||||||
|
if (cursor.hasSelection()) {
|
||||||
|
Clipboard->setText(cursor.selectedText());
|
||||||
|
cursor.removeSelectedText();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
void MainWindow::on_actionEditCut_triggered()
|
void MainWindow::on_actionEditCut_triggered()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user