forked from qt-creator/qt-creator
Stupid editor adding tabs instead of spaces...
This commit is contained in:
@@ -40,141 +40,141 @@
|
||||
using namespace Utils;
|
||||
|
||||
FadingPanel::FadingPanel(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
m_opacityEffect(new QGraphicsOpacityEffect)
|
||||
QWidget(parent),
|
||||
m_opacityEffect(new QGraphicsOpacityEffect)
|
||||
{
|
||||
m_opacityEffect->setOpacity(0);
|
||||
setGraphicsEffect(m_opacityEffect);
|
||||
m_opacityEffect->setOpacity(0);
|
||||
setGraphicsEffect(m_opacityEffect);
|
||||
|
||||
// Workaround for issue with QGraphicsEffect. GraphicsEffect
|
||||
// currently clears with Window color. Remove if flickering
|
||||
// no longer occurs on fade-in
|
||||
QPalette pal;
|
||||
pal.setBrush(QPalette::All, QPalette::Window, Qt::transparent);
|
||||
setPalette(pal);
|
||||
// Workaround for issue with QGraphicsEffect. GraphicsEffect
|
||||
// currently clears with Window color. Remove if flickering
|
||||
// no longer occurs on fade-in
|
||||
QPalette pal;
|
||||
pal.setBrush(QPalette::All, QPalette::Window, Qt::transparent);
|
||||
setPalette(pal);
|
||||
}
|
||||
|
||||
void FadingPanel::setOpacity(qreal value)
|
||||
{
|
||||
m_opacityEffect->setOpacity(value);
|
||||
m_opacityEffect->setOpacity(value);
|
||||
}
|
||||
|
||||
void FadingPanel::fadeTo(float value)
|
||||
{
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(m_opacityEffect, "opacity");
|
||||
animation->setDuration(200);
|
||||
animation->setEndValue(value);
|
||||
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(m_opacityEffect, "opacity");
|
||||
animation->setDuration(200);
|
||||
animation->setEndValue(value);
|
||||
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
||||
}
|
||||
|
||||
DetailsButton::DetailsButton(QWidget *parent) : QAbstractButton(parent), m_fader(0)
|
||||
{
|
||||
setCheckable(true);
|
||||
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
||||
setText(tr("Details"));
|
||||
setCheckable(true);
|
||||
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
||||
setText(tr("Details"));
|
||||
}
|
||||
|
||||
QSize DetailsButton::sizeHint() const
|
||||
{
|
||||
// TODO: Adjust this when icons become available!
|
||||
return QSize(80, 22);
|
||||
// TODO: Adjust this when icons become available!
|
||||
return QSize(80, 22);
|
||||
}
|
||||
|
||||
bool DetailsButton::event(QEvent *e)
|
||||
{
|
||||
switch(e->type()) {
|
||||
case QEvent::Enter:
|
||||
{
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(this, "fader");
|
||||
animation->setDuration(200);
|
||||
animation->setEndValue(1.0);
|
||||
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
||||
}
|
||||
break;
|
||||
case QEvent::Leave:
|
||||
{
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(this, "fader");
|
||||
animation->setDuration(200);
|
||||
animation->setEndValue(0.0);
|
||||
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return QAbstractButton::event(e);
|
||||
}
|
||||
return false;
|
||||
switch(e->type()) {
|
||||
case QEvent::Enter:
|
||||
{
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(this, "fader");
|
||||
animation->setDuration(200);
|
||||
animation->setEndValue(1.0);
|
||||
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
||||
}
|
||||
break;
|
||||
case QEvent::Leave:
|
||||
{
|
||||
QPropertyAnimation *animation = new QPropertyAnimation(this, "fader");
|
||||
animation->setDuration(200);
|
||||
animation->setEndValue(0.0);
|
||||
animation->start(QAbstractAnimation::DeleteWhenStopped);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return QAbstractButton::event(e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void DetailsButton::paintEvent(QPaintEvent *e)
|
||||
{
|
||||
QWidget::paintEvent(e);
|
||||
QWidget::paintEvent(e);
|
||||
|
||||
QPainter p(this);
|
||||
QPainter p(this);
|
||||
#ifndef Q_WS_MAC
|
||||
// draw hover animation
|
||||
if(!isDown() && m_fader>0)
|
||||
p.fillRect(rect().adjusted(1, 1, -2, -2), QColor(255, 255, 255, int(m_fader*180)));
|
||||
// draw hover animation
|
||||
if(!isDown() && m_fader>0)
|
||||
p.fillRect(rect().adjusted(1, 1, -2, -2), QColor(255, 255, 255, int(m_fader*180)));
|
||||
#endif
|
||||
|
||||
if (isChecked()) {
|
||||
if (m_checkedPixmap.isNull() || m_checkedPixmap.size() != contentsRect().size())
|
||||
m_checkedPixmap = cacheRendering(contentsRect().size(), true);
|
||||
p.drawPixmap(contentsRect(), m_checkedPixmap);
|
||||
} else {
|
||||
if (m_uncheckedPixmap.isNull() || m_uncheckedPixmap.size() != contentsRect().size())
|
||||
m_uncheckedPixmap = cacheRendering(contentsRect().size(), false);
|
||||
p.drawPixmap(contentsRect(), m_uncheckedPixmap);
|
||||
}
|
||||
if (isDown()) {
|
||||
p.setPen(Qt::NoPen);
|
||||
p.setBrush(QColor(0, 0, 0, 20));
|
||||
p.drawRoundedRect(rect().adjusted(1, 1, -1, -1), 1, 1);
|
||||
}
|
||||
if (isChecked()) {
|
||||
if (m_checkedPixmap.isNull() || m_checkedPixmap.size() != contentsRect().size())
|
||||
m_checkedPixmap = cacheRendering(contentsRect().size(), true);
|
||||
p.drawPixmap(contentsRect(), m_checkedPixmap);
|
||||
} else {
|
||||
if (m_uncheckedPixmap.isNull() || m_uncheckedPixmap.size() != contentsRect().size())
|
||||
m_uncheckedPixmap = cacheRendering(contentsRect().size(), false);
|
||||
p.drawPixmap(contentsRect(), m_uncheckedPixmap);
|
||||
}
|
||||
if (isDown()) {
|
||||
p.setPen(Qt::NoPen);
|
||||
p.setBrush(QColor(0, 0, 0, 20));
|
||||
p.drawRoundedRect(rect().adjusted(1, 1, -1, -1), 1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
QPixmap DetailsButton::cacheRendering(const QSize &size, bool checked)
|
||||
{
|
||||
QLinearGradient lg;
|
||||
lg.setCoordinateMode(QGradient::ObjectBoundingMode);
|
||||
lg.setFinalStop(0, 1);
|
||||
QLinearGradient lg;
|
||||
lg.setCoordinateMode(QGradient::ObjectBoundingMode);
|
||||
lg.setFinalStop(0, 1);
|
||||
|
||||
QPixmap pixmap(size);
|
||||
pixmap.fill(Qt::transparent);
|
||||
QPainter p(&pixmap);
|
||||
p.setRenderHint(QPainter::Antialiasing, true);
|
||||
p.translate(0.5, 0.5);
|
||||
p.setPen(Qt::NoPen);
|
||||
if(!checked) {
|
||||
lg.setColorAt(0, QColor(0, 0, 0, 10));
|
||||
lg.setColorAt(1, QColor(0, 0, 0, 16));
|
||||
} else {
|
||||
lg.setColorAt(0, QColor(255, 255, 255, 0));
|
||||
lg.setColorAt(1, QColor(255, 255, 255, 50));
|
||||
}
|
||||
QPixmap pixmap(size);
|
||||
pixmap.fill(Qt::transparent);
|
||||
QPainter p(&pixmap);
|
||||
p.setRenderHint(QPainter::Antialiasing, true);
|
||||
p.translate(0.5, 0.5);
|
||||
p.setPen(Qt::NoPen);
|
||||
if(!checked) {
|
||||
lg.setColorAt(0, QColor(0, 0, 0, 10));
|
||||
lg.setColorAt(1, QColor(0, 0, 0, 16));
|
||||
} else {
|
||||
lg.setColorAt(0, QColor(255, 255, 255, 0));
|
||||
lg.setColorAt(1, QColor(255, 255, 255, 50));
|
||||
}
|
||||
|
||||
p.setBrush(lg);
|
||||
p.setPen(QColor(255,255,255,140));
|
||||
p.drawRoundedRect(1, 1, size.width()-3, size.height()-3, 1, 1);
|
||||
p.setPen(QPen(QColor(0, 0, 0, 40)));
|
||||
p.drawLine(0, 1, 0, size.height() - 2);
|
||||
if(checked)
|
||||
p.drawLine(1, size.height() - 1, size.width() - 1, size.height() - 1);
|
||||
p.setBrush(lg);
|
||||
p.setPen(QColor(255,255,255,140));
|
||||
p.drawRoundedRect(1, 1, size.width()-3, size.height()-3, 1, 1);
|
||||
p.setPen(QPen(QColor(0, 0, 0, 40)));
|
||||
p.drawLine(0, 1, 0, size.height() - 2);
|
||||
if(checked)
|
||||
p.drawLine(1, size.height() - 1, size.width() - 1, size.height() - 1);
|
||||
|
||||
p.setPen(palette().color(QPalette::Text));
|
||||
p.setPen(palette().color(QPalette::Text));
|
||||
|
||||
QRect textRect = p.fontMetrics().boundingRect(text());
|
||||
textRect.setWidth(textRect.width() + 15);
|
||||
textRect.moveCenter(rect().center());
|
||||
QRect textRect = p.fontMetrics().boundingRect(text());
|
||||
textRect.setWidth(textRect.width() + 15);
|
||||
textRect.moveCenter(rect().center());
|
||||
|
||||
p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text());
|
||||
p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text());
|
||||
|
||||
int arrowsize = 15;
|
||||
QStyleOption arrowOpt;
|
||||
arrowOpt.initFrom(this);
|
||||
QPalette pal = arrowOpt.palette;
|
||||
pal.setBrush(QPalette::All, QPalette::Text, QColor(0, 0, 0));
|
||||
arrowOpt.rect = QRect(size.width() - arrowsize - 6, height()/2-arrowsize/2, arrowsize, arrowsize);
|
||||
arrowOpt.palette = pal;
|
||||
style()->drawPrimitive(checked ? QStyle::PE_IndicatorArrowUp : QStyle::PE_IndicatorArrowDown, &arrowOpt, &p, this);
|
||||
return pixmap;
|
||||
int arrowsize = 15;
|
||||
QStyleOption arrowOpt;
|
||||
arrowOpt.initFrom(this);
|
||||
QPalette pal = arrowOpt.palette;
|
||||
pal.setBrush(QPalette::All, QPalette::Text, QColor(0, 0, 0));
|
||||
arrowOpt.rect = QRect(size.width() - arrowsize - 6, height()/2-arrowsize/2, arrowsize, arrowsize);
|
||||
arrowOpt.palette = pal;
|
||||
style()->drawPrimitive(checked ? QStyle::PE_IndicatorArrowUp : QStyle::PE_IndicatorArrowDown, &arrowOpt, &p, this);
|
||||
return pixmap;
|
||||
}
|
||||
|
@@ -42,34 +42,34 @@ namespace Utils {
|
||||
class QTCREATOR_UTILS_EXPORT FadingPanel : public QWidget
|
||||
{
|
||||
public:
|
||||
FadingPanel(QWidget *parent = 0);
|
||||
void setOpacity(qreal value);
|
||||
void fadeTo(float value);
|
||||
FadingPanel(QWidget *parent = 0);
|
||||
void setOpacity(qreal value);
|
||||
void fadeTo(float value);
|
||||
protected:
|
||||
QGraphicsOpacityEffect *m_opacityEffect;
|
||||
QGraphicsOpacityEffect *m_opacityEffect;
|
||||
};
|
||||
|
||||
class QTCREATOR_UTILS_EXPORT DetailsButton : public QAbstractButton
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(float fader READ fader WRITE setFader)
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(float fader READ fader WRITE setFader)
|
||||
|
||||
public:
|
||||
DetailsButton(QWidget *parent = 0);
|
||||
DetailsButton(QWidget *parent = 0);
|
||||
|
||||
QSize sizeHint() const;
|
||||
float fader() { return m_fader; }
|
||||
void setFader(float value) { m_fader = value; update(); }
|
||||
QSize sizeHint() const;
|
||||
float fader() { return m_fader; }
|
||||
void setFader(float value) { m_fader = value; update(); }
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *e);
|
||||
bool event(QEvent *e);
|
||||
void paintEvent(QPaintEvent *e);
|
||||
bool event(QEvent *e);
|
||||
|
||||
private:
|
||||
QPixmap cacheRendering(const QSize &size, bool checked);
|
||||
QPixmap m_checkedPixmap;
|
||||
QPixmap m_uncheckedPixmap;
|
||||
float m_fader;
|
||||
QPixmap cacheRendering(const QSize &size, bool checked);
|
||||
QPixmap m_checkedPixmap;
|
||||
QPixmap m_uncheckedPixmap;
|
||||
float m_fader;
|
||||
};
|
||||
} // namespace Utils
|
||||
#endif // DETAILSBUTTON_H
|
||||
|
Reference in New Issue
Block a user