MCPcopy Create free account
hub / github.com/KDE/falkon / loadScripts

Method loadScripts

src/plugins/GreaseMonkey/settings/gm_settings.cpp:151–196  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

149}
150
151void GM_Settings::loadScripts()
152{
153 disconnect(ui->listWidget, &QListWidget::itemChanged,
154 this, &GM_Settings::itemChanged);
155
156 ui->listWidget->clear();
157
158 const auto allScripts = m_manager->allScripts();
159 for (GM_Script* script : allScripts) {
160 auto* item = new QListWidgetItem(ui->listWidget);
161 item->setText(script->name());
162 item->setIcon(script->icon());
163 item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
164 item->setCheckState(script->isEnabled() ? Qt::Checked : Qt::Unchecked);
165 item->setData(Qt::UserRole + 10, QVariant::fromValue((void*)script));
166
167 connect(script, &GM_Script::updatingChanged, this, [this]() {
168 ui->listWidget->viewport()->update();
169 });
170
171 ui->listWidget->addItem(item);
172 }
173
174 ui->listWidget->sortItems();
175
176 bool itemMoved;
177 do {
178 itemMoved = false;
179 for (int i = 0; i < ui->listWidget->count(); ++i) {
180 QListWidgetItem* topItem = ui->listWidget->item(i);
181 QListWidgetItem* bottomItem = ui->listWidget->item(i + 1);
182 if (!topItem || !bottomItem) {
183 continue;
184 }
185
186 if (topItem->checkState() == Qt::Unchecked && bottomItem->checkState() == Qt::Checked) {
187 QListWidgetItem* item = ui->listWidget->takeItem(i + 1);
188 ui->listWidget->insertItem(i, item);
189 itemMoved = true;
190 }
191 }
192 }
193 while (itemMoved);
194
195 connect(ui->listWidget, &QListWidget::itemChanged, this, &GM_Settings::itemChanged);
196}
197
198GM_Script* GM_Settings::getScript(QListWidgetItem* item)
199{

Callers

nothing calls this directly

Calls 14

allScriptsMethod · 0.80
sortItemsMethod · 0.80
clearMethod · 0.45
setTextMethod · 0.45
nameMethod · 0.45
setIconMethod · 0.45
iconMethod · 0.45
flagsMethod · 0.45
isEnabledMethod · 0.45
setDataMethod · 0.45
updateMethod · 0.45
addItemMethod · 0.45

Tested by

no test coverage detected