13 #include <QtGui/QHeaderView>
14 #include <QtGui/QClipboard>
15 #include <QtGui/QKeyEvent>
39 mpProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
46 mpTblCompartments->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
47 mpTblCompartments->verticalHeader()->hide();
48 mpTblCompartments->sortByColumn(
COL_ROW_NUMBER, Qt::AscendingOrder);
54 this, SLOT(
dataChanged(
const QModelIndex&,
const QModelIndex&)));
55 connect(mpLEFilter, SIGNAL(textChanged(
const QString &)),
78 if (mpTblCompartments->hasFocus())
86 const QItemSelectionModel * pSelectionModel = mpTblCompartments->selectionModel();
88 QModelIndexList mappedSelRows;
91 for (i = 0; i < imax; i++)
93 if (pSelectionModel->isRowSelected((
int) i, QModelIndex()))
99 if (mappedSelRows.empty())
108 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
110 if (ret == QMessageBox::Yes)
135 if (mpTblCompartments->selectionModel() != NULL)
137 disconnect(mpTblCompartments->selectionModel(), SIGNAL(selectionChanged(
const QItemSelection&,
const QItemSelection&)),
143 mpTblCompartments->setModel(NULL);
145 connect(mpTblCompartments->selectionModel(), SIGNAL(selectionChanged(
const QItemSelection&,
const QItemSelection&)),
148 mpTblCompartments->resizeColumnsToContents();
155 bool selected =
false;
157 QModelIndexList selRows = mpTblCompartments->selectionModel()->selectedRows();
159 if (selRows.size() == 0)
163 if (selRows.size() == 1)
174 mpBtnDelete->setEnabled(selected);
177 mpBtnClear->setEnabled(
true);
179 mpBtnClear->setEnabled(
false);
183 const QItemSelection&
C_UNUSED(deselected))
189 const QModelIndex&
C_UNUSED(bottomRight))
191 mpTblCompartments->resizeColumnsToContents();
197 QModelIndex index =
mpProxyModel->mapToSource(proxyIndex);
209 assert(pDataModel != NULL);
223 if (ev->key() == Qt::Key_Delete)
225 else if (ev->key() == Qt::Key_C && (ev->modifiers() & Qt::ControlModifier))
227 QModelIndexList selRows = mpTblCompartments->selectionModel()->selectedRows(0);
233 QModelIndexList::const_iterator i;
235 for (i = selRows.begin(); i != selRows.end(); ++i)
239 if (!mpTblCompartments->isColumnHidden(x))
251 QApplication::clipboard()->setText(str);
257 QRegExp regExp(mpLEFilter->text() +
"|New Compartment", Qt::CaseInsensitive, QRegExp::RegExp);
bool removeRows(QModelIndexList rows, const QModelIndex &index=QModelIndex())
#define COL_TYPE_COMPARTMENTS
void switchToOtherWidget(const size_t &id, const std::string &key)
virtual const std::string & getKey() const
const QStringList & getTypes()
static CCopasiVector< CCopasiDataModel > * getDatamodelList()
CCopasiVectorNS< CCompartment > & getCompartments()
static CKeyFactory * getKeyFactory()
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
virtual bool isDefaultRow(const QModelIndex &i) const
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
static StandardButton question(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons=Ok, StandardButton defaultButton=NoButton)