• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdesdk API Reference
  • KDE Home
  • Contact Us
 

kcachegrind

  • sources
  • kde-4.12
  • kdesdk
  • kcachegrind
  • qcachegrind
colorsettings.cpp
Go to the documentation of this file.
1 /* This file is part of KCachegrind.
2  Copyright (C) 2009 Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
3 
4  KCachegrind is free software; you can redistribute it and/or
5  modify it under the terms of the GNU General Public
6  License as published by the Free Software Foundation, version 2.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; see the file COPYING. If not, write to
15  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
16  Boston, MA 02110-1301, USA.
17 */
18 
19 /*
20  * Color settings config page
21  */
22 
23 #include <QTreeWidgetItem>
24 #include <QFileDialog>
25 
26 #include "tracedata.h"
27 #include "colorsettings.h"
28 #include "globalguiconfig.h"
29 #include "listutils.h"
30 
31 //
32 // ColorSettings
33 //
34 
35 static void insertColorItems(QTreeWidget* w, ProfileContext::Type type,
36  QStringList items)
37 {
38  items.sort();
39  foreach(QString s, items) {
40  ConfigColorSetting* cs = GlobalGUIConfig::groupColorSetting(type, s);
41  QTreeWidgetItem* i = new QTreeWidgetItem(w);
42  i->setText(0, ProfileContext::i18nTypeName(type));
43  i->setData(0, Qt::UserRole, QVariant::fromValue((void*)cs));
44  i->setIcon(1, QIcon(colorPixmap(20,10, cs->color())));
45  i->setText(1, cs->automatic() ? QObject::tr("(auto)") : QString());
46  i->setData(1, Qt::UserRole, cs->color());
47  i->setText(2, s);
48  }
49 }
50 
51 ColorSettings::ColorSettings(TraceData* data, QWidget* parent)
52  : ConfigPage(parent,
53  QObject::tr("Group Colors"),
54  QObject::tr("Color Settings for Function Groups"))
55 {
56  ui.setupUi(this);
57 
58  ui.colorList->setRootIsDecorated(false);
59  ui.colorList->setSortingEnabled(false);
60  QStringList items;
61  if (data) {
62  TraceObjectMap::Iterator oit = data->objectMap().begin();
63  for(; oit != data->objectMap().end(); ++oit)
64  items << (*oit).prettyName();
65  }
66  if (!items.contains(TraceObject::prettyEmptyName()))
67  items << TraceObject::prettyEmptyName();
68  insertColorItems(ui.colorList, ProfileContext::Object, items);
69  items.clear();
70  if (data) {
71  TraceFileMap::Iterator fit = data->fileMap().begin();
72  for(; fit != data->fileMap().end(); ++fit)
73  items << (*fit).prettyName();
74  }
75  if (!items.contains(TraceFile::prettyEmptyName()))
76  items << TraceFile::prettyEmptyName();
77  insertColorItems(ui.colorList, ProfileContext::File, items);
78  items.clear();
79  if (data) {
80  TraceClassMap::Iterator cit = data->classMap().begin();
81  for(; cit != data->classMap().end(); ++cit)
82  items << (*cit).prettyName();
83  }
84  if (!items.contains(TraceClass::prettyEmptyName()))
85  items << TraceClass::prettyEmptyName();
86  insertColorItems(ui.colorList, ProfileContext::Class, items);
87  ui.colorList->setSortingEnabled(true);
88 
89  ui.colorList->resizeColumnToContents(0);
90  ui.colorList->resizeColumnToContents(1);
91  ui.colorList->resizeColumnToContents(2);
92 
93  connect(ui.resetButton, SIGNAL(clicked()),
94  this, SLOT(resetClicked()));
95  connect(ui.colorList,
96  SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)),
97  this,
98  SLOT(colorListItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)));
99  connect(ui.colorButton, SIGNAL(colorChanged(const QColor &)),
100  this, SLOT(colorChanged(const QColor &)));
101 
102  _current = 0;
103  update();
104 }
105 
106 ColorSettings::~ColorSettings()
107 {}
108 
109 void ColorSettings::activate(QString s)
110 {
111  int idx = s.toInt();
112  if ((idx==0) || (idx>ui.colorList->topLevelItemCount())) return;
113 
114  ui.colorList->setCurrentItem(ui.colorList->topLevelItem(idx-1));
115  ui.colorButton->setFocus();
116 }
117 
118 void ColorSettings::update()
119 {
120  if (!_current) {
121  ui.resetButton->setEnabled(false);
122  ui.colorButton->setEnabled(false);
123  return;
124  }
125  ui.resetButton->setEnabled(true);
126  ui.colorButton->setEnabled(true);
127 
128  QColor c = _current->data(1, Qt::UserRole).value<QColor>();
129  ui.colorButton->setColor(c);
130 }
131 
132 void ColorSettings::resetClicked()
133 {
134  if (!_current) return;
135 
136  ConfigColorSetting*cs;
137  cs = (ConfigColorSetting*) _current->data(0, Qt::UserRole).value<void*>();
138  QColor c = cs->autoColor();
139  _current->setIcon(1, QIcon(colorPixmap(20,10, c)));
140  _current->setData(1, Qt::UserRole, c);
141  _current->setText(1, QObject::tr("(auto)"));
142  ui.colorButton->setColor(c);
143 }
144 
145 
146 void ColorSettings::colorListItemChanged(QTreeWidgetItem* current,
147  QTreeWidgetItem*)
148 {
149  _current = current;
150  update();
151 }
152 
153 void ColorSettings::colorChanged(const QColor& c)
154 {
155  if (!_current) return;
156 
157  _current->setIcon(1, QIcon(colorPixmap(20,10, c)));
158  _current->setData(1, Qt::UserRole, c);
159  _current->setText(1, QString());
160 }
161 
162 bool ColorSettings::check(QString&, QString&)
163 {
164  return true;
165 }
166 
167 void ColorSettings::accept()
168 {
169  QTreeWidgetItem* item;
170  ConfigColorSetting* cs;
171  QColor c;
172  for(int i = 0; i< ui.colorList->topLevelItemCount(); i++) {
173  item = ui.colorList->topLevelItem(i);
174  cs = (ConfigColorSetting*) item->data(0, Qt::UserRole).value<void*>();
175  c = item->data(1, Qt::UserRole).value<QColor>();
176  if (cs->color() == c) continue;
177 
178  cs->setColor(c);
179  }
180 }
181 
182 #include "colorsettings.moc"
ColorSettings::activate
void activate(QString s)
Definition: colorsettings.cpp:109
ColorSettings::colorChanged
void colorChanged(const QColor &)
Definition: colorsettings.cpp:153
QTreeWidget
ProfileContext::File
Definition: context.h:48
QWidget
ColorSettings::ColorSettings
ColorSettings(TraceData *data, QWidget *parent)
Definition: colorsettings.cpp:51
ColorSettings::accept
void accept()
Definition: colorsettings.cpp:167
TraceObject::prettyEmptyName
static QString prettyEmptyName()
Definition: tracedata.cpp:2969
ConfigColorSetting::automatic
bool automatic() const
Definition: globalguiconfig.h:46
ProfileContext::Class
Definition: context.h:47
insertColorItems
static void insertColorItems(QTreeWidget *w, ProfileContext::Type type, QStringList items)
Definition: colorsettings.cpp:35
GlobalGUIConfig::groupColorSetting
static ConfigColorSetting * groupColorSetting(CostItem *)
Definition: globalguiconfig.cpp:171
tracedata.h
TraceData::classMap
TraceClassMap & classMap()
Definition: tracedata.h:1440
colorsettings.h
listutils.h
ProfileContext::i18nTypeName
static QString i18nTypeName(Type)
Definition: context.cpp:118
globalguiconfig.h
ColorSettings::resetClicked
void resetClicked()
Definition: colorsettings.cpp:132
TraceClass::prettyEmptyName
static QString prettyEmptyName()
Definition: tracedata.cpp:2717
TraceData::objectMap
TraceObjectMap & objectMap()
Definition: tracedata.h:1438
ConfigColorSetting::setColor
void setColor(const QColor &)
Definition: globalguiconfig.cpp:44
QTreeWidgetItem
ColorSettings::~ColorSettings
virtual ~ColorSettings()
Definition: colorsettings.cpp:106
ConfigPage
Definition: configpage.h:30
ConfigColorSetting::color
QColor color() const
Definition: globalguiconfig.h:45
ProfileContext::Type
Type
Definition: context.h:36
ConfigColorSetting
Color setting for a cost item Helper class for color settings in configuration.
Definition: globalguiconfig.h:39
ColorSettings::check
bool check(QString &, QString &)
Definition: colorsettings.cpp:162
ColorSettings::colorListItemChanged
void colorListItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)
Definition: colorsettings.cpp:146
ProfileContext::Object
Definition: context.h:49
TraceData
This class holds profiling data of multiple tracefiles generated with cachegrind on one command...
Definition: tracedata.h:1363
TraceFile::prettyEmptyName
static QString prettyEmptyName()
Definition: tracedata.cpp:2868
colorPixmap
QPixmap colorPixmap(int w, int h, QColor c)
Definition: listutils.cpp:32
ConfigColorSetting::autoColor
QColor autoColor() const
Definition: globalguiconfig.cpp:61
TraceData::fileMap
TraceFileMap & fileMap()
Definition: tracedata.h:1439
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:03:26 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kcachegrind

Skip menu "kcachegrind"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdesdk API Reference

Skip menu "kdesdk API Reference"
  • kapptemplate
  • kcachegrind
  • kompare
  • lokalize
  • okteta
  • umbrello
  •   umbrello

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal