// qitemselectionmodel.sip generated by MetaSIP on Fri Sep 28 17:07:47 2007 // // This file is part of the QtGui Python extension module. // // Copyright (c) 2007 // Phil Thompson // // This file is part of PyQt. // // This copy of PyQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 as published by // the Free Software Foundation and appearing in the file LICENSE included in the // packaging of this file. // // PyQt is supplied in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more // details. // // You should have received a copy of the GNU General Public License along with // PyQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. %ModuleCode #include %End class QItemSelectionRange { %TypeHeaderCode #include %End public: QItemSelectionRange(); QItemSelectionRange(const QItemSelectionRange &other); QItemSelectionRange(const QModelIndex &atopLeft, const QModelIndex &abottomRight); explicit QItemSelectionRange(const QModelIndex &index); int top() const; int left() const; int bottom() const; int right() const; int width() const; int height() const; QModelIndex topLeft() const; QModelIndex bottomRight() const; QModelIndex parent() const; const QAbstractItemModel *model() const; bool contains(const QModelIndex &index) const; %If (Qt_4_2_0 -) bool contains(int row, int column, const QModelIndex &parentIndex) const; %End bool intersects(const QItemSelectionRange &other) const; QItemSelectionRange intersect(const QItemSelectionRange &other) const; bool operator==(const QItemSelectionRange &other) const; bool operator!=(const QItemSelectionRange &other) const; bool isValid() const; QModelIndexList indexes() const; %If (Qt_4_2_0 -) QItemSelectionRange intersected(const QItemSelectionRange &other) const; %End }; class QItemSelectionModel : QObject { %TypeHeaderCode #include %End public: enum SelectionFlag { NoUpdate, Clear, Select, Deselect, Toggle, Current, Rows, Columns, SelectCurrent, ToggleCurrent, ClearAndSelect, }; typedef QFlags SelectionFlags; explicit QItemSelectionModel(QAbstractItemModel *model); QItemSelectionModel(QAbstractItemModel *model, QObject *parent /TransferThis/); virtual ~QItemSelectionModel(); QModelIndex currentIndex() const; bool isSelected(const QModelIndex &index) const; bool isRowSelected(int row, const QModelIndex &parent) const; bool isColumnSelected(int column, const QModelIndex &parent) const; bool rowIntersectsSelection(int row, const QModelIndex &parent) const; bool columnIntersectsSelection(int column, const QModelIndex &parent) const; QModelIndexList selectedIndexes() const; const QItemSelection selection() const; const QAbstractItemModel *model() const; public slots: virtual void clear(); %If (Qt_4_2_0 -) void clearSelection(); %End virtual void reset(); virtual void select(const QModelIndex &index, QFlags command); virtual void select(const QItemSelection &selection, QFlags command); void setCurrentIndex(const QModelIndex &index, QFlags command); signals: void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void currentChanged(const QModelIndex ¤t, const QModelIndex &previous); void currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); void currentColumnChanged(const QModelIndex ¤t, const QModelIndex &previous); protected: void emitSelectionChanged(const QItemSelection &newSelection, const QItemSelection &oldSelection); public: %If (Qt_4_2_0 -) bool hasSelection() const; %End %If (Qt_4_2_0 -) QModelIndexList selectedRows(int column = 0) const; %End %If (Qt_4_2_0 -) QModelIndexList selectedColumns(int row = 0) const; %End private: QItemSelectionModel(const QItemSelectionModel &); }; QFlags operator|(QItemSelectionModel::SelectionFlag f1, QFlags f2); QFlags operator|(QItemSelectionModel::SelectionFlag f1, QItemSelectionModel::SelectionFlag f2); class QItemSelection { %TypeHeaderCode #include %End public: QItemSelection(); QItemSelection(const QModelIndex &topLeft, const QModelIndex &bottomRight); void select(const QModelIndex &topLeft, const QModelIndex &bottomRight); bool contains(const QModelIndex &index) const; int __contains__(const QModelIndex &index); %MethodCode // It looks like you can't assign QBool to int. sipRes = bool(sipCpp->contains(*a0)); %End QModelIndexList indexes() const; void merge(const QItemSelection &other, QFlags command); static void split(const QItemSelectionRange &range, const QItemSelectionRange &other, QItemSelection *result); int __len__() const; %MethodCode sipRes = sipCpp->count(); %End void __setitem__(int i, const QItemSelectionRange &range); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else (*sipCpp)[a0] = *a1; %End void __setitem__(SIP_PYSLICE slice, const QItemSelection &list); %MethodCode #if PY_VERSION_HEX >= 0x02050000 Py_ssize_t len, start, stop, step, slicelength, i; #else int len, start, stop, step, slicelength, i; #endif len = sipCpp->count(); if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) sipIsErr = 1; else { int vlen = a1->count(); if (vlen != slicelength) { sipBadLengthForSlice(vlen, slicelength); sipIsErr = 1; } else { QItemSelection::const_iterator it = a1->begin(); for (i = 0; i < slicelength; ++i) { (*sipCpp)[start] = *it; start += step; ++it; } } } %End void __delitem__(int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipCpp->removeAt(a0); %End void __delitem__(SIP_PYSLICE slice); %MethodCode #if PY_VERSION_HEX >= 0x02050000 Py_ssize_t len, start, stop, step, slicelength, i; #else int len, start, stop, step, slicelength, i; #endif len = sipCpp->count(); if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) sipIsErr = 1; else for (i = 0; i < slicelength; ++i) { sipCpp->removeAt(start); start += step - 1; } %End QItemSelectionRange operator[](int i); %MethodCode int len; len = sipCpp->count(); if ((a0 = (int)sipConvertFromSequenceIndex(a0, len)) < 0) sipIsErr = 1; else sipRes = new QItemSelectionRange((*sipCpp)[a0]); %End QItemSelection operator[](SIP_PYSLICE slice); %MethodCode #if PY_VERSION_HEX >= 0x02050000 Py_ssize_t len, start, stop, step, slicelength, i; #else int len, start, stop, step, slicelength, i; #endif len = sipCpp->count(); if (PySlice_GetIndicesEx((PySliceObject *)a0, len, &start, &stop, &step, &slicelength) < 0) sipIsErr = 1; else { sipRes = new QItemSelection(); for (i = 0; i < slicelength; ++i) { (*sipRes) += (*sipCpp)[start]; start += step; } } %End // Methods inherited from QList. // Keep this in sync with QStringList (except for mid()). void clear(); bool isEmpty() const; void append(const QItemSelectionRange &range); void prepend(const QItemSelectionRange &range); void insert(int i, const QItemSelectionRange &range); void replace(int i, const QItemSelectionRange &range); void removeAt(int i); int removeAll(const QItemSelectionRange &range); QItemSelectionRange takeAt(int i); QItemSelectionRange takeFirst(); QItemSelectionRange takeLast(); void move(int from, int to); void swap(int i, int j); int count(const QItemSelectionRange &range) const; int count() const; QItemSelectionRange &first(); QItemSelectionRange &last(); int indexOf(const QItemSelectionRange &value, int from = 0) const; int lastIndexOf(const QItemSelectionRange &value, int from = -1) const; QItemSelection &operator+=(const QItemSelection &other); QItemSelection &operator+=(const QItemSelectionRange &value); };