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

superkaramba

  • sources
  • kde-4.12
  • kdeutils
  • superkaramba
  • src
  • meters
meters/imagelabel.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 * imagelabel.cpp - ImageLabel meter
3 *
4 * Copyright (C) 2003 Hans Karlsson <karlsson.h@home.se>
5 * Copyright (c) 2004 Petri Damstén <damu@iki.fi>
6 *
7 * This file is part of SuperKaramba.
8 *
9 * SuperKaramba is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * SuperKaramba is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with SuperKaramba; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 ****************************************************************************/
23 
24 #include "imagelabel.h"
25 #include "karambaapp.h"
26 
27 #include <QtGui/QPixmap>
28 #include <QtGui/QToolTip>
29 #include <QtGui/QCursor>
30 #include <QtGui/QBitmap>
31 #include <QtGui/QImage>
32 
33 #include <qimageblitz.h>
34 
35 #include <KIconEffect>
36 #include <KTemporaryFile>
37 #include <KDebug>
38 #include <kio/job.h>
39 #include <KRun>
40 
41 // Effect
42 Effect::Effect(ImageLabel* img, int msec) :
43  myImage(img)
44 {
45  if (msec > 0) {
46  // remove the effect after the given time
47  //QTimer::singleShot (millisec, myImage, SLOT(slotEffectExpired()));
48  //timer -> start(millisec);
49  millisec = msec;
50  } else {
51  millisec = msec;
52  }
53 }
54 
55 Effect::~Effect()
56 {}
57 
58 void Effect::startTimer()
59 {
60  if (millisec > 0) {
61  QTimer::singleShot(millisec, myImage, SLOT(slotEffectExpired()));
62  millisec = 0;
63  }
64 }
65 
66 // Intensity
67 Intensity::Intensity(ImageLabel* img, float r, int millisec) :
68  Effect(img, millisec)
69 {
70  ratio = r;
71  ratio = (ratio > 1) ? 1 : ratio;
72  ratio = (ratio < -1) ? -1 : ratio;
73 }
74 
75 QPixmap Intensity::apply(QPixmap pixmap)
76 {
77  QImage img = pixmap.toImage();
78  return QPixmap::fromImage(Blitz::intensity(img, ratio));
79 }
80 
81 // ChannelIntensity
82 ChannelIntensity::ChannelIntensity(ImageLabel* img, float r, const QString &c,
83  int millisec) :
84  Effect(img, millisec)
85 {
86  ratio = r;
87  ratio = (ratio > 1) ? 1 : ratio;
88  ratio = (ratio < -1) ? -1 : ratio;
89 
90  channel = 0;
91  if (c.contains("red", Qt::CaseInsensitive)) {
92  channel = 0;
93  } else if (c.contains("green", Qt::CaseInsensitive)) {
94  channel = 1;
95  } else if (c.contains("blue", Qt::CaseInsensitive)) {
96  channel = 2;
97  }
98 }
99 
100 QPixmap ChannelIntensity::apply(QPixmap pixmap)
101 {
102  QImage img = pixmap.toImage();
103  return QPixmap::fromImage(Blitz::channelIntensity(img, ratio,
104  Blitz::RGBChannel(channel+2)));
105 }
106 
107 // ToGray
108 ToGray::ToGray(ImageLabel* img, int millisec) : Effect(img, millisec)
109 {}
110 
111 QPixmap ToGray::apply(QPixmap pixmap)
112 {
113  QImage image = pixmap.toImage();
114  KIconEffect::toGray(image, 1.0f); // maybe Blitz::grayscale() would be better
115  return pixmap = QPixmap::fromImage(image);
116 }
117 
118 // Alpha
119 ToAlpha::ToAlpha(ImageLabel *img, const QColor &alphaColor, int alpha, int millisec) : Effect(img, millisec), m_alphaColor(alphaColor), m_alpha(alpha)
120 {}
121 
122 QPixmap ToAlpha::apply(QPixmap pixmap)
123 {
124  QPixmap alpha(pixmap.width(), pixmap.height());
125  alpha.fill(QColor(m_alpha, m_alpha, m_alpha));
126 
127  if (m_alphaColor.isValid()) {
128  QBitmap mask = pixmap.createMaskFromColor(m_alphaColor, Qt::MaskOutColor);
129  QPainter painter(&alpha);
130  painter.drawPixmap(0, 0, mask);
131  }
132 
133  pixmap.setAlphaChannel(alpha);
134  return pixmap;
135 }
136 
137 /***********************************************************************/
138 
139 ImageLabel::ImageLabel(Karamba* k, int ix, int iy, int iw, int ih) :
140  Meter(k, ix, iy, iw, ih), m_allowClick(false), zoomed(false), rollover(false), m_renderer(0), m_connected(false)
141 {
142  pixmap = QPixmap(iw, ih);
143  pixmap.fill(Qt::transparent);
144 
145  background = 0;
146  //scaleMat.reset();
147  //rotMat.reset();
148  scale_w = 1;
149  scale_h = 1;
150  rot_angle = 0;
151 
152  doScale = false;
153  doRotate = false;
154 
155  imageEffect = 0;
156 }
157 
158 ImageLabel::ImageLabel(Karamba* k) :
159  Meter(k), zoomed(false), rollover(false), m_renderer(0),
160  m_connected(false)
161 {
162  background = 0;
163 }
164 
165 ImageLabel::~ImageLabel()
166 {
167  if (imageEffect != 0) {
168  delete imageEffect;
169  imageEffect = 0;
170  }
171  if (!old_tip_rect.isNull()) {}
172 
173  delete m_renderer;
174 }
175 
176 void ImageLabel::setValue(int v)
177 {
178  setValue(QString::number(v));
179 }
180 
181 void ImageLabel::show()
182 {
183  Meter::show();
184  setEnabled(true);
185 }
186 
187 void ImageLabel::hide()
188 {
189  Meter::hide();
190  setEnabled(false);
191 }
192 
193 void ImageLabel::rotate(int deg)
194 {
195  doRotate = !(deg == 0);
196 
197  rot_angle = deg;
198 
199  applyTransformations();
200 }
201 
202 void ImageLabel::scale(int w, int h)
203 {
204  doScale = !(w == realpixmap.width() && h == realpixmap.height());
205 
206  scale_w = w;
207  scale_h = h;
208 
209  applyTransformations();
210 }
211 
212 void ImageLabel::smoothScale(int w, int h)
213 {
214  doScale = !(w == realpixmap.width() && h == realpixmap.height());
215 
216  scale_w = w;
217  scale_h = h;
218 
219  applyTransformations(true);
220 
221 // double widthFactor = ((double)w) / ((double)realpixmap.width());
222 // double heightFactor = ((double)h) / ((double)realpixmap.height());
223 
224 // pixmap.convertFromImage(realpixmap.toImage().smoothScale(w, h));
225 
226 // setWidth(pixmap.width());
227 // setHeight(pixmap.height());
228 
229 }
230 
231 void ImageLabel::removeImageTransformations()
232 {
233  doScale = false;
234  doRotate = false;
235 
236  scale_w = 1;
237  scale_h = 1;
238  rot_angle = 0;
239  pixmap = realpixmap;
240 }
241 
242 void ImageLabel::applyTransformations(bool useSmoothScale)
243 {
244  prepareGeometryChange();
245 
246  pixmap = realpixmap;
247  if (doRotate) {
248  QMatrix rotMat;
249  rotMat.rotate(rot_angle);
250  pixmap = pixmap.transformed(rotMat, Qt::SmoothTransformation);
251  }
252 
253  if (doScale) {
254  if (m_renderer) {
255  QPixmap pm(scale_w, scale_h);
256  pm.fill(Qt::transparent);
257  QPainter painter(&pm);
258  if (m_element.isEmpty()) {
259  m_renderer->render(&painter);
260  } else {
261  m_renderer->render(&painter, m_element);
262  }
263  pixmap = pm;
264  } else {
265  if (useSmoothScale) {
266  pixmap = QPixmap::fromImage(pixmap.toImage().scaled(scale_w, scale_h, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
267  } else {
268  double widthFactor = ((double)scale_w) / ((double)pixmap.width());
269  double heightFactor = ((double)scale_h) / ((double)pixmap.height());
270  QMatrix scaleMat;
271  scaleMat.scale(widthFactor, heightFactor);
272  pixmap = pixmap.transformed(scaleMat);
273  }
274  }
275  }
276  if (imageEffect != 0) {
277  pixmap = imageEffect -> apply(pixmap);
278  }
279  setWidth(pixmap.width());
280  setHeight(pixmap.height());
281 
282  update();
283 }
284 
285 void ImageLabel::slotCopyResult(KJob* job)
286 {
287  QString tempFile = ((KIO::FileCopyJob*)job)->destUrl().path();
288  if (job->error() == 0) {
289  setValue(tempFile);
290  imagePath = ((KIO::FileCopyJob*)job)->srcUrl().path();
291  emit pixmapLoaded();
292  } else {
293  qWarning("Error downloading (%s): %s", job->errorText().toAscii().constData(),
294  tempFile.toAscii().constData());
295  }
296  KIO::NetAccess::removeTempFile(tempFile);
297 }
298 
299 void ImageLabel::setValue(const QString &fn)
300 {
301  // use the first line
302  QStringList sList = fn.split('\n');
303  QString fileName = *sList.begin();
304  KUrl url(fileName);
305  QRegExp rx("^[a-zA-Z]{1,5}:/", Qt::CaseInsensitive);
306  bool protocol = (rx.indexIn(fileName) != -1) ? true : false;
307  QPixmap pm;
308 
309  if (protocol && url.isLocalFile() == false) {
310  KTemporaryFile tmpFile;
311  tmpFile.setAutoRemove(false);
312  tmpFile.open();
313  KIO::FileCopyJob* copy = KIO::file_copy(fileName, tmpFile.fileName(), 0600,
314  KIO::Overwrite);
315  connect(copy, SIGNAL(result(KJob*)),
316  this, SLOT(slotCopyResult(KJob*)));
317  return;
318  } else {
319  if (m_karamba->theme().isThemeFile(fileName)) {
320  QByteArray ba = m_karamba->theme().readThemeFile(fileName);
321  if (fileName.endsWith("svg", Qt::CaseInsensitive) || fileName.endsWith("svgz", Qt::CaseInsensitive)) {
322  m_renderer = new QSvgRenderer(ba);
323  } else {
324  pm.loadFromData(ba);
325  }
326  } else {
327  if (fileName.endsWith("svg", Qt::CaseInsensitive) || fileName.endsWith("svgz", Qt::CaseInsensitive)) {
328  m_renderer = new QSvgRenderer(fileName);
329  } else {
330  pm.load(fileName);
331  }
332  }
333 
334  if (m_renderer) {
335  QPixmap tmpPm(m_renderer->defaultSize());
336  tmpPm.fill(Qt::transparent);
337  QPainter painter(&tmpPm);
338  if (m_element.isEmpty()) {
339  m_renderer->render(&painter);
340  } else {
341  m_renderer->render(&painter, m_element);
342  }
343  pm = tmpPm;
344 
345  if (m_renderer->animated()) {
346  m_connected = connect(m_renderer, SIGNAL(repaintNeeded()), this, SLOT(repaintSvg()));
347  }
348  }
349 
350  imagePath = fileName;
351  }
352  setValue(pm);
353 }
354 
355 //Matthew Kay: a new version of setValue to be used by createTaskIcon()
359 void ImageLabel::setValue(QPixmap& pix)
360 {
361  prepareGeometryChange();
362 
363  realpixmap = QPixmap(pix);
364  pixmap = realpixmap;
365  setWidth(pixmap.width());
366  setHeight(pixmap.height());
367 
368  pixmapWidth = pixmap.width();
369  pixmapHeight = pixmap.height();
370  rect_off = QRect(getX(), getY(), pixmapWidth, pixmapHeight);
371 
372  update();
373 }
374 
375 void ImageLabel::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
376  QWidget *widget)
377 {
378 // kDebug() << "image update: " << imagePath ;
379 
380  Q_UNUSED(option);
381  Q_UNUSED(widget);
382 
383  //only draw image if not hidden
384  if (!m_hidden) {
385  //draw the pixmap
386  painter->drawPixmap(0, 0, pixmap);
387  }
388 
389  // start Timer
390  if (imageEffect != 0)
391  {
392  imageEffect -> startTimer();
393  }
394 }
395 
396 bool ImageLabel::mouseEvent(QEvent *e)
397 {
398  if (isEnabled()) {
399  Qt::MouseButtons button;
400  if (QGraphicsSceneMouseEvent *event = dynamic_cast<QGraphicsSceneMouseEvent*>(e)) {
401  button = event->button();
402  } else if (QGraphicsSceneWheelEvent *event = dynamic_cast<QGraphicsSceneWheelEvent*>(e)) {
403  button = event->buttons();
404  }
405 
406  QString program;
407  if (button == Qt::LeftButton) {
408  program = m_leftMouseButtonAction;
409  } else if (button == Qt::MidButton) {
410  program = m_middleMouseButtonAction;
411  } else if (button == Qt::RightButton) {
412  program = m_rightMouseButtonAction;
413  }
414 
415  if (!program.isEmpty()) {
416  KRun::runCommand(program,0L);
417  } else {
418  return true;
419  }
420  }
421  return false;
422 }
423 
424 void ImageLabel::allowClick(bool enable)
425 {
426  m_allowClick = enable;
427 }
428 
429 bool ImageLabel::clickable()
430 {
431  return m_allowClick;
432 }
433 
434 void ImageLabel::parseImages(const QString &fn, const QString &fn_roll, int _xoff,
435  int _yoff, int _xon, int _yon)
436 {
437  //fn = filename;
438  //fn_roll = filename_roll;
439 
440  xoff = _xoff;
441  yoff = _yoff;
442  xon = _xon;
443  yon = _yon;
444 
445  // use the first line
446  QStringList sList = fn.split('\n');
447  QString fileName = *sList.begin();
448  QFileInfo fileInfo(fileName);
449  QString path;
450 
451  QRegExp rx("^http://", Qt::CaseInsensitive);
452  bool fileOnNet = (rx.indexIn(fileName) != -1) ? true : false;
453 
454 
455  if (fileInfo.isRelative() && !fileOnNet) {
456  path = m_karamba->theme().path() + '/' + fileName;
457  } else {
458  path = fileName;
459  }
460 
461  if (fileOnNet) {
462  QString tmpFile;
463  if (KIO::NetAccess::download(KUrl(path), tmpFile, 0)) {
464  pixmap_off = QPixmap(tmpFile);
465  KIO::NetAccess::removeTempFile(tmpFile);
466  kDebug() << "Downloaded: " << path << " to " << tmpFile ;
467  } else {
468  kDebug() << "Error Downloading: " << path ;
469  }
470  } else {
471  pixmap_off = QPixmap(path);
472  }
473 
474  pixmapOffWidth = pixmap.width();
475  pixmapOffHeight = pixmap.height();
476 
477  rect_off = QRect(xoff, yoff, pixmapWidth, pixmapHeight);
479  if (fn_roll.isEmpty())
480  return;
481 
482  rollover = true;
483  sList = fn_roll.split('\n');
484  fileName = *sList.begin();
485  fileInfo = QFileInfo(fileName);
486 
487  fileOnNet = (rx.indexIn(fileName) != -1) ? true : false;
488 
489 
490  if (fileInfo.isRelative() && !fileOnNet) {
491  path = m_karamba->theme().path() + '/' + fileName;
492  } else {
493  path = fileName;
494  }
495 
496  if (fileOnNet) {
497  QString tmpFile;
498  if (KIO::NetAccess::download(KUrl(path), tmpFile, 0)) {
499  pixmap_on = QPixmap(tmpFile);
500  KIO::NetAccess::removeTempFile(tmpFile);
501  qDebug("Downloaded: %s to %s", path.toAscii().constData(), tmpFile.toAscii().constData());
502  } else {
503  qDebug("Error Downloading: %s", path.toAscii().constData());
504  }
505  } else {
506  pixmap_on = QPixmap(path);
507  }
508  pixmapOnWidth = pixmap_on.width();
509  pixmapOnHeight = pixmap_on.height();
510 
511  rect_on = QRect(xon, yon, pixmapOnWidth, pixmapOnHeight);
512 }
513 
514 void ImageLabel::setBackground(int b)
515 {
516  background = b;
517 }
518 
519 void ImageLabel::rolloverImage(QGraphicsSceneHoverEvent *e)
520 {
521  if (!rollover)
522  return;
523 
524  prepareGeometryChange();
525 
526  if (zoomed) {
527  if (!rect_off.contains(e->pos().toPoint())) {
528  // rollover the image to the zoomed image
529  //setValue(fn_roll);
530  setX(xoff);
531  setY(yoff);
532  pixmap = pixmap_off;
533  pixmapWidth = pixmapOffWidth;
534  pixmapHeight = pixmapOffHeight;
535  zoomed = false;
536  }
537  } else {
538  if (rect_off.contains(e->pos().toPoint())) {
539  // rollover the image to the zoomed image
540  //setValue(fn_roll);
541  setX(xon);
542  setY(yon);
543  pixmap = pixmap_on;
544  pixmapWidth = pixmapOnWidth;
545  pixmapHeight = pixmapOnHeight;
546  zoomed = true;
547  }
548  }
549 
550  update();
551 }
552 
553 void ImageLabel::setTooltip(QString txt)
554 {
555  setToolTip(txt);
556 }
557 
558 
559 void ImageLabel::removeEffects()
560 {
561  if (imageEffect != 0) {
562  delete imageEffect;
563  imageEffect = 0;
564  }
565  applyTransformations();
566 }
567 
568 void ImageLabel::intensity(float ratio, int millisec)
569 {
570  if (imageEffect != 0) {
571  delete imageEffect;
572  imageEffect = 0;
573  }
574  //QPixmapEffect::intensity(pixmap, ratio);
575  imageEffect = new Intensity(this, ratio, millisec);
576  applyTransformations();
577 }
578 
579 void ImageLabel::channelIntensity(float ratio, QString channel, int millisec)
580 {
581  if (imageEffect != 0) {
582  delete imageEffect;
583  imageEffect = 0;
584  }
585  //QPixmapEffect::channelIntensity(pixmap, ratio, rgbChannel);
586  imageEffect = new ChannelIntensity(this, ratio, channel, millisec);
587  applyTransformations();
588 }
589 
590 void ImageLabel::toGray(int millisec)
591 {
592  if (imageEffect != 0) {
593  delete imageEffect;
594  imageEffect = 0;
595  }
596  //QPixmapEffect::toGray(pixmap);
597  imageEffect = new ToGray(this, millisec);
598  applyTransformations();
599 }
600 
601 void ImageLabel::toAlpha(const QColor &alphaColor, int alpha, int millisec)
602 {
603  if (imageEffect != 0) {
604  delete imageEffect;
605  imageEffect = 0;
606  }
607 
608  imageEffect = new ToAlpha(this, alphaColor, alpha, millisec);
609  applyTransformations();
610 }
611 
612 void ImageLabel::slotEffectExpired()
613 {
614  removeEffects();
615  m_karamba->update();
616 }
617 
618 void ImageLabel::attachClickArea(QString leftMouseButton,
619  QString middleMouseButton,
620  QString rightMouseButton)
621 {
622  m_leftMouseButtonAction = leftMouseButton;
623  m_middleMouseButtonAction = middleMouseButton;
624  m_rightMouseButtonAction = rightMouseButton;
625 
626  setAcceptedMouseButtons(Qt::LeftButton | Qt::MidButton | Qt::RightButton);
627  setCursor(QCursor(Qt::PointingHandCursor));
628 }
629 
630 void ImageLabel::setPixel(const QPoint &point, const QColor &pixel)
631 {
632  QPainter painter(&pixmap);
633  painter.setPen(pixel);
634  painter.drawPoint(point);
635 }
636 
637 void ImageLabel::repaintSvg()
638 {
639  QPainter painter(&pixmap);
640  pixmap.fill(Qt::transparent);
641 
642  if (m_element.isEmpty()) {
643  m_renderer->render(&painter);
644  } else {
645  m_renderer->render(&painter, m_element);
646  }
647 
648  update();
649 }
650 
651 bool ImageLabel::enableAnimation(bool enable)
652 {
653  if (!m_renderer || !m_renderer->animated()) {
654  return false;
655  }
656 
657  if (enable && !m_connected) {
658  m_connected = connect(m_renderer, SIGNAL(repaintNeeded()), this, SLOT(repaintSvg()));
659  } else if (!enable && m_connected) {
660  m_connected = !disconnect(m_renderer, SIGNAL(repaintNeeded()), this, SLOT(repaintSvg()));
661  }
662 
663  return true;
664 }
665 
666 bool ImageLabel::animationEnabled() const
667 {
668  return m_connected;
669 }
670 
671 bool ImageLabel::drawElement(const QString &element)
672 {
673  if (element.isEmpty()) {
674  m_element.clear();
675 
676  repaintSvg();
677 
678  return true;
679  }
680 
681  if (m_renderer && m_renderer->elementExists(element)) {
682  m_element = element;
683 
684  repaintSvg();
685 
686  return true;
687  }
688 
689  return false;
690 }
691 
692 QString ImageLabel::elementDrawn() const
693 {
694  return m_element;
695 }
696 
697 #include "imagelabel.moc"
ToAlpha::ToAlpha
ToAlpha(ImageLabel *, const QColor &alphaColor, int alpha, int millisec)
Definition: meters/imagelabel.cpp:119
ImageLabel::attachClickArea
void attachClickArea(QString leftMouseButton, QString middleMouseButton, QString rightMouseButton)
Definition: meters/imagelabel.cpp:618
ImageLabel::animationEnabled
bool animationEnabled() const
Definition: meters/imagelabel.cpp:666
ImageLabel::paint
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
Definition: meters/imagelabel.cpp:375
Meter::isEnabled
bool isEnabled() const
Definition: meters/meter.cpp:169
ToAlpha
Definition: meters/imagelabel.h:96
ImageLabel::mouseEvent
bool mouseEvent(QEvent *e)
Definition: meters/imagelabel.cpp:396
ImageLabel::ImageLabel
ImageLabel(Karamba *k, int ix, int iy, int iw, int ih)
Definition: meters/imagelabel.cpp:139
ToGray::apply
QPixmap apply(QPixmap pixmap)
Definition: meters/imagelabel.cpp:111
Meter::getY
virtual int getY() const
Definition: meters/meter.cpp:69
ChannelIntensity
Definition: meters/imagelabel.h:74
ImageLabel::toAlpha
void toAlpha(const QColor &alphaColor, int alpha, int millisec)
Definition: meters/imagelabel.cpp:601
ToAlpha::apply
QPixmap apply(QPixmap pixmap)
Definition: meters/imagelabel.cpp:122
Effect::myImage
ImageLabel * myImage
Definition: meters/imagelabel.h:55
imagelabel.h
ImageLabel::channelIntensity
void channelIntensity(float ratio, QString channel, int millisec)
Definition: meters/imagelabel.cpp:579
QWidget
ImageLabel::~ImageLabel
~ImageLabel()
Definition: meters/imagelabel.cpp:165
ImageLabel::elementDrawn
QString elementDrawn() const
Definition: meters/imagelabel.cpp:692
ImageLabel::scale
void scale(int, int)
Definition: meters/imagelabel.cpp:202
ImageLabel::intensity
void intensity(float ratio, int millisec)
Definition: meters/imagelabel.cpp:568
ImageLabel::parseImages
void parseImages(const QString &fn, const QString &fn_roll, int, int, int, int)
Definition: meters/imagelabel.cpp:434
Meter::setHeight
virtual void setHeight(int)
Definition: meters/meter.cpp:102
ChannelIntensity::ChannelIntensity
ChannelIntensity(ImageLabel *, float r, const QString &c, int millisec)
Definition: meters/imagelabel.cpp:82
ThemeFile::isThemeFile
bool isThemeFile(const QString &filename) const
Definition: themefile.cpp:424
Meter::show
virtual void show()
Definition: meters/meter.cpp:179
ChannelIntensity::apply
QPixmap apply(QPixmap pixmap)
Definition: meters/imagelabel.cpp:100
Karamba::theme
const ThemeFile & theme() const
Definition: karamba.cpp:2071
Karamba
Definition: karamba.h:52
ImageLabel::hide
virtual void hide()
Definition: meters/imagelabel.cpp:187
ImageLabel::enableAnimation
bool enableAnimation(bool enable)
Definition: meters/imagelabel.cpp:651
Intensity
Definition: meters/imagelabel.h:61
Meter::m_hidden
bool m_hidden
Definition: meters/meter.h:78
Effect::millisec
int millisec
Definition: meters/imagelabel.h:57
ImageLabel::allowClick
void allowClick(bool)
Definition: meters/imagelabel.cpp:424
ImageLabel::setPixel
void setPixel(const QPoint &point, const QColor &pixel)
Definition: meters/imagelabel.cpp:630
Meter::setWidth
virtual void setWidth(int)
Definition: meters/meter.cpp:88
ImageLabel::background
int background
Definition: meters/imagelabel.h:139
Meter::hide
virtual void hide()
Definition: meters/meter.cpp:186
ImageLabel::rolloverImage
void rolloverImage(QGraphicsSceneHoverEvent *e)
Definition: meters/imagelabel.cpp:519
ImageLabel::pixmapLoaded
void pixmapLoaded()
ImageLabel::rotate
void rotate(int)
Definition: meters/imagelabel.cpp:193
ImageLabel::setTooltip
void setTooltip(QString txt)
Definition: meters/imagelabel.cpp:553
ImageLabel::drawElement
bool drawElement(const QString &element)
Definition: meters/imagelabel.cpp:671
ImageLabel::show
virtual void show()
Definition: meters/imagelabel.cpp:181
Intensity::Intensity
Intensity(ImageLabel *, float r, int millisec)
Definition: meters/imagelabel.cpp:67
Effect::startTimer
void startTimer()
Definition: meters/imagelabel.cpp:58
ToGray
Definition: meters/imagelabel.h:87
Meter::m_karamba
Karamba * m_karamba
Definition: meters/meter.h:84
Meter::setX
virtual void setX(int)
Definition: meters/meter.cpp:60
ImageLabel::setValue
void setValue(const QString &imagePath)
Definition: meters/imagelabel.cpp:299
Meter::setEnabled
void setEnabled(bool enable)
Definition: meters/meter.cpp:174
Effect::Effect
Effect(ImageLabel *, int millisec)
Definition: meters/imagelabel.cpp:42
ImageLabel::setBackground
void setBackground(int b)
Definition: meters/imagelabel.cpp:514
ImageLabel::toGray
void toGray(int millisec)
Definition: meters/imagelabel.cpp:590
ToGray::ToGray
ToGray(ImageLabel *, int millisec)
Definition: meters/imagelabel.cpp:108
ImageLabel::removeEffects
void removeEffects()
Definition: meters/imagelabel.cpp:559
ThemeFile::path
const QString & path() const
Definition: themefile.cpp:571
Meter
Definition: meters/meter.h:23
Meter::getX
virtual int getX() const
Definition: meters/meter.cpp:55
ImageLabel::smoothScale
void smoothScale(int, int)
Definition: meters/imagelabel.cpp:212
karambaapp.h
Intensity::apply
QPixmap apply(QPixmap pixmap)
Definition: meters/imagelabel.cpp:75
Effect::~Effect
virtual ~Effect()
Definition: meters/imagelabel.cpp:55
ImageLabel::clickable
bool clickable()
Definition: meters/imagelabel.cpp:429
ImageLabel::removeImageTransformations
void removeImageTransformations()
Definition: meters/imagelabel.cpp:231
ThemeFile::readThemeFile
QByteArray readThemeFile(const QString &filename) const
Definition: themefile.cpp:443
Meter::setY
virtual void setY(int)
Definition: meters/meter.cpp:74
Effect
Definition: meters/imagelabel.h:40
ImageLabel
Definition: meters/imagelabel.h:108
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 23:07:19 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

superkaramba

Skip menu "superkaramba"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeutils API Reference

Skip menu "kdeutils API Reference"
  • ark
  • filelight
  • kcalc
  • kcharselect
  • kdf
  • kfloppy
  • kgpg
  • kremotecontrol
  • ktimer
  • kwallet
  • superkaramba
  • sweeper

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