logdock.cpp
1 //------------------------------------------------------------------------------
2 // logdock.cpp
3 //------------------------------------------------------------------------------
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 // 02110-1301 USA
19 //
20 //------------------------------------------------------------------------------
21 // Copyright (C) 2009 "Zalewa" <zalewapl@gmail.com>
22 //------------------------------------------------------------------------------
23 
24 #include "clipboard.h"
25 #include "gui/icons.h"
26 #include "log.h"
27 #include "logdock.h"
28 #include "ui_logdock.h"
29 
30 #include <QAction>
31 
32 DClass<LogDock> : public Ui::LogDock
33 {
34 };
35 
36 DPointered(LogDock)
37 
38 LogDock::LogDock(QWidget *parent) : QDockWidget(parent)
39 {
40  d->setupUi(this);
41  this->toggleViewAction()->setIcon(QIcon(":/icons/log.png"));
42 
43  d->btnClear->setIcon(Icons::clear());
44  connect(d->btnClear, SIGNAL(clicked()), this, SLOT(clearContent()));
45  connect(d->btnCopy, SIGNAL(clicked()), this, SLOT(btnCopyClicked()));
46 }
47 
48 LogDock::~LogDock()
49 {
50 }
51 
52 void LogDock::appendLogEntry(const QString &entry)
53 {
54  d->teContent->moveCursor(QTextCursor::End);
55  d->teContent->insertPlainText(entry);
56 }
57 
58 void LogDock::clearContent()
59 {
60  gLog.clearContent();
61  d->teContent->document()->clear();
62 }
63 
64 void LogDock::btnCopyClicked()
65 {
66  Clipboard::setText(d->teContent->document()->toPlainText());
67 }