#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().