Ejemplo n.º 1
0
void K3b::WidgetShowEffect::slideMask()
{
    if( m_bShow ) {
        m_widget->move( 0, m_widget->parentWidget()->height() - m_offset );

        m_offset++;
        if( m_offset > m_widget->height() ) {
            killTimer( m_timerId );

            emit widgetShown( m_widget );

            if( m_deleteSelf )
                deleteLater();
        }
    }
    else {
        m_offset--;
        m_widget->move( 0, m_widget->parentWidget()->height() - m_offset );

        if( m_offset < 0 ) {
            // finally hide the widget
            emit widgetHidden( m_widget );
            if( !m_bEffectOnly )
                m_widget->hide();

            if( m_deleteSelf )
                deleteLater();
        }
    }
}
Ejemplo n.º 2
0
KateMessageWidget::KateMessageWidget(QWidget* parent, bool applyFadeEffect)
  : QWidget(parent)
  , m_animation(0)
  , m_autoHideTimer(new QTimer(this))
  , m_autoHideTime(-1)
{
  QVBoxLayout* l = new QVBoxLayout();
  l->setMargin(0);

  m_messageWidget = new KMessageWidget(this);
  m_messageWidget->setCloseButtonVisible(false);

  l->addWidget(m_messageWidget);
  setLayout(l);

  // tell the widget to always use the minimum size.
  setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);

  // install event filter so we catch the end of the hide animation
  m_messageWidget->installEventFilter(this);

  // by default, hide widgets
  m_messageWidget->hide();
  hide();

  // create animation controller, and connect widgetHidden() to showNextMessage()
  m_animation = new KateAnimation(m_messageWidget, applyFadeEffect ? KateAnimation::FadeEffect : KateAnimation::GrowEffect);
  connect(m_animation, SIGNAL(widgetHidden()), this, SLOT(showNextMessage()));

  // setup autoHide timer details
  m_autoHideTimer->setSingleShot(true);

  // KMessageWidget::linkHovered() is new in KDE 4.11
  connect(m_messageWidget, SIGNAL(linkHovered(const QString&)), this, SLOT(linkHovered(const QString&)));
}
Ejemplo n.º 3
0
void K3b::WidgetShowEffect::dissolveMask()
{
    if( m_bShow ) {
        m_widget->repaint();
        QPainter maskPainter(&m_mask);

        m_mask.fill(Qt::black);

        maskPainter.setBrush(Qt::white);
        maskPainter.setPen(Qt::white);
        maskPainter.drawRect( m_mask.rect() );

        m_dissolveSize += m_dissolveDelta;

        if( m_dissolveSize > 0 ) {
            //FIXME kde4
            //maskPainter.setRasterOp( Qt::EraseROP );

            int x, y, s;
            const int size = 16;

            for( y = 0; y < m_widget->height() + size; y += size ) {
                x = m_widget->width();
                s = m_dissolveSize * x / 128;

                for( ; x > size; x -= size, s -= 2 ) {
                    if( s < 0 )
                        break;

                    maskPainter.drawEllipse(x - s / 2, y - s / 2, s, s);
                }
            }
        }
        else if( m_dissolveSize < 0 ) {
            m_dissolveDelta = 1;
            killTimer( m_timerId );

            emit widgetShown( m_widget );

            if( m_deleteSelf )
                deleteLater();
        }

        m_widget->setMask( m_mask );
    }

    else {
        // just hide it for now
        emit widgetHidden( m_widget );
        if( !m_bEffectOnly )
            m_widget->hide();

        if( m_deleteSelf )
            deleteLater();
    }
}
Ejemplo n.º 4
0
void KateFadeEffect::animationFinished()
{
  // fading finished: remove graphics effect, deletes the effect as well
  m_widget->setGraphicsEffect(0);
  Q_ASSERT(!m_effect);

  if (m_timeLine->direction() == QTimeLine::Backward) {
    m_widget->hide();
    emit widgetHidden();
  }
}
Ejemplo n.º 5
0
void MainWidget::hide()
{
    QWidget::hide();
    emit widgetHidden();
}