//-------------------------------------------------------------- void testApp::dragEvent(ofDragInfo dragInfo){ for(int i = 0; i < dragInfo.files.size(); i++) { string path = dragInfo.files[i]; ofFile f(path); ofFile parent(f.getEnclosingDirectory()); if(parent.getFileName()=="addons") { string addon = f.getFileName(); addAddon(addon); } } }
void baseProject::parseAddons(){ ofFile addonsMake(ofFilePath::join(projectDir,"addons.make")); ofBuffer addonsMakeMem; addonsMake >> addonsMakeMem; while(!addonsMakeMem.isLastLine()){ ofAddon addon; cout << projectDir << endl; addon.pathToOF = getOFRelPath(projectDir); cout << addon.pathToOF << endl; addon.fromFS(ofFilePath::join(ofFilePath::join(getOFRoot(), "addons"), addonsMakeMem.getNextLine()),target); addAddon(addon); } }
void AddonsContentsWidget::showContextMenu(const QPoint &point) { const QModelIndex index(m_ui->addonsViewWidget->indexAt(point)); QMenu menu(this); if (index.isValid() && index.parent() != m_model->invisibleRootItem()->index()) { menu.addAction(tr("Reload Addon"), this, SLOT(reloadAddon())); menu.addSeparator(); menu.addAction(tr("Remove Addon…"), this, SLOT(removeAddons()))->setEnabled(false); menu.addSeparator(); } menu.addAction(tr("Add Addon…"), this, SLOT(addAddon())); menu.exec(m_ui->addonsViewWidget->mapToGlobal(point)); }
void AddonsContentsWidget::populateAddons() { m_types.clear(); m_types[Addon::UserScriptType] = 0; QStandardItem *userScriptsItem(new QStandardItem(ThemesManager::getIcon(QLatin1String("addon-user-script"), false), tr("User Scripts"))); userScriptsItem->setData(Addon::UserScriptType, TypeRole); m_model->appendRow(userScriptsItem); const QStringList userScripts(AddonsManager::getUserScripts()); for (int i = 0; i < userScripts.count(); ++i) { addAddon(AddonsManager::getUserScript(userScripts.at(i))); } m_ui->addonsViewWidget->setModel(m_model); m_ui->addonsViewWidget->expandAll(); m_isLoading = false; emit loadingStateChanged(WindowsManager::FinishedLoadingState); }
void AddonsContentsWidget::addAddon() { const QStringList sourcePaths(QFileDialog::getOpenFileNames(this, tr("Select Files"), QStandardPaths::standardLocations(QStandardPaths::HomeLocation).value(0), Utils::formatFileTypes(QStringList(tr("User Script files (*.js)"))))); if (sourcePaths.isEmpty()) { return; } QStringList failedPaths; ReplaceMode replaceMode(UnknownMode); for (int i = 0; i < sourcePaths.count(); ++i) { if (sourcePaths.at(i).isEmpty()) { continue; } const QString scriptName(QFileInfo(sourcePaths.at(i)).completeBaseName()); const QString targetDirectory(QDir(SessionsManager::getWritableDataPath(QLatin1String("scripts"))).filePath(scriptName)); const QString targetPath(QDir(targetDirectory).filePath(QFileInfo(sourcePaths.at(i)).fileName())); bool replaceScript(false); if (QFile::exists(targetPath)) { if (replaceMode == IgnoreAllMode) { continue; } if (replaceMode == ReplaceAllMode) { replaceScript = true; } else { QMessageBox messageBox; messageBox.setWindowTitle(tr("Question")); messageBox.setText(tr("User Script with this name already exists:\n%1").arg(targetPath)); messageBox.setInformativeText(tr("Do you want to replace it?")); messageBox.setIcon(QMessageBox::Question); messageBox.addButton(QMessageBox::Yes); messageBox.addButton(QMessageBox::No); if (i < (sourcePaths.count() - 1)) { messageBox.setCheckBox(new QCheckBox(tr("Apply to all"))); } messageBox.exec(); replaceScript = (messageBox.standardButton(messageBox.clickedButton()) == QMessageBox::Yes); if (messageBox.checkBox() && messageBox.checkBox()->isChecked()) { replaceMode = (replaceScript ? ReplaceAllMode : IgnoreAllMode); } } if (!replaceScript) { continue; } } if ((replaceScript && !QDir().remove(targetPath)) || (!replaceScript && !QDir().mkpath(targetDirectory)) || !QFile::copy(sourcePaths.at(i), targetPath)) { failedPaths.append(sourcePaths.at(i)); continue; } if (replaceScript) { UserScript *script(AddonsManager::getUserScript(scriptName)); if (script) { script->reload(); } } else { UserScript script(targetPath); addAddon(&script); } } if (!failedPaths.isEmpty()) { QMessageBox::critical(this, tr("Error"), tr("Failed to import following User Script file(s):\n%1", "" , failedPaths.count()).arg(failedPaths.join(QLatin1Char('\n'))), QMessageBox::Close); } save(); AddonsManager::loadUserScripts(); }