void FilterLvl::onClicked (QModelIndex idx) { if (!idx.isValid()) return; QStandardItem * item = m_model->itemFromIndex(idx); Q_ASSERT(item); if (idx.column() == 1) { QString const & filter_item = m_model->data(m_model->index(idx.row(), 0, QModelIndex()), Qt::DisplayRole).toString(); QString const & mod = m_model->data(idx, Qt::DisplayRole).toString(); E_LevelMode const curr = stringToLvlMod(mod.toStdString().c_str()[0]); size_t const i = (curr + 1) % e_max_lvlmod_enum_value; E_LevelMode const new_mode = static_cast<E_LevelMode>(i); m_model->setData(idx, QString(lvlModToString(new_mode))); bool const checked = (item->checkState() == Qt::Checked); setMode(filter_item, !checked, new_mode); emitFilterChangedSignal(); } else { QString const & filter_item = m_model->data(idx, Qt::DisplayRole).toString(); bool const orig_checked = (item->checkState() == Qt::Checked); if (orig_checked) append(filter_item); else remove(filter_item); emitFilterChangedSignal(); } }
void FilterTime::onRm () { QModelIndex const idx = m_ui->view->currentIndex(); int const row = idx.row(); QModelIndex const op_idx = m_model->index(row, 1, QModelIndex()); QModelIndex const s_idx = m_model->index(row, 2, QModelIndex()); QModelIndex const u_idx = m_model->index(row, 3, QModelIndex()); QStandardItem * op_item = m_model->itemFromIndex(op_idx); if (!op_item) return; QStandardItem * s_item = m_model->itemFromIndex(s_idx); if (!s_item) return; QStandardItem * u_item = m_model->itemFromIndex(u_idx); if (!u_item) return; QString const & op_val = m_model->data(op_idx, Qt::DisplayRole).toString(); QString const & s_val = m_model->data(s_idx, Qt::DisplayRole).toString(); QString const & u_val = m_model->data(u_idx, Qt::DisplayRole).toString(); m_model->removeRow(idx.row()); remove(op_val, s_val.toULongLong(), u_val); recompile(); emitFilterChangedSignal(); }
void FilterScript::appendToScriptFilters (QString const & s, bool enabled, int state) { for (int i = 0, ie = m_data.size(); i < ie; ++i) if (m_data[i].m_name == s) return; m_data.push_back(FilteredScript(s, enabled, state)); emitFilterChangedSignal(); }
void FilterTime::append (QString const & op, uint64_t t, QString const & units, bool enabled) { for (int i = 0, ie = m_data.size(); i < ie; ++i) if (m_data[i] == FilteredTime(op, t, units, enabled)) return; m_data.push_back(FilteredTime(op, t, units, enabled)); emitFilterChangedSignal(); }
void ColorizerRow::onClickedAt (QModelIndex idx) { QStandardItem * item = m_model->itemFromIndex(idx); Q_ASSERT(item); QString const & str = m_model->data(idx, Qt::DisplayRole).toString(); bool const checked = (item->checkState() == Qt::Checked); ColorizedRow & ct = findOrCreateColorizedRow(item->text()); if (checked) { append(str); recompileColorRow(ct); updateColorRow(ct); } else { recompileColorRow(ct); updateColorRow(ct); remove(str); } emitFilterChangedSignal(); /* if (!idx.isValid()) return; QStandardItemModel * model = static_cast<QStandardItemModel *>(m_config_ui.ui()->viewColorRow->model()); QStandardItem * item = model->itemFromIndex(idx); Q_ASSERT(item); QString const & val = model->data(idx, Qt::DisplayRole).toString(); bool const checked = (item->checkState() == Qt::Checked); // @TODO: if state really changed for (int i = 0, ie = m_filter_state.m_colorized_texts.size(); i < ie; ++i) { ColorizedRow & ct = m_filter_state.m_colorized_texts[i]; if (ct.m_row_str == val) { if (checked) { m_filter_state.setColorRowChecked(val, checked); recompileColorRow(ct); updateColorRow(ct); } else { uncolorRow(ct); m_filter_state.setColorRowChecked(val, checked); recompileColorRow(ct); } break; } } */ }
void FilterScript::onScriptRm () { QModelIndex const idx = m_ui->view->currentIndex(); QStandardItem * item = m_model->itemFromIndex(idx); if (!item) return; QString const & val = m_model->data(idx, Qt::DisplayRole).toString(); m_model->removeRow(idx.row()); removeFromScriptFilters(val); recompile(); emitFilterChangedSignal(); }
void FilterTime::remove (QString const & op, uint64_t t, QString const & u) { for (int i = 0, ie = m_data.size(); i < ie; ++i) { if (m_data[i] == FilteredTime(op, t, u)) { m_data.removeAt(i); return; } } emitFilterChangedSignal(); }
void FilterScript::removeFromScriptFilters (QString const & s) { for (int i = 0, ie = m_data.size(); i < ie; ++i) { FilteredScript & fr = m_data[i]; if (fr.m_name == s) { m_data.removeAt(i); return; } } emitFilterChangedSignal(); }
void FilterScript::onClickedAtScriptList (QModelIndex idx) { if (!idx.isValid()) return; if (idx.column() == 1) { QString const & filter_item = m_model->data(m_model->index(idx.row(), 0, QModelIndex()), Qt::DisplayRole).toString(); QString const & mod = m_model->data(idx, Qt::DisplayRole).toString(); E_FilterMode const curr = stringToFltMod(mod.toStdString().c_str()[0]); size_t const i = (curr + 1) % e_max_fltmod_enum_value; E_FilterMode const new_mode = static_cast<E_FilterMode>(i); m_model->setData(idx, QString(fltModToString(new_mode))); bool const is_inclusive = new_mode == e_Include; setScriptState(filter_item, is_inclusive); recompile(); emitFilterChangedSignal(); } else { QStandardItem * item = m_model->itemFromIndex(idx); Q_ASSERT(item); bool const orig_checked = (item->checkState() == Qt::Checked); Qt::CheckState const checked = orig_checked ? Qt::Unchecked : Qt::Checked; item->setCheckState(checked); QString const & mod = m_model->data(m_model->index(idx.row(), 1, QModelIndex()), Qt::DisplayRole).toString(); E_FilterMode const curr = stringToFltMod(mod.toStdString().c_str()[0]); bool const is_inclusive = curr == e_Include; QString const & val = m_model->data(idx, Qt::DisplayRole).toString(); // @TODO: if state really changed setScriptState(val, is_inclusive); setScriptChecked(val, checked); recompile(); emitFilterChangedSignal(); } }
// slots void FilterTid::onClicked (QModelIndex idx) { if (!idx.isValid()) return; QStandardItem * item = m_model->itemFromIndex(idx); Q_ASSERT(item); QString const & filter_item = m_model->data(idx, Qt::DisplayRole).toString(); bool const orig_checked = (item->checkState() == Qt::Checked); if (orig_checked) append(filter_item); else remove(filter_item); emitFilterChangedSignal(); }
void ColorizerRow::onSelectNone () { boost::function<void (ColorizerRow*, QString)> f = &ColorizerRow::remove; applyFnOnAllChildren(f, this, m_model, Qt::Unchecked); emitFilterChangedSignal(); }
void FilterLvl::onSelectNone () { boost::function<void (FilterLvl *, QString const &)> f = &FilterLvl::remove; applyFnOnAllChildren(f, this, m_model, Qt::Unchecked); emitFilterChangedSignal(); }
void FilterTid::onSelectAll () { boost::function<void (FilterTid *, QString const &)> f = &FilterTid::append; applyFnOnAllChildren(f, this, m_model, Qt::Checked); emitFilterChangedSignal(); }
void FilterFileLine::onClickedAtFileTree (QModelIndex idx) { /* TreeModel<DockedInfo>::node_t const * n = m_docked_widgets_model->getItemFromIndex(idx); QStringList const & dst = n->data.m_path; int const col = idx.column(); Action a; a.m_type = static_cast<E_ActionType>(col); a.m_src_path = path(); a.m_src = this; a.m_dst_path = dst; if (col == e_Visibility) { int const state = m_docked_widgets_model->data(idx, Qt::CheckStateRole).toInt(); a.m_args.push_back(state); } if (col == e_InCentralWidget) { int const state = m_docked_widgets_model->data(idx, e_DockRoleCentralWidget).toInt(); int const new_state = state == 0 ? 1 : 0; m_docked_widgets_model->setData(idx, new_state, e_DockRoleCentralWidget); a.m_args.push_back(new_state); }*/ emitFilterChangedSignal(); /* FilterFileLine * const node = m_model->getItemFromIndex(idx); FilterFileLine const * line_node = 0; s.clear(); s.reserve(16); if (!node->hasChildren()) line_node = node; else s.push_back(model->data(idx, Qt::DisplayRole).toString()); QStandardItem * parent = node->parent(); std::string file; QModelIndex parent_idx = model->indexFromItem(parent); while (parent_idx.isValid()) { QString const & val = model->data(parent_idx, Qt::DisplayRole).toString(); s.push_back(val); parent = parent->parent(); parent_idx = model->indexFromItem(parent); } for (std::vector<QString>::const_reverse_iterator it=s.rbegin(), ite=s.rend(); it != ite; ++it) file += std::string("/") + (*it).toStdString(); fileline_t filter_node(file, std::string()); if (line_node) { QString const & val = model->data(idx, Qt::DisplayRole).toString(); filter_node.second = val.toStdString(); } std::string const fileline = filter_node.first + "/" + filter_node.second; Qt::CheckState const curr_state = node->checkState(); if (curr_state == Qt::Checked) { // unchecked --> checked setCheckStateChilds(node, curr_state); conn->sessionState().m_file_filters.set_state_to_childs(fileline, static_cast<E_NodeStates>(curr_state)); QStandardItem * p = node; while (p = p->parent()) { bool const all_checked = checkChildState(p, Qt::Checked); if (all_checked) { //conn->sessionState().m_file_filters.set_state_to_childs(fileline, static_cast<E_NodeStates>(curr_state)); p->setCheckState(Qt::Checked); } } } else if (curr_state == Qt::Unchecked) { // checked --> unchecked set_state_to_topdown(conn->sessionState().m_file_filters, fileline, static_cast<E_NodeStates>(curr_state), e_PartialCheck); setCheckStateChilds(node, curr_state); setCheckStateReverse(node->parent(), Qt::PartiallyChecked); // iff parent unchecked and clicked on leaf } E_NodeStates const new_state = static_cast<E_NodeStates>(curr_state); qDebug("file click! sync state of %s --> node_checkstate=%i", fileline.c_str(), node->checkState()); conn->sessionState().m_file_filters.set_to_state(fileline, static_cast<E_NodeStates>(new_state)); conn->onInvalidateFilter();*/ }
void FilterFileLine::onSelectNone () { m_model->stateToChildren(m_data.root, Qt::Unchecked); emitFilterChangedSignal(); }