void ExternalToolsDialog::Apply() { // If a tool doesn't have a name, give it one since this prevents // us from putting it in the menu. int selectedItem = m_listBox->GetSelection(); for (unsigned int i = 0; i < m_workingTools.size(); ++i) { ExternalTool* tool = m_workingTools[i]; if (tool->GetTitle().IsEmpty()) { tool->SetTitle("Unnamed Tool"); m_listBox->Delete(i); m_listBox->Insert(tool->GetTitle(), i); } } m_listBox->SetSelection(selectedItem); UpdateControlsForSelection(selectedItem); // Apply the changes. CopyVector(*m_appliedTools, m_workingTools); }
void ExternalToolsDialog::OnEventHook(wxCommandEvent& event) { ExternalTool* tool = GetSelectedTool(); if (tool != NULL) { tool->SetEvent(m_externalEvents[m_eventHookList->GetSelection()]); } }
void ExternalToolsDialog::OnInitialDirectoryTextBoxChanged(wxCommandEvent& event) { ExternalTool* tool = GetSelectedTool(); if (tool != NULL) { tool->SetInitialDirectory(m_initialDirectoryTextBox->GetValue()); } }
void ExternalToolsDialog::OnArgumentsTextBoxChanged(wxCommandEvent& event) { ExternalTool* tool = GetSelectedTool(); if (tool != NULL) { tool->SetArguments(m_argumentsTextBox->GetValue()); } }
void ExternalToolsDialog::OnAdd(wxCommandEvent& event) { ExternalTool* tool = new ExternalTool; m_workingTools.push_back(tool); m_listBox->Append(tool->GetTitle()); int newItem = m_listBox->GetCount() - 1; m_listBox->SetSelection(newItem); UpdateControlsForSelection(newItem); m_titleTextBox->SetFocus(); }
void ExternalToolsDialog::OnTitleTextBoxChanged(wxCommandEvent& event) { ExternalTool* tool = GetSelectedTool(); if (tool != NULL) { tool->SetTitle(m_titleTextBox->GetValue()); int selectedItem = m_listBox->GetSelection(); m_listBox->Delete(selectedItem); m_listBox->Insert(tool->GetTitle(), selectedItem); m_listBox->SetSelection(selectedItem); } }
void ExternalToolsFilter::prepareSearch(const QString &entry) { m_results.clear(); Qt::CaseSensitivity useCaseSensitivity = caseSensitivity(entry); const QMap<QString, ExternalTool *> externalToolsById = ExternalToolManager::toolsById(); auto end = externalToolsById.cend(); for (auto it = externalToolsById.cbegin(); it != end; ++it) { ExternalTool *tool = *it; if (tool->description().contains(entry, useCaseSensitivity) || tool->displayName().contains(entry, useCaseSensitivity)) { LocatorFilterEntry filterEntry(this, tool->displayName(), QVariant::fromValue(tool)); filterEntry.extraInfo = tool->description(); m_results.append(filterEntry); } } }
QList<Task *> SpideyAlignmentTask::onSubTaskFinished(Task *subTask) { QList<Task *> res; propagateSubtaskError(); if (hasError() || isCanceled()) { return res; } if (subTask == prepareDataForSpideyTask) { SAFE_POINT(!prepareDataForSpideyTask->getResultPath().isEmpty(), "Invalid result path!", res); tmpOutputUrl = prepareDataForSpideyTask->getResultPath(); const QStringList &arguments = prepareDataForSpideyTask->getArgumentsList(); spideyTask = new ExternalToolRunTask(ET_SPIDEY, arguments, new SpideyLogParser()); spideyTask->setSubtaskProgressWeight(95); res.append(spideyTask); } else if (subTask == spideyTask) { if (!QFile::exists(tmpOutputUrl)) { if (AppContext::getExternalToolRegistry()->getByName(ET_SPIDEY)->isValid()) { stateInfo.setError(tr("Output file not found")); } else { ExternalTool *spideyTool = AppContext::getExternalToolRegistry()->getByName(ET_SPIDEY); SAFE_POINT(NULL != spideyTool, "Invalid Spidey tool!", res); stateInfo.setError( tr("Output file not found. May be %1 tool path '%2' not valid?") .arg(spideyTool->getName()).arg(spideyTool->getPath())); } return res; } // parse result QFile resultFile(tmpOutputUrl); if (!resultFile.open(QFile::ReadOnly)) { setError(tr("Failed to open result file %1").arg(tmpOutputUrl)); return res; } QTextStream inStream(&resultFile); bool strandDirect = true; U2Location location; location->op = U2LocationOperator_Join; while (!inStream.atEnd()) { QByteArray buf = inStream.readLine().toLatin1(); if (buf.startsWith("Strand")) { strandDirect = buf.contains("plus"); } if (buf.startsWith("Exon")) { // TODO: better to use reg exp here int startPos = buf.indexOf(":") + 1; int endPos = buf.indexOf("(gen)"); if (startPos == -1 || endPos == -1) { continue; } QByteArray loc = buf.mid(startPos, endPos - startPos).trimmed(); QList<QByteArray> loci = loc.split('-'); if (loci.size() < 2) { continue; } int start = QString(loci.at(0)).toInt(); int finish = QString(loci.at(1)).toInt(); if (start == finish) { continue; } location->regions.append(U2Region(start - 1, finish - start + 1)); } } if (!location->isEmpty()) { SharedAnnotationData data(new AnnotationData); data->location = location; data->setStrand(U2Strand(strandDirect ? U2Strand::Direct : U2Strand::Complementary)); data->type = U2FeatureTypes::Exon; data->name = "exon"; U1AnnotationUtils::addDescriptionQualifier(data, annDescription); resultAnnotations.append(data); } } return res; }
ExternalTool::ExternalTool(const ExternalTool& other) : ExternalTool(other.executable(), other.parameters()) {}
void ExternaltoolTest::testReadLocale() { QString error; ExternalTool *tool; tool = ExternalTool::createFromXml(QByteArray(TEST_XML_LANG), &error); QVERIFY(tool != 0); QVERIFY(error.isEmpty()); QCOMPARE(tool->description(), QString::fromLatin1("Hi")); QCOMPARE(tool->displayName(), QString::fromLatin1("Hi")); QCOMPARE(tool->displayCategory(), QString::fromLatin1("Hi")); delete tool; tool = ExternalTool::createFromXml(QByteArray(TEST_XML_LANG), &error, QLatin1String("uk")); QVERIFY(tool != 0); QVERIFY(error.isEmpty()); QCOMPARE(tool->description(), QString::fromLatin1("Hi")); QCOMPARE(tool->displayName(), QString::fromLatin1("Hi")); QCOMPARE(tool->displayCategory(), QString::fromLatin1("Hi")); delete tool; tool = ExternalTool::createFromXml(QByteArray(TEST_XML_LANG), &error, QLatin1String("de_DE.UTF-8")); QVERIFY(tool != 0); QVERIFY(error.isEmpty()); QCOMPARE(tool->description(), QString::fromLatin1("Hallo")); QCOMPARE(tool->displayName(), QString::fromLatin1("Hallo")); QCOMPARE(tool->displayCategory(), QString::fromLatin1("Hallo")); delete tool; tool = ExternalTool::createFromXml(QByteArray(TEST_XML_LANG), &error, QLatin1String("de_CH")); QVERIFY(tool != 0); QVERIFY(error.isEmpty()); QCOMPARE(tool->description(), QString::fromLatin1("Grüezi")); QCOMPARE(tool->displayName(), QString::fromLatin1("Grüezi")); QCOMPARE(tool->displayCategory(), QString::fromLatin1("Grüezi")); delete tool; }
void ExternaltoolTest::testRead3() { QString error; ExternalTool *tool = ExternalTool::createFromXml(QByteArray(TEST_XML3), &error); QVERIFY(tool != 0); QVERIFY(error.isEmpty()); QCOMPARE(tool->id(), QString::fromLatin1("vi")); QVERIFY(tool->description().startsWith(QLatin1String("Opens the"))); QCOMPARE(tool->displayName(), QString::fromLatin1("Edit with vi")); QCOMPARE(tool->displayCategory(), QString::fromLatin1("Text")); QCOMPARE(tool->order(), -1); QCOMPARE(tool->executables().size(), 1); QCOMPARE(tool->executables().at(0), QString::fromLatin1("xterm")); QVERIFY(tool->arguments().startsWith(QLatin1String("-geom %{"))); QCOMPARE(tool->input(), QString()); QCOMPARE(tool->workingDirectory(), QString::fromLatin1("%{CurrentPath}")); QCOMPARE(tool->outputHandling(), ExternalTool::ShowInPane); QCOMPARE(tool->modifiesCurrentDocument(), true); QCOMPARE(tool->errorHandling(), ExternalTool::ShowInPane); delete tool; }
void ExternaltoolTest::testRead2() { QString error; ExternalTool *tool = ExternalTool::createFromXml(QByteArray(TEST_XML2), &error); QVERIFY(tool != 0); QVERIFY(error.isEmpty()); QCOMPARE(tool->id(), QString::fromLatin1("sort")); QVERIFY(tool->description().startsWith(QLatin1String("Sorts the"))); QCOMPARE(tool->displayName(), QString::fromLatin1("Sort")); QCOMPARE(tool->displayCategory(), QString::fromLatin1("Text")); QCOMPARE(tool->order(), -1); QCOMPARE(tool->executables().size(), 1); QCOMPARE(tool->executables().at(0), QString::fromLatin1("sort")); QCOMPARE(tool->arguments(), QString()); QCOMPARE(tool->input(), QString::fromLatin1("%{CurrentSelection}")); QCOMPARE(tool->workingDirectory(), QString::fromLatin1("%{CurrentPath}")); QCOMPARE(tool->outputHandling(), ExternalTool::ReplaceSelection); QCOMPARE(tool->errorHandling(), ExternalTool::ShowInPane); delete tool; }
void ExternaltoolTest::testRead1() { QString error; ExternalTool *tool = ExternalTool::createFromXml(QByteArray(TEST_XML1), &error); QVERIFY(tool != 0); QVERIFY(error.isEmpty()); QCOMPARE(tool->id(), QString::fromLatin1("lupdate")); QVERIFY(tool->description().startsWith(QLatin1String("Synchronizes tran"))); QCOMPARE(tool->displayName(), QString::fromLatin1("Update translations (lupdate)")); QCOMPARE(tool->displayCategory(), QString::fromLatin1("Linguist")); QCOMPARE(tool->order(), 1); QCOMPARE(tool->executables().size(), 2); QCOMPARE(tool->executables().at(0), QString::fromLatin1("%{QT_INSTALL_BINS}/lupdate")); QCOMPARE(tool->executables().at(1), QString::fromLatin1("lupdate")); QCOMPARE(tool->arguments(), QString::fromLatin1("%{CurrentProjectFilePath}")); QCOMPARE(tool->input(), QString()); QCOMPARE(tool->workingDirectory(), QString::fromLatin1("%{CurrentProjectPath}")); QCOMPARE(tool->outputHandling(), ExternalTool::ShowInPane); QCOMPARE(tool->errorHandling(), ExternalTool::Ignore); delete tool; }