Ignore:
Timestamp:
Feb 11, 2010, 11:19:06 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.1 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/graphicsview/qgraphicslayout_p.h

    r2 r561  
    22**
    33** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    4 ** Contact: Qt Software Information (qt-info@nokia.com)
     4** All rights reserved.
     5** Contact: Nokia Corporation (qt-info@nokia.com)
    56**
    67** This file is part of the QtGui module of the Qt Toolkit.
     
    2122** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    2223**
    23 ** In addition, as a special exception, Nokia gives you certain
    24 ** additional rights. These rights are described in the Nokia Qt LGPL
    25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
    26 ** package.
     24** In addition, as a special exception, Nokia gives you certain additional
     25** rights.  These rights are described in the Nokia Qt LGPL Exception
     26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    2727**
    2828** GNU General Public License Usage
     
    3434** met: http://www.gnu.org/copyleft/gpl.html.
    3535**
    36 ** If you are unsure which license is appropriate for your use, please
    37 ** contact the sales department at qt-sales@nokia.com.
     36** If you have questions regarding the use of this file, please contact
     37** Nokia at qt-info@nokia.com.
    3838** $QT_END_LICENSE$
    3939**
     
    4848//
    4949// This file is not part of the Qt API.  It exists for the convenience
    50 // of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp.  This header
    51 // file may change from version to version without notice, or even be removed.
     50// of other Qt classes.  This header file may change from version to
     51// version without notice, or even be removed.
    5252//
    5353// We mean it.
     
    6161#include "qgraphicslayoutitem_p.h"
    6262#include <QtGui/qstyle.h>
     63#include <QtGui/qwidget.h>
     64#include <QtGui/qstyleoption.h>
    6365
    6466QT_BEGIN_NAMESPACE
     
    7678}
    7779#endif
     80
     81
     82class QLayoutStyleInfo
     83{
     84public:
     85    inline QLayoutStyleInfo() { invalidate(); }
     86    inline QLayoutStyleInfo(QStyle *style, QWidget *widget)
     87        : m_valid(true), m_style(style), m_widget(widget)
     88    {
     89        Q_ASSERT(style);
     90        if (widget) //###
     91            m_styleOption.initFrom(widget);
     92        m_defaultSpacing[0] = style->pixelMetric(QStyle::PM_LayoutHorizontalSpacing);
     93        m_defaultSpacing[1] = style->pixelMetric(QStyle::PM_LayoutVerticalSpacing);
     94    }
     95
     96    inline void invalidate() { m_valid = false; m_style = 0; m_widget = 0; }
     97
     98    inline QStyle *style() const { return m_style; }
     99    inline QWidget *widget() const { return m_widget; }
     100
     101    inline bool operator==(const QLayoutStyleInfo &other)
     102        { return m_style == other.m_style && m_widget == other.m_widget; }
     103    inline bool operator!=(const QLayoutStyleInfo &other)
     104        { return !(*this == other); }
     105
     106    inline void setDefaultSpacing(Qt::Orientation o, qreal spacing){
     107        if (spacing >= 0)
     108            m_defaultSpacing[o - 1] = spacing;
     109    }
     110
     111    inline qreal defaultSpacing(Qt::Orientation o) const {
     112        return m_defaultSpacing[o - 1];
     113    }
     114
     115    inline qreal perItemSpacing(QSizePolicy::ControlType control1,
     116                                  QSizePolicy::ControlType control2,
     117                                  Qt::Orientation orientation) const
     118    {
     119        Q_ASSERT(style());
     120        return style()->layoutSpacing(control1, control2, orientation, &m_styleOption, widget());
     121    }
     122private:
     123    bool m_valid;
     124    QStyle *m_style;
     125    QWidget *m_widget;
     126    QStyleOption m_styleOption;
     127    qreal m_defaultSpacing[2];
     128};
    78129
    79130class Q_AUTOTEST_EXPORT QGraphicsLayoutPrivate : public QGraphicsLayoutItemPrivate
Note: See TracChangeset for help on using the changeset viewer.