bool TableModelVariables::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) { if (_dragActions == Qt::CopyAction && _dropActions == Qt::MoveAction && action == Qt::MoveAction) // if delete return true; if ( ! canDropMimeData(data, action, row, column, parent)) return false; if (action == Qt::IgnoreAction) return true; if (data->hasFormat(_mimeType)) { QByteArray encodedData = data->data(_mimeType); Terms variables; variables.set(encodedData); beginResetModel(); _variables.add(variables); endResetModel(); return true; } return false; }
void TableModelVariablesAvailable::setVariables(const Terms &variables) { beginResetModel(); Terms suggested; Terms allowed; Terms forbidden; foreach (const Term &term, variables) { if ( ! isAllowed(term)) forbidden.add(term); else if (isSuggested(term)) suggested.add(term); else allowed.add(term); } Terms ordered; // present them in a nice order ordered.add(suggested); ordered.add(allowed); ordered.add(forbidden); _allVariables.set(ordered); _variables.set(ordered); _variables.setSortParent(_allVariables); endResetModel(); emit variablesChanged(); }
void TableModelVariablesAssigned::unassign(const Terms &variables) { Terms variablesToKeep; variablesToKeep.set(_variables); variablesToKeep.remove(variables); setAssigned(variablesToKeep); emit unassigned(variables); }
void ReliabilityAnalysisForm::variablesChanged() { Terms variablesAvailable; variablesAvailable.add(_variableListModel->assigned()); ui->reverseScaledItems->setVariables(variablesAvailable); if (_options != NULL) _options->blockSignals(false); }
void AnovaForm::factorsChanged() { Terms factorsAvailable; factorsAvailable.add(_fixedFactorsListModel->assigned()); factorsAvailable.add(_randomFactorsListModel->assigned()); _anovaModel->setVariables(factorsAvailable); _contrastsModel->setVariables(factorsAvailable); ui->postHocTests_variables->setVariables(factorsAvailable); }
bool TableModelAnovaWithinSubjectCells::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const { Q_UNUSED(row); int colNo = (column == -1 ? parent.column() : column); int rowNo = (row == -1 ? parent.row() : row); if (_boundTo == NULL) return false; if (action == Qt::IgnoreAction) return true; if ( ! data->hasFormat("application/vnd.list.variable")) return false; if (action != Qt::MoveAction) return false; if (colNo != 0) return false; QByteArray encodedData = data->data("application/vnd.list.variable"); Terms dropped; dropped.set(encodedData); foreach (const Term &term, dropped) { if ( ! isAllowed(term)) return false; } if (rowNo == -1) { int available = 0; for (int i = 0; i < _variables.size(); i++) { if (_variables.at(i) == "") available++; } return dropped.size() <= available; } else { return dropped.size() <= _variables.size() - rowNo; } return true; }
void AnovaRepeatedMeasuresBayesianForm::bindTo(Options *options, DataSet *dataSet) { AnalysisForm::bindTo(options, dataSet); Terms factorsAvailable; foreach (const Factor &factor, _designTableModel->design()) factorsAvailable.add(factor.first); factorsAvailable.add(_betweenSubjectsFactorsListModel->assigned()); _anovaModel->setVariables(factorsAvailable); }
void AnovaRepeatedMeasuresForm::termsChanged() { Terms terms; terms.add(string("~OVERALL")); foreach (const Factor &factor, _designTableModel->design()) terms.add(factor.first); terms.add(_withinSubjectsTermsModel->terms()); ui->marginalMeansTerms->setVariables(terms); }
void TableModelVariablesAssigned::mimeDataMoved(const QModelIndexList &indices) { emit assignmentsChanging(); Terms variablesToRemove; foreach (const QModelIndex &index, indices) variablesToRemove.add(_variables.at(index.row())); unassign(variablesToRemove); emit assignmentsChanged(); }
void TableModelAnovaModel::setVariables(const Terms &fixedFactors, const Terms &randomFactors, const Terms &covariates) { _fixedFactors = fixedFactors; _randomFactors = randomFactors; _covariates = covariates; Terms all; all.add(fixedFactors); all.add(randomFactors); all.add(covariates); _variables.set(all); emit variablesAvailableChanged(); }
void AnovaRepeatedMeasuresForm::bindTo(Options *options, DataSet *dataSet) { AnalysisForm::bindTo(options, dataSet); Terms factors; foreach (const Factor &factor, _designTableModel->design()) factors.add(factor.first); _withinSubjectsTermsModel->setVariables(factors); if (_withinSubjectsTermsModel->terms().size() == 0) _withinSubjectsTermsModel->addFixedFactors(factors); _betweenSubjectsTermsModel->setVariables(_betweenSubjectsFactorsListModel->assigned()); }
void TableModelVariablesAssigned::sourceVariablesChanged() { emit assignmentsChanging(); const Terms &variables = _source->allVariables(); Terms variablesToKeep; bool variableRemoved = false; variablesToKeep.set(_variables); variableRemoved = variablesToKeep.discardWhatDoesntContainTheseComponents(variables); if (variableRemoved) setAssigned(variablesToKeep); emit assignmentsChanged(); }
bool TableModelVariables::canDropMimeData(const QMimeData *data, Qt::DropAction action, int, int, const QModelIndex &) const { if (_dragActions == Qt::CopyAction && _dropActions == Qt::MoveAction && action == Qt::MoveAction) // if delete return true; if (data->hasFormat(_mimeType)) { QByteArray encodedData = data->data(_mimeType); Terms variables; variables.set(encodedData); foreach (const Term &variable, variables) { if ( ! isAllowed(variable)) return false; } return true; }
void TableModelVariablesAssigned::assign(const Terms &variables) { if (_boundTo == NULL) return; Terms v; if (_boundTo->onlyOneTerm()) { if (variables.size() > 0) v.add(variables.at(0)); if (_variables.size() > 0) { _toSendBack.set(_variables); _variables.clear(); QTimer::singleShot(0, this, SLOT(sendBack())); } } else { v.set(_variables); v.add(variables); } setAssigned(v); emit assignedTo(variables); }
bool TableModelVariablesAssigned::canDropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const { if (_boundTo == NULL) return false; if (isDroppingToSelf(data)) return false; if ( ! TableModelVariables::canDropMimeData(data, action, row, column, parent)) return false; if (_boundTo->onlyOneTerm()) { QByteArray encodedData = data->data(_mimeType); Terms variables; variables.set(encodedData); if (variables.size() != 1) return false; } return true; }
void AnovaBayesianForm::factorsChanged() { Terms factorsAvailable; factorsAvailable.add(_fixedFactorsListModel->assigned()); factorsAvailable.add(_randomFactorsListModel->assigned()); _plotFactorsAvailableTableModel->setVariables(factorsAvailable); Terms plotVariablesAssigned; plotVariablesAssigned.add(_horizontalAxisTableModel->assigned()); plotVariablesAssigned.add(_seperateLinesTableModel->assigned()); plotVariablesAssigned.add(_seperatePlotsTableModel->assigned()); _plotFactorsAvailableTableModel->notifyAlreadyAssigned(plotVariablesAssigned); ui->postHocTestsVariables->setVariables(factorsAvailable); if (_options != NULL) _options->blockSignals(false); }
void AnovaRepeatedMeasuresForm::factorsChanged() { Terms factorsAvailable; foreach (const Factor &factor, _designTableModel->design()) factorsAvailable.add(factor.first); factorsAvailable.add(_betweenSubjectsFactorsListModel->assigned()); _contrastsModel->setVariables(factorsAvailable); _plotFactorsAvailableTableModel->setVariables(factorsAvailable); Terms plotVariablesAssigned; plotVariablesAssigned.add(_horizontalAxisTableModel->assigned()); plotVariablesAssigned.add(_seperateLinesTableModel->assigned()); plotVariablesAssigned.add(_seperatePlotsTableModel->assigned()); _plotFactorsAvailableTableModel->notifyAlreadyAssigned(plotVariablesAssigned); ui->postHocTestsVariables->setVariables(factorsAvailable); if (_options != NULL) _options->blockSignals(false); }
void AnovaForm::termsChanged() { Terms terms = _anovaModel->terms(); terms.insert(0, string("~OVERALL")); ui->marginalMeans_terms->setVariables(terms); }
bool TableModelAnovaWithinSubjectCells::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) { Q_UNUSED(column); if (action == Qt::IgnoreAction) return true; if ( ! canDropMimeData(data, action, row, column, parent)) return false; //int colNo = (column == -1 ? parent.column() : column); int rowNo = (row == -1 ? parent.row() : row); QByteArray encodedData = data->data("application/vnd.list.variable"); Terms dropped; dropped.set(encodedData); vector<string> droppedItems = dropped.asVector(); beginResetModel(); if (rowNo == -1) { int pos = 0; for (int i = 0; i < _variables.size(); i++) { if (_variables.at(i) == "") _variables[i] = droppedItems.at(pos++); if (pos >= droppedItems.size()) break; } } else { int pos = 0; for (int i = rowNo; i < _variables.size(); i++) { string existingVariable = _variables.at(i); if (existingVariable != "") _toSendBack.add(existingVariable); _variables[i] = droppedItems[pos++]; if (pos >= droppedItems.size()) break; } if (_toSendBack.size() > 0) QTimer::singleShot(0, this, SLOT(sendBack())); } _boundTo->setValue(_variables); endResetModel(); return true; }