Remove libqxt from our svn. We don't depend on it anymore thanks to
[quassel.git] / src / contrib / libqxt-2007-10-24 / src / gui / qxttabwidget.cpp
diff --git a/src/contrib/libqxt-2007-10-24/src/gui/qxttabwidget.cpp b/src/contrib/libqxt-2007-10-24/src/gui/qxttabwidget.cpp
deleted file mode 100644 (file)
index 3a5b4e3..0000000
+++ /dev/null
@@ -1,397 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) Qxt Foundation. Some rights reserved.
-**
-** This file is part of the QxtGui module of the Qt eXTension library
-**
-** This library is free software; you can redistribute it and/or modify it
-** under the terms of th Common Public License, version 1.0, as published by
-** IBM.
-**
-** This file is provided "AS IS", without WARRANTIES OR CONDITIONS OF ANY
-** KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
-** WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR
-** FITNESS FOR A PARTICULAR PURPOSE.
-**
-** You should have received a copy of the CPL along with this file.
-** See the LICENSE file and the cpl1.0.txt file included with the source
-** distribution for more information. If you did not receive a copy of the
-** license, contact the Qxt Foundation.
-**
-** <http://libqxt.sourceforge.net>  <foundation@libqxt.org>
-**
-****************************************************************************/
-#include "qxttabwidget.h"
-#include <QContextMenuEvent>
-#include <QApplication>
-#include <QTabBar>
-#include <QAction>
-#include <QMenu>
-
-typedef QList<QAction*> Actions;
-
-class QxtTabWidgetPrivate : public QxtPrivate<QxtTabWidget>
-{
-public:
-    QXT_DECLARE_PUBLIC(QxtTabWidget);
-
-    QxtTabWidgetPrivate();
-    int tabIndexAt(const QPoint& pos) const;
-
-    QList<Actions> actions;
-    Qt::ContextMenuPolicy policy;
-};
-
-QxtTabWidgetPrivate::QxtTabWidgetPrivate() : policy(Qt::DefaultContextMenu)
-{}
-
-int QxtTabWidgetPrivate::tabIndexAt(const QPoint& pos) const
-{
-    const int count = qxt_p().count();
-    const QTabBar* tabBar = qxt_p().tabBar();
-    for (int i = 0; i < count; ++i)
-        if (tabBar->tabRect(i).contains(pos))
-            return i;
-    return -1;
-}
-
-/*!
-    \class QxtTabWidget QxtTabWidget
-    \ingroup QxtGui
-    \brief An extended QTabWidget.
-
-    QxtTabWidget provides some convenience for handling tab specific context menus.
-
-    Example usage:
-    \code
-    QxtTabWidget* tabWidget = new QxtTabWidget();
-    tabWidget->addTab(tab0, "1");
-    tabWidget->addTab(tab1, "2");
-
-    QList<QAction*> actions0;
-    actions0 << new QAction("Quisque", tab0) << new QAction("Aenean", tab0);
-    QList<QAction*> actions1;
-    actions1 << new QAction("Phasellus", tab1) << new QAction("Maecenas", tab1);
-
-    tabWidget->setTabContextMenuPolicy(Qt::ActionsContextMenu);
-    tabWidget->addTabActions(0, actions0);
-    tabWidget->addTabActions(1, actions1);
-    \endcode
-
-    \image html qxttabwidget.png "QxtTabWidget in WindowsXP style."
-
-    \note http://www.trolltech.com/developer/task-tracker/index_html?method=entry&id=137891
- */
-
-/*!
-    \fn QxtTabWidget::tabContextMenuRequested(int index, const QPoint& globalPos)
-
-    This signal is emitted whenever the context menu is requested over
-    tab at \a index at \a globalPos.
- */
-
-/*!
-    Constructs a new QxtTabWidget with \a parent.
- */
-QxtTabWidget::QxtTabWidget(QWidget* parent) : QTabWidget(parent)
-{
-    QXT_INIT_PRIVATE(QxtTabWidget);
-}
-
-/*!
-    Destructs the tab widget.
- */
-QxtTabWidget::~QxtTabWidget()
-{}
-
-/*!
-    \property QxtTabWidget::tabContextMenuPolicy
-    \brief This property holds how the tab specific context menus are handled.
-
-    The default value of this property is \b Qt::DefaultContextMenu,
-    which means that the tabContextMenuEvent() handler is called.
-    Other values are \b Qt::NoContextMenu, \b Qt::PreventContextMenu
-    (since Qt 4.2), \b Qt::ActionsContextMenu, and \b Qt::CustomContextMenu.
-    With \b Qt::CustomContextMenu, the signal tabContextMenuRequested() is
-    emitted.
-
-    \sa tabContextMenuEvent(), tabContextMenuRequested(), tabActions()
- */
-Qt::ContextMenuPolicy QxtTabWidget::tabContextMenuPolicy() const
-{
-    return qxt_d().policy;
-}
-
-void QxtTabWidget::setTabContextMenuPolicy(Qt::ContextMenuPolicy policy)
-{
-    qxt_d().policy = policy;
-}
-
-/*!
-    Appends the \a action to the list of actions of the
-    tab at \a index.
-
-    \sa removeTabAction(), insertTabAction(), tabActions()
- */
-void QxtTabWidget::addTabAction(int index, QAction* action)
-{
-    insertTabAction(index, 0, action);
-}
-
-/*!
-    This convenience function creates a new action with \a text. The function
-    adds the newly created action to the list of actions of the tab at
-    \a index, and returns it.
-
-    \sa addTabAction()
- */
-QAction* QxtTabWidget::addTabAction(int index, const QString& text)
-{
-    return addTabAction(index, QIcon(), text, 0, 0);
-}
-
-/*!
-    This convenience function creates a new action with \a icon and \a text.
-    The function adds the newly created action to the list of actions of the
-    tab at \a index, and returns it.
-
-    \sa addTabAction()
- */
-QAction* QxtTabWidget::addTabAction(int index, const QIcon& icon, const QString& text)
-{
-    return addTabAction(index, icon, text, 0, 0);
-}
-
-/*!
-    This convenience function creates a new action with \a text and
-    an optional \a shortcut. The action's triggered() signal is
-    connected to the \a receiver's \a member slot. The function adds
-    the newly created action to the list of actions of the tab at
-    \a index, and returns it.
-
-    \note In order to make it possible for the shortcut to work even
-    when the context menu is not open, the action must be added to
-    a visible widget. The corresponding tab is a good alternative.
-
-    \code
-    QWidget* tab = createNewTab();
-    tabWidget->addTab(tab, title);
-    QAction* action = tabWidget->addTabAction(index, tr("Close"), this, SLOT(closeCurrentTab()), tr("Ctrl+W"));
-    tab->addAction(act);
-    \endcode
-
-    \sa addTabAction(), QWidget::addAction()
- */
-QAction* QxtTabWidget::addTabAction(int index, const QString& text, const QObject* receiver, const char* member, const QKeySequence& shortcut)
-{
-    return addTabAction(index, QIcon(), text, receiver, member, shortcut);
-}
-
-/*!
-    This convenience function creates a new action with \a icon, \a text
-    and an optional \a shortcut. The action's triggered() signal is connected
-    to the \a receiver's \a member slot. The function adds the newly created
-    action to the list of actions of the tab at \a index, and returns it.
-
-    \sa addTabAction()
- */
-QAction* QxtTabWidget::addTabAction(int index, const QIcon& icon, const QString& text, const QObject* receiver, const char* member, const QKeySequence& shortcut)
-{
-    QAction* action = new QAction(icon, text, this);
-    addTabAction(index, action);
-    if (receiver && member)
-        connect(action, SIGNAL(triggered()), receiver, member);
-    action->setShortcut(shortcut);
-    return action;
-}
-
-/*!
-    Appends the \a actions to the list of actions of the
-    tab at \a index.
-
-    \sa removeTabAction(), addTabAction()
- */
-void QxtTabWidget::addTabActions(int index, QList<QAction*> actions)
-{
-    foreach (QAction* action, actions)
-    {
-        insertTabAction(index, 0, action);
-    }
-}
-
-/*!
-    Clears the list of actions of the tab at \a index.
-
-    \note Only actions owned by the tab widget are deleted.
-
-    \sa removeTabAction(), addTabAction()
- */
-void QxtTabWidget::clearTabActions(int index)
-{
-    Q_ASSERT(index >= 0 && index < qxt_d().actions.count());
-
-    while (qxt_d().actions[index].count())
-    {
-        QAction* action = qxt_d().actions[index].last();
-        removeTabAction(index, action);
-        if (action->parent() == this)
-            delete action;
-    }
-}
-
-/*!
-    Inserts the \a action to the list of actions of the
-    tab at \a index, before the action \a before. It appends
-    the action if \a before is \c 0.
-
-    \sa removeTabAction(), addTabAction(), tabContextMenuPolicy, tabActions()
- */
-void QxtTabWidget::insertTabAction(int index, QAction* before, QAction* action)
-{
-    Q_ASSERT(index >= 0 && index < qxt_d().actions.count());
-
-    if (!action)
-    {
-        qWarning("QxtTabWidget::insertTabAction: Attempt to insert a null action");
-        return;
-    }
-
-    const Actions& actions = qxt_d().actions.at(index);
-    if (actions.contains(action))
-        removeTabAction(index, action);
-
-    int pos = actions.indexOf(before);
-    if (pos < 0)
-    {
-        before = 0;
-        pos = actions.count();
-    }
-    qxt_d().actions[index].insert(pos, action);
-
-    QActionEvent e(QEvent::ActionAdded, action, before);
-    QApplication::sendEvent(this, &e);
-}
-
-/*!
-    Inserts the \a actions to the list of actions of the
-    tab at \a index, before the action \a before. It appends
-    the action if \a before is \c 0.
-
-    \sa removeAction(), QMenu, insertAction(), contextMenuPolicy
- */
-void QxtTabWidget::insertTabActions(int index, QAction* before, QList<QAction*> actions)
-{
-    foreach (QAction* action, actions)
-    {
-        insertTabAction(index, before, action);
-    }
-}
-
-/*!
-    Removes the action \a action from the list of actions of the
-    tab at \a index.
-
-    \note The removed action is not deleted.
-
-    \sa insertTabAction(), tabActions(), insertTabAction()
- */
-void QxtTabWidget::removeTabAction(int index, QAction* action)
-{
-    Q_ASSERT(index >= 0 && index < qxt_d().actions.count());
-
-    if (!action)
-    {
-        qWarning("QxtTabWidget::removeTabAction: Attempt to remove a null action");
-        return;
-    }
-
-    if (qxt_d().actions[index].removeAll(action))
-    {
-        QActionEvent e(QEvent::ActionRemoved, action);
-        QApplication::sendEvent(this, &e);
-    }
-}
-
-/*!
-    Returns the (possibly empty) list of actions for the
-    tab at \a index.
-
-    \sa tabContextMenuPolicy, insertTabAction(), removeTabAction()
- */
-QList<QAction*> QxtTabWidget::tabActions(int index) const
-{
-    Q_ASSERT(index >= 0 && index < qxt_d().actions.count());
-    return qxt_d().actions.at(index);
-}
-
-void QxtTabWidget::tabInserted(int index)
-{
-    Q_ASSERT(index >= 0 && index <= qxt_d().actions.count());
-    qxt_d().actions.insert(index, Actions());
-}
-
-void QxtTabWidget::tabRemoved(int index)
-{
-    Q_ASSERT(index >= 0 && index < qxt_d().actions.count());
-    qxt_d().actions.removeAt(index);
-}
-
-void QxtTabWidget::contextMenuEvent(QContextMenuEvent* event)
-{
-    const QPoint& pos = event->pos();
-    if (!tabBar()->geometry().contains(pos))
-        return QTabWidget::contextMenuEvent(event);
-
-    const int index = qxt_d().tabIndexAt(event->pos());
-    switch (qxt_d().policy)
-    {
-    case Qt::NoContextMenu:
-        event->ignore();
-        break;
-
-#if QT_VERSION >= 0x040200
-    case Qt::PreventContextMenu:
-        event->accept();
-        break;
-#endif // QT_VERSION
-
-    case Qt::ActionsContextMenu:
-        if (index != -1 && qxt_d().actions.at(index).count())
-        {
-            QMenu::exec(qxt_d().actions.at(index), event->globalPos());
-        }
-        break;
-
-    case Qt::CustomContextMenu:
-        if (index != -1)
-        {
-            emit tabContextMenuRequested(index, event->globalPos());
-        }
-        break;
-
-    case Qt::DefaultContextMenu:
-    default:
-        if (index != -1)
-        {
-            tabContextMenuEvent(index, event);
-        }
-        break;
-    }
-}
-
-/*!
-    This event handler, for event \a event, can be reimplemented in a
-    subclass to receive context menu events for the tab at \a index.
-
-    The handler is called when \b tabContextMenuPolicy is
-    \b Qt::DefaultContextMenu.
-
-    The default implementation ignores the context menu event.
-
-    \sa tabContextMenuPolicy, tabContextMenuRequested()
- */
-void QxtTabWidget::tabContextMenuEvent(int index, QContextMenuEvent* event)
-{
-    Q_UNUSED(index);
-    event->ignore();
-}