File indexing completed on 2024-12-01 04:15:19
0001 /* This file is part of KDevelop 0002 Copyright 2007-2008 Hamish Rodda <rodda@kde.org> 0003 Copyright 2011 Sebastien Rannou <mxs@sbrk.org> 0004 Copyright 2016 Anton Anikin <anton@anikin.xyz> 0005 0006 This program is free software; you can redistribute it and/or 0007 modify it under the terms of the GNU General Public 0008 License as published by the Free Software Foundation; either 0009 version 2 of the License, or (at your option) any later version. 0010 0011 This program is distributed in the hope that it will be useful, 0012 but WITHOUT ANY WARRANTY; without even the implied warranty of 0013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0014 General Public License for more details. 0015 0016 You should have received a copy of the GNU General Public License 0017 along with this program; see the file COPYING. If not, write to 0018 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0019 Boston, MA 02110-1301, USA. 0020 */ 0021 0022 #include "toolviewfactory.h" 0023 0024 #include "debug.h" 0025 #include "plugin.h" 0026 0027 #include <KLocalizedString> 0028 0029 #include <QTabWidget> 0030 0031 namespace Valgrind 0032 { 0033 0034 class ToolView : public QTabWidget 0035 { 0036 Q_OBJECT 0037 0038 public: 0039 explicit ToolView(QWidget* parent); 0040 ~ToolView() override = default; 0041 }; 0042 0043 ToolView::ToolView(QWidget* parent) 0044 : QTabWidget(parent) 0045 { 0046 setWindowIcon(QIcon::fromTheme("fork")); 0047 setWindowTitle(i18n("Valgrind Output")); 0048 0049 setWhatsThis(i18n("<b>Valgrind</b><p>Shows the output of valgrind. Valgrind detects:<br/>" 0050 "use of uninitialized memory;<br/>" 0051 "reading/writing memory after it has been free'd;<br/>" 0052 "reading/writing off the end of malloc'd blocks;<br/>" 0053 "reading/writing inappropriate areas on the stack;<br/>" 0054 "memory leaks — where pointers to malloc'd blocks are lost forever;<br/>" 0055 "passing of uninitialised and/or unaddressable memory to system calls;<br/>" 0056 "mismatched use of malloc/new/new [] vs free/delete/delete [];<br/>" 0057 "some abuses of the POSIX pthread API.</p>")); 0058 0059 setTabsClosable(true); 0060 0061 connect(this, &ToolView::tabCloseRequested, this, [this](int index) { 0062 delete widget(index); 0063 removeTab(index); 0064 }); 0065 0066 connect(Plugin::self(), &Plugin::addView, this, [this](QWidget* view, const QString& name) { 0067 Q_ASSERT(view); 0068 0069 addTab(view, name); 0070 setCurrentWidget(view); 0071 setMovable(true); 0072 }); 0073 } 0074 0075 QWidget* ToolViewFactory::create(QWidget* parent) 0076 { 0077 return new ToolView(parent); 0078 } 0079 0080 Qt::DockWidgetArea ToolViewFactory::defaultPosition() const 0081 { 0082 return Qt::BottomDockWidgetArea; 0083 } 0084 0085 QString ToolViewFactory::id() const 0086 { 0087 return QStringLiteral("org.kdevelop.ValgrindView"); 0088 } 0089 0090 } 0091 0092 #include "toolviewfactory.moc"