Browse Source

Follow project coding style. Issue #2192.

adaptive-webui-19844
sledgehammer999 9 years ago
parent
commit
6a281bef8f
  1. 79
      src/gui/loglistwidget.cpp
  2. 14
      src/gui/loglistwidget.h

79
src/gui/loglistwidget.cpp

@ -38,59 +38,60 @@
#include "guiiconprovider.h" #include "guiiconprovider.h"
LogListWidget::LogListWidget(int max_lines, QWidget *parent) : LogListWidget::LogListWidget(int max_lines, QWidget *parent) :
QListWidget(parent), QListWidget(parent),
m_maxLines(max_lines) m_maxLines(max_lines)
{ {
// Allow multiple selections // Allow multiple selections
setSelectionMode(QAbstractItemView::ExtendedSelection); setSelectionMode(QAbstractItemView::ExtendedSelection);
// Context menu // Context menu
QAction *copyAct = new QAction(GuiIconProvider::instance()->getIcon("edit-copy"), tr("Copy"), this); QAction *copyAct = new QAction(GuiIconProvider::instance()->getIcon("edit-copy"), tr("Copy"), this);
QAction *clearAct = new QAction(GuiIconProvider::instance()->getIcon("edit-clear"), tr("Clear"), this); QAction *clearAct = new QAction(GuiIconProvider::instance()->getIcon("edit-clear"), tr("Clear"), this);
connect(copyAct, SIGNAL(triggered()), SLOT(copySelection())); connect(copyAct, SIGNAL(triggered()), SLOT(copySelection()));
connect(clearAct, SIGNAL(triggered()), SLOT(clearLog())); connect(clearAct, SIGNAL(triggered()), SLOT(clearLog()));
addAction(copyAct); addAction(copyAct);
addAction(clearAct); addAction(clearAct);
setContextMenuPolicy(Qt::ActionsContextMenu); setContextMenuPolicy(Qt::ActionsContextMenu);
} }
void LogListWidget::keyPressEvent(QKeyEvent *event) void LogListWidget::keyPressEvent(QKeyEvent *event)
{ {
if (event->matches(QKeySequence::Copy)) { if (event->matches(QKeySequence::Copy)) {
copySelection(); copySelection();
return; return;
} }
if (event->matches(QKeySequence::SelectAll)) { if (event->matches(QKeySequence::SelectAll)) {
selectAll(); selectAll();
return; return;
} }
} }
void LogListWidget::appendLine(const QString &line) void LogListWidget::appendLine(const QString &line)
{ {
QListWidgetItem *item = new QListWidgetItem; QListWidgetItem *item = new QListWidgetItem;
// We need to use QLabel here to support rich text // We need to use QLabel here to support rich text
QLabel *lbl = new QLabel(line); QLabel *lbl = new QLabel(line);
lbl->setContentsMargins(4, 2, 4, 2); lbl->setContentsMargins(4, 2, 4, 2);
item->setSizeHint(lbl->sizeHint()); item->setSizeHint(lbl->sizeHint());
insertItem(0, item); insertItem(0, item);
setItemWidget(item, lbl); setItemWidget(item, lbl);
const int nbLines = count(); const int nbLines = count();
// Limit log size // Limit log size
if (nbLines > m_maxLines) if (nbLines > m_maxLines)
delete takeItem(nbLines - 1); delete takeItem(nbLines - 1);
} }
void LogListWidget::copySelection() void LogListWidget::copySelection()
{ {
static QRegExp html_tag("<[^>]+>"); static QRegExp html_tag("<[^>]+>");
QList<QListWidgetItem*> items = selectedItems(); QList<QListWidgetItem*> items = selectedItems();
QStringList strings; QStringList strings;
foreach (QListWidgetItem* it, items) foreach (QListWidgetItem* it, items)
strings << static_cast<QLabel*>(itemWidget(it))->text().replace(html_tag, ""); strings << static_cast<QLabel*>(itemWidget(it))->text().replace(html_tag, "");
QApplication::clipboard()->setText(strings.join("\n")); QApplication::clipboard()->setText(strings.join("\n"));
} }
void LogListWidget::clearLog() { void LogListWidget::clearLog()
clear(); {
clear();
} }

14
src/gui/loglistwidget.h

@ -36,25 +36,25 @@ QT_BEGIN_NAMESPACE
class QKeyEvent; class QKeyEvent;
QT_END_NAMESPACE QT_END_NAMESPACE
class LogListWidget : public QListWidget class LogListWidget: public QListWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit LogListWidget(int max_lines = 100, QWidget *parent = 0); explicit LogListWidget(int max_lines = 100, QWidget *parent = 0);
public slots: public slots:
void appendLine(const QString &line); void appendLine(const QString &line);
protected slots: protected slots:
void copySelection(); void copySelection();
void clearLog(); void clearLog();
protected: protected:
void keyPressEvent(QKeyEvent *event); void keyPressEvent(QKeyEvent *event);
private: private:
int m_maxLines; int m_maxLines;
}; };

Loading…
Cancel
Save