diff options
author | hjk <qtc-committer@nokia.com> | 2011-08-05 18:03:37 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2011-08-17 10:48:34 +0200 |
commit | 7b3ba73a018d0fcc642674cc8878bd3274b907f9 (patch) | |
tree | 65c209ab56044bd34324fe64fbf6fcb252d9e83f /src/plugins/valgrind/memcheckerrorview.cpp | |
parent | 1f36bcaca3b582f4bd2fa87fe39d40b8a8088f6a (diff) |
analyzer: code cosmetics
Change-Id: Id00cf1be9d07e47f7b61b8cc7e940629c84a48c1
Reviewed-on: http://codereview.qt.nokia.com/2707
Reviewed-by: hjk <qthjk@ovi.com>
Diffstat (limited to 'src/plugins/valgrind/memcheckerrorview.cpp')
-rw-r--r-- | src/plugins/valgrind/memcheckerrorview.cpp | 65 |
1 files changed, 48 insertions, 17 deletions
diff --git a/src/plugins/valgrind/memcheckerrorview.cpp b/src/plugins/valgrind/memcheckerrorview.cpp index 31fcd884fa2..daf6fdcb95f 100644 --- a/src/plugins/valgrind/memcheckerrorview.cpp +++ b/src/plugins/valgrind/memcheckerrorview.cpp @@ -44,33 +44,65 @@ #include "xmlprotocol/modelhelpers.h" #include "xmlprotocol/suppression.h" -#include <texteditor/basetexteditor.h> - +#include <coreplugin/coreconstants.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/project.h> -#include <coreplugin/coreconstants.h> - +#include <texteditor/basetexteditor.h> #include <utils/qtcassert.h> #include <QtCore/QDir> #include <QtCore/QDebug> +#include <QtGui/QAction> +#include <QtGui/QApplication> +#include <QtGui/QClipboard> #include <QtGui/QLabel> #include <QtGui/QListView> +#include <QtGui/QMenu> #include <QtGui/QPainter> #include <QtGui/QScrollBar> #include <QtGui/QSortFilterProxyModel> +#include <QtGui/QStyledItemDelegate> #include <QtGui/QVBoxLayout> -#include <QtGui/QAction> -#include <QtGui/QClipboard> -#include <QtGui/QApplication> -#include <QtGui/QMenu> using namespace Valgrind::XmlProtocol; namespace Valgrind { namespace Internal { +class MemcheckErrorDelegate : public QStyledItemDelegate +{ + Q_OBJECT + +public: + /// This delegate can only work on one view at a time, parent. parent will also be the parent + /// in the QObject parent-child system. + explicit MemcheckErrorDelegate(QListView *parent); + + QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; + void paint(QPainter *painter, const QStyleOptionViewItem &option, + const QModelIndex &index) const; + +public slots: + void currentChanged(const QModelIndex &now, const QModelIndex &previous); + void viewResized(); + void layoutChanged(); + void copy(); + +private slots: + void verticalScrolled(); + void openLinkInEditor(const QString &link); + +private: + // the constness of this method is a necessary lie because it is called from paint() const. + QWidget *createDetailsWidget(const QModelIndex &errorIndex, QWidget *parent) const; + + static const int s_itemMargin = 2; + mutable QPersistentModelIndex m_detailsIndex; + mutable QWidget *m_detailsWidget; + mutable int m_detailsWidgetHeight; +}; + MemcheckErrorDelegate::MemcheckErrorDelegate(QListView *parent) : QStyledItemDelegate(parent), m_detailsWidget(0) @@ -84,8 +116,7 @@ QSize MemcheckErrorDelegate::sizeHint(const QStyleOptionViewItem &opt, const QMo const QListView *view = qobject_cast<const QListView *>(parent()); const int viewportWidth = view->viewport()->width(); const bool isSelected = view->selectionModel()->currentIndex() == index; - - int dy = 2 * s_itemMargin; + const int dy = 2 * s_itemMargin; if (!isSelected) { QFontMetrics fm(opt.font); @@ -153,20 +184,20 @@ static QString makeFrameName(const Frame &frame, const QString &relativeTo, return QString("0x%1").arg(frame.instructionPointer(), 0, 16); } -QString relativeToPath() +static QString relativeToPath() { - // project for which we insert the snippet + // The project for which we insert the snippet. const ProjectExplorer::Project *project = ProjectExplorer::ProjectExplorerPlugin::instance()->startupProject(); - QString relativeTo( project ? project->projectDirectory() : QDir::homePath() ); + QString relativeTo(project ? project->projectDirectory() : QDir::homePath()); if (!relativeTo.endsWith(QDir::separator())) relativeTo.append(QDir::separator()); return relativeTo; } -QString errorLocation(const QModelIndex &index, const Error &error, +static QString errorLocation(const QModelIndex &index, const Error &error, bool link = false, const QString &linkAttr = QString()) { const ErrorListModel *model = 0; @@ -190,9 +221,7 @@ QWidget *MemcheckErrorDelegate::createDetailsWidget(const QModelIndex &errorInde // don't include frameName here as it should wrap if required and pre-line is not supported // by Qt yet it seems const QString displayTextTemplate = QString("<code style='white-space:pre'>%1:</code> %2"); - - QString relativeTo = relativeToPath(); - + const QString relativeTo = relativeToPath(); const Error error = errorIndex.data(ErrorListModel::ErrorRole).value<Error>(); QLabel *errorLabel = new QLabel(); @@ -541,3 +570,5 @@ void MemcheckErrorView::setCurrentRow(int row) } // namespace Internal } // namespace Valgrind + +#include "memcheckerrorview.moc" |