X-Git-Url: https://git.sven.stormbind.net/?a=blobdiff_plain;f=slidemodel.cpp;fp=slidemodel.cpp;h=0000000000000000000000000000000000000000;hb=d483bd8e6523c23c6f1d8908a2e0611c2bc9ff4f;hp=012ab4be1850290306f7578e9541ced2cf42e32e;hpb=7dfa3fe589d1722d49681f42cdb0bf1e6efb5223;p=sven%2Fvym.git diff --git a/slidemodel.cpp b/slidemodel.cpp deleted file mode 100644 index 012ab4b..0000000 --- a/slidemodel.cpp +++ /dev/null @@ -1,341 +0,0 @@ -#include "slidemodel.h" - -#include "slideitem.h" -#include "vymmodel.h" - -#include -#include - - -SlideModel::SlideModel( VymModel *vm) - : QAbstractItemModel(NULL) -{ - QVector rootData; - rootData << "Slide"; - rootItem = new SlideItem(rootData, NULL,this); - vymModel=vm; -} - -SlideModel::~SlideModel() -{ - delete rootItem; -} - -void SlideModel::clear() -{ - if (rootItem->childCount()>0) - removeRows (0,rowCount (QModelIndex ())); -} - -VymModel* SlideModel::getVymModel() -{ - return vymModel; -} - -int SlideModel::columnCount(const QModelIndex & /* parent */) const -{ - return rootItem->columnCount(); -} - -QVariant SlideModel::data(const QModelIndex &index, int role) const -{ - if (!index.isValid()) - return QVariant(); - - if (role != Qt::DisplayRole && role != Qt::EditRole) - return QVariant(); - - SlideItem *item = getItem(index); - - return item->data(index.column()); -} - -Qt::ItemFlags SlideModel::flags(const QModelIndex &index) const -{ - if (!index.isValid()) - return 0; - - return Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable; -} - -QVariant SlideModel::headerData(int section, Qt::Orientation orientation, - int role) const -{ - if (orientation == Qt::Horizontal && role == Qt::DisplayRole) - return rootItem->data(section); - - return QVariant(); -} - -QModelIndex SlideModel::index (SlideItem *fri) -{ - if (!fri || !fri->parent()) - return QModelIndex(); - else - return createIndex (fri->row(),0,fri); -} - - -QModelIndex SlideModel::index(int row, int column, const QModelIndex &parent) const -{ - if (parent.isValid() && parent.column() != 0) - return QModelIndex(); - - SlideItem *parentItem = getItem(parent); - - SlideItem *childItem = parentItem->child(row); - if (childItem) - return createIndex(row, column, childItem); - else - return QModelIndex(); -} - -bool SlideModel::insertColumns(int position, int columns, const QModelIndex &parent) -{ - bool success; - - beginInsertColumns(parent, position, position + columns - 1); - success = rootItem->insertColumns(position, columns); - endInsertColumns(); - - return success; -} - -bool SlideModel::insertRows(int position, int rows, const QModelIndex &parent) -{ - SlideItem *parentItem = getItem(parent); - bool success; - - beginInsertRows(parent, position, position + rows - 1); - success = parentItem->insertChildren(position, rows, rootItem->columnCount()); - endInsertRows(); - - return success; -} - -QModelIndex SlideModel::parent(const QModelIndex &index) const -{ - if (!index.isValid()) - return QModelIndex(); - - SlideItem *childItem = getItem(index); - SlideItem *parentItem = childItem->parent(); - - if (parentItem == rootItem) - return QModelIndex(); - - return createIndex(parentItem->childNumber(), 0, parentItem); -} - -bool SlideModel::removeColumns(int position, int columns, const QModelIndex &parent) -{ - bool success; - - beginRemoveColumns(parent, position, position + columns - 1); - success = rootItem->removeColumns(position, columns); - endRemoveColumns(); - - if (rootItem->columnCount() == 0) - removeRows(0, rowCount()); - - return success; -} - -bool SlideModel::removeRows(int position, int rows, const QModelIndex &parent) -{ - SlideItem *parentItem = getItem(parent); - bool success = true; - - beginRemoveRows(parent, position, position + rows - 1); - success = parentItem->removeChildren(position, rows); - endRemoveRows(); - - return success; -} - -int SlideModel::count() -{ - return rootItem->childCount(); -} - -int SlideModel::rowCount(const QModelIndex &parent) const -{ - SlideItem *parentItem = getItem(parent); - - return parentItem->childCount(); -} - -bool SlideModel::setData(const QModelIndex &index, const QVariant &value, - int role) -{ - if (role != Qt::EditRole) - return false; - - SlideItem *item = getItem(index); - bool result = item->setData(index.column(), value); - - if (result) - emit dataChanged(index, index); - - return result; -} - -bool SlideModel::setHeaderData(int section, Qt::Orientation orientation, - const QVariant &value, int role) -{ - if (role != Qt::EditRole || orientation != Qt::Horizontal) - return false; - - bool result = rootItem->setData(section, value); - - if (result) - emit headerDataChanged(orientation, section, section); - - return result; -} - -SlideItem* SlideModel::addSlide(SlideItem *dst, int n) -{ - SlideItem *si=NULL; - if (!dst) dst=rootItem; - - emit (layoutAboutToBeChanged() ); - - QModelIndex parix=index (dst); - if (n<0) n=dst->childCount(); - beginInsertRows (parix,n,n); - if (rootItem->insertChildren (n,1,0) ) - { - QModelIndex ix=index(n,0,QModelIndex()); - si=getItem(ix); - } - endInsertRows (); - emit (layoutChanged() ); - - return si; -} - -void SlideModel::deleteSlide(SlideItem *si) -{ - QModelIndex ix=index(si); - if (ix.isValid()) - { - QModelIndex px=ix.parent(); - int n=si->childNumber(); - removeRows (n,1,px); - } -} - -bool SlideModel::relinkSlide( - SlideItem *si, - SlideItem *dst, - int pos) -{ - if (si && dst) - { - emit (layoutAboutToBeChanged() ); - SlideItem *pi=si->parent(); - - // Remove at current position - int n=si->childNumber(); - - beginRemoveRows (index(pi),n,n); - pi->removeItem (n); - endRemoveRows(); - - if (pos<0 ||pos>dst->childCount() ) pos=dst->childCount(); - - // Insert at new position - beginInsertRows (index(dst),pos,pos); - dst->insertItem (pos, si); - endInsertRows(); - - emit (layoutChanged() ); - - selModel->select (index (si),QItemSelectionModel::ClearAndSelect ); - - return true; - } - return false; -} - -SlideItem* SlideModel::getItem (const QModelIndex &index) const -{ - if (index.isValid()) { - SlideItem *item = static_cast(index.internalPointer()); - if (item) return item; - } - return rootItem; -} - -SlideItem* SlideModel::getSlide (int n) -{ - if (n>=count() || n<0) return NULL; - return getItem (index (n, 0, QModelIndex() )); -} - -SlideItem* SlideModel::findSlideID (uint n) -{ - for (int i=0; ichildCount(); i++) - if (rootItem->child(i)->getID()==n) - return rootItem->child(i); - return NULL; -} - -QString SlideModel::saveToDir() -{ - QString s; - for (int i=0; ichildCount(); i++) - s+=rootItem->child(i)->saveToDir(); - return s; -} - -void SlideModel::setSearchString( const QString &s) -{ - searchString=s; -} - -QString SlideModel::getSearchString() -{ - return searchString; -} - -void SlideModel::setSearchFlags( QTextDocument::FindFlags f) -{ - searchFlags=f; -} - -QTextDocument::FindFlags SlideModel::getSearchFlags() -{ - return searchFlags; -} - -void SlideModel::setSelectionModel(QItemSelectionModel *sm) -{ - selModel=sm; -} - -QItemSelectionModel* SlideModel::getSelectionModel() -{ - return selModel; -} - -QModelIndex SlideModel::getSelectedIndex() -{ - if (!selModel) - { - qDebug ()<<"SlideModel: No selection model!"; - return QModelIndex(); - } - QModelIndexList list=selModel->selectedIndexes(); - if (!list.isEmpty() ) return list.first(); - return QModelIndex(); -} - -SlideItem* SlideModel::getSelectedItem () -{ - QModelIndex ix=getSelectedIndex(); - if (ix.isValid() ) return getItem (ix); - return NULL; -} -