MCPcopy Create free account
hub / github.com/LeFroid/Viper-Browser / createScript

Method createScript

src/core/user_scripts/UserScriptManager.cpp:145–184  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

143}
144
145void UserScriptManager::createScript(const QString &name, const QString &nameSpace, const QString &description, const QString &version)
146{
147 // Require a name and namespace
148 if (name.isEmpty() || nameSpace.isEmpty())
149 return;
150
151 QString fileName = QString("%1%2%3.%4.user.js").arg(m_model->m_userScriptDir).arg(QDir::separator()).arg(nameSpace).arg(name);
152 QFile f(fileName);
153 if (f.exists())
154 {
155 fileName = QString("%1%2%3.%4.user.js").arg(m_model->m_userScriptDir).arg(QDir::separator()).arg(name).arg(nameSpace);
156 f.setFileName(fileName);
157
158 // Exit if the second attempt to find an unused name fails
159 if (f.exists())
160 return;
161 }
162
163 if (!f.open(QIODevice::WriteOnly))
164 return;
165
166 // Create metadata block and write to file
167 QByteArray scriptData;
168 scriptData.append(QString("// ==UserScript==\n"));
169 scriptData.append(QString("// @name %1\n").arg(name));
170 scriptData.append(QString("// @namespace %1\n").arg(nameSpace));
171 scriptData.append(QString("// @description %1\n").arg(description));
172 scriptData.append(QString("// @version %1\n").arg(version));
173 scriptData.append(QString("// ==/UserScript==\n\n"));
174 scriptData.append(QString("// Don't forget to add @include, @exclude and/or @match rules to the script header!"));
175 f.write(scriptData);
176 f.close();
177
178 UserScript script;
179 if (script.load(fileName, m_model->m_scriptTemplate))
180 {
181 m_model->addScript(std::move(script));
182 emit scriptCreated(m_model->rowCount() - 1);
183 }
184}
185
186void UserScriptManager::onSettingChanged(BrowserSetting setting, const QVariant &value)
187{

Callers

nothing calls this directly

Calls 3

addScriptMethod · 0.80
loadMethod · 0.45
rowCountMethod · 0.45

Tested by

no test coverage detected