Utils: Simplify tooltip architecture and cleanup

This mainly merges TipContents into the the actual
tooltip labels.

Change-Id: I64b576c987bce034842f7e3f324b81595dae0713
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
This commit is contained in:
hjk
2014-12-13 00:18:59 +01:00
parent 8815990903
commit e8396f4c8d
10 changed files with 156 additions and 315 deletions

View File

@@ -31,13 +31,13 @@
#ifndef TIPS_H
#define TIPS_H
#include "tipcontents.h"
#include "../utils_global.h"
#include <QSharedPointer>
#include <QLabel>
#include <QPixmap>
QT_FORWARD_DECLARE_CLASS(QVBoxLayout)
#include <QSharedPointer>
#include <QVariant>
#include <QVBoxLayout>
#ifndef Q_MOC_RUN
namespace Utils {
@@ -48,68 +48,68 @@ namespace Internal {
class QTipLabel : public QLabel
{
Q_OBJECT
protected:
public:
QTipLabel(QWidget *parent);
public:
virtual ~QTipLabel();
void setContent(const TipContent &content);
const TipContent &content() const { return m_tipContent; }
virtual void setContent(const QVariant &content) = 0;
virtual bool isInteractive() const { return false; }
virtual int showTime() const = 0;
virtual void configure(const QPoint &pos, QWidget *w) = 0;
virtual bool canHandleContentReplacement(const TipContent &content) const = 0;
bool isInteractive() const;
private:
TipContent m_tipContent;
virtual bool canHandleContentReplacement(int typeId) const = 0;
virtual bool equals(int typeId, const QVariant &other) const = 0;
};
class TextTip : public QTipLabel
{
Q_OBJECT
public:
TextTip(QWidget *parent);
virtual ~TextTip();
virtual void setContent(const QVariant &content);
virtual void configure(const QPoint &pos, QWidget *w);
virtual bool canHandleContentReplacement(const TipContent &content) const;
private:
virtual bool canHandleContentReplacement(int typeId) const;
virtual int showTime() const;
virtual bool equals(int typeId, const QVariant &other) const;
virtual void paintEvent(QPaintEvent *event);
virtual void resizeEvent(QResizeEvent *event);
private:
QString m_text;
};
class ColorTip : public QTipLabel
{
Q_OBJECT
public:
ColorTip(QWidget *parent);
virtual ~ColorTip();
virtual void setContent(const QVariant &content);
virtual void configure(const QPoint &pos, QWidget *w);
virtual bool canHandleContentReplacement(const TipContent &content) const;
private:
virtual bool canHandleContentReplacement(int typeId) const;
virtual int showTime() const { return 4000; }
virtual bool equals(int typeId, const QVariant &other) const;
virtual void paintEvent(QPaintEvent *event);
QPixmap m_tilePixMap;
private:
QColor m_color;
QPixmap m_tilePixmap;
};
class WidgetTip : public QTipLabel
{
Q_OBJECT
public:
explicit WidgetTip(QWidget *parent = 0);
virtual void configure(const QPoint &pos, QWidget *w);
virtual bool canHandleContentReplacement(const TipContent &content) const;
public slots:
void pinToolTipWidget(QWidget *parent);
virtual void setContent(const QVariant &content);
virtual void configure(const QPoint &pos, QWidget *w);
virtual bool canHandleContentReplacement(int typeId) const;
virtual int showTime() const { return 30000; }
virtual bool equals(int typeId, const QVariant &other) const;
virtual bool isInteractive() const { return true; }
private:
QWidget *m_widget;
QVBoxLayout *m_layout;
};