#include <qxtscheduleview_p.h>
Signals | |
| void | geometryChanged (QxtScheduleInternalItem *item, QVector< QRect > oldGeometry) |
Public Member Functions | |
| QxtScheduleInternalItem (QxtScheduleView *parent, QModelIndex index, QVector< QRect > geometries=QVector< QRect >()) | |
| bool | setData (QVariant data, int role) |
| QVariant | data (int role) const |
| int | visualStartTableOffset () const |
| int | visualEndTableOffset () const |
| int | startTableOffset () const |
| int | endTableOffset () const |
| void | setStartTableOffset (int iOffset) |
| int | rows () const |
| void | setRowsUsed (int rows) |
| QxtScheduleView * | parentView () const |
| void | startMove () |
| void | resetMove () |
| void | stopMove () |
| bool | contains (const QPoint &pt) |
| void | setGeometry (const QVector< QRect > geo) |
| QModelIndex | modelIndex () const |
| void | setDirty (bool state=true) |
| QVector< QRect > | geometry () const |
Public Attributes | |
| bool | m_moving |
| bool | isDirty |
| int | m_iModelRow |
| QVector< QRect > | m_geometries |
| QVector< QRect > | m_SavedGeometries |
| QVector< QPixmap > | m_cachedParts |
Friends | |
| class | QxtScheduleView |
Definition at line 55 of file qxtscheduleview_p.h.
| QxtScheduleInternalItem::QxtScheduleInternalItem | ( | QxtScheduleView * | parent, |
| QModelIndex | index, | ||
| QVector< QRect > | geometries = QVector<QRect>() |
||
| ) |
Definition at line 556 of file qxtscheduleview_p.cpp.
References m_geometries, m_moving, rows(), and startTableOffset().
: QObject(parent), m_iModelRow(index.row()), m_geometries(geometries) { m_moving = false; if (parent) { if (index.isValid()) { if (m_geometries.empty()) { int startOffset = this->startTableOffset(); int endOffset = startOffset + this->rows() - 1; m_geometries = parent->qxt_d().calculateRangeGeometries(startOffset, endOffset); } } } }
| bool QxtScheduleInternalItem::contains | ( | const QPoint & | pt ) |
Definition at line 707 of file qxtscheduleview_p.cpp.
References m_geometries.
Referenced by QxtScheduleViewPrivate::internalItemAt().
{
QVectorIterator<QRect> iterator(this->m_geometries);
while (iterator.hasNext())
{
if (iterator.next().contains(pt))
return true;
}
return false;
}
| QVariant QxtScheduleInternalItem::data | ( | int | role ) | const |
Definition at line 621 of file qxtscheduleview_p.cpp.
References modelIndex().
Referenced by rows(), and startTableOffset().
{
if (modelIndex().isValid())
return modelIndex().data(role);
return QVariant();
}
| int QxtScheduleInternalItem::endTableOffset | ( | ) | const |
Definition at line 654 of file qxtscheduleview_p.cpp.
References rows(), and startTableOffset().
Referenced by visualEndTableOffset().
{
return startTableOffset() + rows() - 1;
}
| QVector< QRect > QxtScheduleInternalItem::geometry | ( | ) | const |
Definition at line 729 of file qxtscheduleview_p.cpp.
References m_geometries.
Referenced by QxtScheduleViewPrivate::itemGeometryChanged(), and visualStartTableOffset().
{
return this->m_geometries;
}
| void QxtScheduleInternalItem::geometryChanged | ( | QxtScheduleInternalItem * | item, |
| QVector< QRect > | oldGeometry | ||
| ) | [signal] |
Referenced by setGeometry().
| QModelIndex QxtScheduleInternalItem::modelIndex | ( | ) | const |
Definition at line 754 of file qxtscheduleview_p.cpp.
References m_iModelRow, QxtScheduleView::model(), and parentView().
Referenced by data(), QxtScheduleView::paintEvent(), qxtScheduleItemLessThan(), and setData().
{
QModelIndex indx;
if (parentView() && parentView()->model())
{
indx = parentView()->model()->index(this->m_iModelRow, 0);
}
return indx;
}
| QxtScheduleView * QxtScheduleInternalItem::parentView | ( | ) | const |
Definition at line 574 of file qxtscheduleview_p.cpp.
References QxtScheduleViewHeaderModel::parent().
Referenced by modelIndex(), rows(), setData(), setRowsUsed(), setStartTableOffset(), startTableOffset(), visualEndTableOffset(), and visualStartTableOffset().
{
return qobject_cast<QxtScheduleView *>(parent());
}
| void QxtScheduleInternalItem::resetMove | ( | ) |
Definition at line 741 of file qxtscheduleview_p.cpp.
References m_moving, m_SavedGeometries, and setGeometry().
{
this->setGeometry(this->m_SavedGeometries);
this->m_SavedGeometries.clear();
m_moving = false;
}
| int QxtScheduleInternalItem::rows | ( | ) | const |
Definition at line 676 of file qxtscheduleview_p.cpp.
References QxtScheduleView::currentZoomDepth(), data(), Qxt::ItemDurationRole, parentView(), and Qxt::Second.
Referenced by QxtScheduleView::dataChanged(), endTableOffset(), QxtScheduleViewPrivate::handleItemConcurrency(), and QxtScheduleInternalItem().
{
if (parentView() && parentView()->model())
{
int iNumSecs = data(Qxt::ItemDurationRole).toInt();
int zoomDepth = parentView()->currentZoomDepth(Qxt::Second);
//the length of the current item does not fit in the view
//so we have to align it to the nearest boundaries
if (iNumSecs % zoomDepth)
{
int lower = iNumSecs / zoomDepth * zoomDepth;
int upper = lower + zoomDepth;
return (iNumSecs - lower >= upper - iNumSecs ? (upper / zoomDepth) : (lower / zoomDepth));
}
return (iNumSecs / zoomDepth);
}
return -1;
}
| bool QxtScheduleInternalItem::setData | ( | QVariant | data, |
| int | role | ||
| ) |
Definition at line 612 of file qxtscheduleview_p.cpp.
References QxtScheduleView::model(), modelIndex(), and parentView().
Referenced by setRowsUsed(), and setStartTableOffset().
{
if (parentView() && parentView()->model())
{
return parentView()->model()->setData(modelIndex(), data, role);
}
return false;
}
| void QxtScheduleInternalItem::setDirty | ( | bool | state = true ) |
[inline] |
Definition at line 85 of file qxtscheduleview_p.h.
References isDirty.
Referenced by QxtScheduleView::dataChanged(), and QxtScheduleView::paintEvent().
{
isDirty = state;
}
| void QxtScheduleInternalItem::setGeometry | ( | const QVector< QRect > | geo ) |
Definition at line 718 of file qxtscheduleview_p.cpp.
References geometryChanged(), m_geometries, and QxtScheduleViewHeaderModel::parent().
Referenced by QxtScheduleView::dataChanged(), and resetMove().
{
if (!this->parent())
return;
QVector<QRect> oldGeo = this->m_geometries;
this->m_geometries.clear();
this->m_geometries = geo;
emit geometryChanged(this, oldGeo);
}
| void QxtScheduleInternalItem::setRowsUsed | ( | int | rows ) |
Definition at line 667 of file qxtscheduleview_p.cpp.
References QxtScheduleView::currentZoomDepth(), Qxt::ItemDurationRole, parentView(), Qxt::Second, and setData().
{
if (parentView() && parentView()->model())
{
int seconds = rows * parentView()->currentZoomDepth(Qxt::Second);
setData(seconds, Qxt::ItemDurationRole);
}
}
| void QxtScheduleInternalItem::setStartTableOffset | ( | int | iOffset ) |
Definition at line 659 of file qxtscheduleview_p.cpp.
References Qxt::ItemStartTimeRole, parentView(), and setData().
{
if (parentView() && parentView()->model())
{
setData(parentView()->qxt_d().offsetToUnixTime(iOffset), Qxt::ItemStartTimeRole);
}
}
| void QxtScheduleInternalItem::startMove | ( | ) |
Definition at line 734 of file qxtscheduleview_p.cpp.
References m_geometries, m_moving, and m_SavedGeometries.
{
//save old geometry before we start to move
this->m_SavedGeometries = this->m_geometries;
m_moving = true;
}
| int QxtScheduleInternalItem::startTableOffset | ( | ) | const |
Definition at line 628 of file qxtscheduleview_p.cpp.
References QxtScheduleView::currentZoomDepth(), data(), Qxt::ItemStartTimeRole, parentView(), and Qxt::Second.
Referenced by QxtScheduleView::dataChanged(), endTableOffset(), QxtScheduleViewPrivate::handleItemConcurrency(), QxtScheduleInternalItem(), and visualStartTableOffset().
{
if (parentView() && parentView()->model())
{
int startTime = data(Qxt::ItemStartTimeRole).toInt();
int zoomDepth = parentView()->currentZoomDepth(Qxt::Second);
qint32 offset = startTime - parentView()->qxt_d().m_startUnixTime;
//the start of the current item does not fit in the view
//so we have to align it to the nearest boundaries
if (offset % zoomDepth)
{
int lower = offset / zoomDepth * zoomDepth;
int upper = lower + zoomDepth;
offset = (offset - lower >= upper - offset ? upper : lower);
return parentView()->qxt_d().unixTimeToOffset(offset + parentView()->qxt_d().m_startUnixTime);
}
return parentView()->qxt_d().unixTimeToOffset(startTime);
}
return -1;
}
| void QxtScheduleInternalItem::stopMove | ( | ) |
Definition at line 748 of file qxtscheduleview_p.cpp.
References m_moving, and m_SavedGeometries.
{
this->m_SavedGeometries.clear();
m_moving = false;
}
| int QxtScheduleInternalItem::visualEndTableOffset | ( | ) | const |
returns the currently VISUAL offset (changes when a item moves)
Definition at line 598 of file qxtscheduleview_p.cpp.
References endTableOffset(), m_geometries, m_moving, and parentView().
{
if (m_geometries.size() == 0 || !parentView())
return -1;
//are we in a move?
if (!m_moving)
return endTableOffset();
QRect rect = m_geometries[m_geometries.size()-1];
int endTableOffset = parentView()->qxt_d().pointToOffset(parentView()->mapToViewport(rect.bottomRight()));
return endTableOffset;
}
| int QxtScheduleInternalItem::visualStartTableOffset | ( | ) | const |
returns the currently VISUAL offset (changes when a item moves)
Definition at line 582 of file qxtscheduleview_p.cpp.
References geometry(), m_geometries, m_moving, parentView(), and startTableOffset().
Referenced by qxtScheduleItemLessThan().
{
if (m_geometries.size() == 0 || !parentView())
return -1;
//are we in a move?
if (!m_moving)
return startTableOffset();
int offset = parentView()->qxt_d().pointToOffset(parentView()->mapToViewport((this->geometry()[0].topLeft())));
return offset;
}
friend class QxtScheduleView [friend] |
Definition at line 58 of file qxtscheduleview_p.h.
Definition at line 97 of file qxtscheduleview_p.h.
Referenced by QxtScheduleView::paintEvent(), and setDirty().
| QVector<QPixmap> QxtScheduleInternalItem::m_cachedParts |
Definition at line 101 of file qxtscheduleview_p.h.
Referenced by QxtScheduleView::paintEvent().
| QVector<QRect> QxtScheduleInternalItem::m_geometries |
Definition at line 99 of file qxtscheduleview_p.h.
Referenced by contains(), QxtScheduleView::dataChanged(), geometry(), QxtScheduleView::paintEvent(), QxtScheduleInternalItem(), setGeometry(), startMove(), visualEndTableOffset(), and visualStartTableOffset().
Definition at line 98 of file qxtscheduleview_p.h.
Referenced by modelIndex(), QxtScheduleView::rowsAboutToBeInserted(), and QxtScheduleView::rowsRemoved().
Definition at line 96 of file qxtscheduleview_p.h.
Referenced by QxtScheduleInternalItem(), resetMove(), startMove(), stopMove(), visualEndTableOffset(), and visualStartTableOffset().
| QVector<QRect> QxtScheduleInternalItem::m_SavedGeometries |
Definition at line 100 of file qxtscheduleview_p.h.
Referenced by resetMove(), startMove(), and stopMove().
1.7.2