GUI: Enhance context menu for analysis log (#1014)
*Add context menu entry for copying selected log entry *Add context menu entry for copying the complete log *Do not show context menu if analysis log is empty *Renamed function log_clear to logClear so it matches the coding style in the GUI
This commit is contained in:
parent
a3bf023506
commit
8d08357a73
|
@ -29,6 +29,7 @@
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QDate>
|
#include <QDate>
|
||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
|
#include <QClipboard>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "erroritem.h"
|
#include "erroritem.h"
|
||||||
#include "resultsview.h"
|
#include "resultsview.h"
|
||||||
|
@ -406,17 +407,47 @@ void ResultsView::debugError(const ErrorItem &item)
|
||||||
mUI.mListLog->addItem(item.ToString());
|
mUI.mListLog->addItem(item.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
void ResultsView::log_clear()
|
void ResultsView::logClear()
|
||||||
{
|
{
|
||||||
mUI.mListLog->clear();
|
mUI.mListLog->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ResultsView::logCopyEntry()
|
||||||
|
{
|
||||||
|
const QListWidgetItem * item = mUI.mListLog->currentItem();
|
||||||
|
if(nullptr != item)
|
||||||
|
{
|
||||||
|
QClipboard *clipboard = QApplication::clipboard();
|
||||||
|
clipboard->setText(item->text());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResultsView::logCopyComplete()
|
||||||
|
{
|
||||||
|
QString logText;
|
||||||
|
for(int i=0; i < mUI.mListLog->count(); ++i)
|
||||||
|
{
|
||||||
|
const QListWidgetItem * item = mUI.mListLog->item(i);
|
||||||
|
if(nullptr != item)
|
||||||
|
{
|
||||||
|
logText += item->text();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
QClipboard *clipboard = QApplication::clipboard();
|
||||||
|
clipboard->setText(logText);
|
||||||
|
}
|
||||||
|
|
||||||
void ResultsView::on_mListLog_customContextMenuRequested(const QPoint &pos)
|
void ResultsView::on_mListLog_customContextMenuRequested(const QPoint &pos)
|
||||||
{
|
{
|
||||||
QPoint globalPos = mUI.mListLog->mapToGlobal(pos);
|
if(mUI.mListLog->count() > 0)
|
||||||
|
{
|
||||||
|
QPoint globalPos = mUI.mListLog->mapToGlobal(pos);
|
||||||
|
|
||||||
QMenu contextMenu;
|
QMenu contextMenu;
|
||||||
contextMenu.addAction(tr("Clear Log"), this, SLOT(log_clear()));
|
contextMenu.addAction(tr("Clear Log"), this, SLOT(logClear()));
|
||||||
|
contextMenu.addAction(tr("Copy this Log entry"), this, SLOT(logCopyEntry()));
|
||||||
|
contextMenu.addAction(tr("Copy complete Log"), this, SLOT(logCopyComplete()));
|
||||||
|
|
||||||
contextMenu.exec(globalPos);
|
contextMenu.exec(globalPos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -314,7 +314,17 @@ public slots:
|
||||||
/**
|
/**
|
||||||
* \brief Clear log messages
|
* \brief Clear log messages
|
||||||
*/
|
*/
|
||||||
void log_clear();
|
void logClear();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Copy selected log message entry
|
||||||
|
*/
|
||||||
|
void logCopyEntry();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Copy all log messages
|
||||||
|
*/
|
||||||
|
void logCopyComplete();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue