From a831f1cd8c389e271b40706c6f35342550f1f823 Mon Sep 17 00:00:00 2001 From: Toni Gundogdu Date: Mon, 31 Oct 2011 18:03:53 +0200 Subject: [PATCH] Add "copy to clipboard" to NLogDialog --- src/log/nlogdialog.cpp | 12 ++++++++++++ src/log/nlogdialog.h | 3 +++ src/log/nlogdialog_recent.cpp | 22 ++++++++++++++++++++-- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/log/nlogdialog.cpp b/src/log/nlogdialog.cpp index 3a4016d..bc30aa6 100644 --- a/src/log/nlogdialog.cpp +++ b/src/log/nlogdialog.cpp @@ -51,8 +51,14 @@ NLogDialog::NLogDialog(QWidget *parent/*=NULL*/) | QDialogButtonBox::Cancel | QDialogButtonBox::Reset); + QPushButton *b = new QPushButton(tr("Co&py")); + b->setToolTip(tr("Copy to clipboard")); + + bb->addButton(b, QDialogButtonBox::ActionRole); + connect(bb, SIGNAL(accepted()), this, SLOT(accept())); connect(bb, SIGNAL(rejected()), this, SLOT(reject())); + connect(b, SIGNAL(clicked()), this, SLOT(copy())); connect(bb->button(QDialogButtonBox::Reset), SIGNAL(clicked()), this, SLOT(reset())); @@ -114,6 +120,12 @@ void NLogDialog::reset() l->reset(); } +void NLogDialog::copy() +{ + NLogWidget *l = dynamic_cast(_toolbox->currentWidget()); + l->copy(); +} + // NLogWidget NLogWidget::NLogWidget(QWidget *parent/*=NULL*/) diff --git a/src/log/nlogdialog.h b/src/log/nlogdialog.h index 42614c6..a22b1cf 100644 --- a/src/log/nlogdialog.h +++ b/src/log/nlogdialog.h @@ -40,6 +40,7 @@ private: private slots: void selected(QString); void reset(); + void copy(); private: QToolBox *_toolbox; QString _selected; @@ -53,6 +54,7 @@ public: protected: virtual void reset() = 0; virtual void init() = 0; + virtual void copy() = 0; // Friends friend class NLogDialog; }; @@ -69,6 +71,7 @@ private slots: protected: virtual void reset(); virtual void init(); + virtual void copy(); private: QTreeWidget *_treew; }; diff --git a/src/log/nlogdialog_recent.cpp b/src/log/nlogdialog_recent.cpp index d884cf0..b97f291 100644 --- a/src/log/nlogdialog_recent.cpp +++ b/src/log/nlogdialog_recent.cpp @@ -17,12 +17,13 @@ #include "config.h" -#include #include +#include #include #include #include #include +#include #include #include @@ -71,7 +72,7 @@ void NLogRecent::init() void NLogRecent::selected() { - QTreeWidgetItem *i = _treew->selectedItems().first(); + QTreeWidgetItem *i = _treew->currentItem(); i = (i->childCount() > 0) ? i->child(0) : i; if (i) emit selected(i->text(0)); @@ -92,6 +93,23 @@ void NLogRecent::reset() recent.clear(); } +void NLogRecent::copy() +{ + QTreeWidgetItem *i = _treew->currentItem(); + if (!i) + { + info(this, tr("Please select an item from the list")); + return; + } + + i = (i->childCount() > 0) ? i : i->parent(); + + QApplication::clipboard()->setText(QString("%1\n %2\n %3\n") + .arg(i->text(0)) + .arg(i->text(1)) + .arg((i->child(0)->text(0)))); +} + } // namespace nn /* vim: set ts=2 sw=2 tw=72 expandtab: */ -- 2.11.4.GIT