13 #include <QtGui/QHeaderView>
14 #include <QtGui/QClipboard>
15 #include <QtGui/QKeyEvent>
40 mpProxyModel->setSortCaseSensitivity(Qt::CaseInsensitive);
54 mpTblSpecies->verticalHeader()->setResizeMode(QHeaderView::ResizeToContents);
55 mpTblSpecies->verticalHeader()->hide();
62 this, SLOT(
dataChanged(
const QModelIndex&,
const QModelIndex&)));
63 connect(mpLEFilter, SIGNAL(textChanged(
const QString &)),
87 if (mpTblSpecies->hasFocus())
95 const QItemSelectionModel * pSelectionModel = mpTblSpecies->selectionModel();
97 QModelIndexList mappedSelRows;
100 for (i = 0; i < imax; i++)
102 if (pSelectionModel->isRowSelected((
int) i, QModelIndex()))
108 if (mappedSelRows.empty())
118 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
120 if (ret == QMessageBox::Yes)
145 if (mpTblSpecies->selectionModel() != NULL)
147 disconnect(mpTblSpecies->selectionModel(), SIGNAL(selectionChanged(
const QItemSelection&,
const QItemSelection&)),
153 mpTblSpecies->setModel(NULL);
156 connect(mpTblSpecies->selectionModel(), SIGNAL(selectionChanged(
const QItemSelection&,
const QItemSelection&)),
159 mpTblSpecies->resizeColumnsToContents();
168 bool selected =
false;
170 QModelIndexList selRows = mpTblSpecies->selectionModel()->selectedRows();
172 if (selRows.size() == 0)
176 if (selRows.size() == 1)
187 mpBtnDelete->setEnabled(selected);
190 mpBtnClear->setEnabled(
true);
192 mpBtnClear->setEnabled(
false);
196 const QItemSelection&
C_UNUSED(deselected))
202 const QModelIndex&
C_UNUSED(bottomRight))
204 mpTblSpecies->resizeColumnsToContents();
212 QModelIndex index =
mpProxyModel->mapToSource(proxyIndex);
224 assert(pDataModel != NULL);
238 if (ev->key() == Qt::Key_Delete)
240 else if (ev->key() == Qt::Key_C && (ev->modifiers() & Qt::ControlModifier))
242 QModelIndexList selRows = mpTblSpecies->selectionModel()->selectedRows(0);
248 QModelIndexList::const_iterator i;
250 for (i = selRows.begin(); i != selRows.end(); ++i)
254 if (!mpTblSpecies->isColumnHidden(x))
266 QApplication::clipboard()->setText(str);
272 QRegExp regExp(mpLEFilter->text() +
"|New Species", Qt::CaseInsensitive, QRegExp::RegExp);
314 for (
unsigned C_INT32 jj = 0; jj < compartments.
size(); jj++)
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
void setFlagConc(bool flag)
void switchToOtherWidget(const size_t &id, const std::string &key)
const CCopasiVector< CMetab > & getMetabolites() const
virtual size_t size() const
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
#define COL_CONCENTRATION
const QStringList & getTypes()
virtual const std::string & getKey() const
static CCopasiVector< CCopasiDataModel > * getDatamodelList()
bool removeRows(QModelIndexList rows, const QModelIndex &index=QModelIndex())
static CKeyFactory * getKeyFactory()
virtual bool isDefaultRow(const QModelIndex &i) const
static StandardButton question(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons=Ok, StandardButton defaultButton=NoButton)
#define COL_ICONCENTRATION