diff --git a/libs/ui/dialogs/kis_dlg_blacklist_cleanup.cpp b/libs/ui/dialogs/kis_dlg_blacklist_cleanup.cpp
--- a/libs/ui/dialogs/kis_dlg_blacklist_cleanup.cpp
+++ b/libs/ui/dialogs/kis_dlg_blacklist_cleanup.cpp
@@ -62,5 +62,8 @@
if (cbRemovePattern->isChecked()) {
KoResourceServerProvider::instance()->patternServer()->removeBlackListedFiles();
}
+ if (cbRemoveBundles->isChecked()) {
+ KisResourceServerProvider::instance()->resourceBundleServer()->removeBlackListedFiles();
+ }
}
diff --git a/libs/ui/forms/wdgdlgblacklistcleanup.ui b/libs/ui/forms/wdgdlgblacklistcleanup.ui
--- a/libs/ui/forms/wdgdlgblacklistcleanup.ui
+++ b/libs/ui/forms/wdgdlgblacklistcleanup.ui
@@ -7,7 +7,7 @@
0
0
457
- 200
+ 312
@@ -117,6 +117,16 @@
+ -
+
+
+ Bundles
+
+
+ true
+
+
+
diff --git a/plugins/extensions/resourcemanager/dlg_bundle_manager.h b/plugins/extensions/resourcemanager/dlg_bundle_manager.h
--- a/plugins/extensions/resourcemanager/dlg_bundle_manager.h
+++ b/plugins/extensions/resourcemanager/dlg_bundle_manager.h
@@ -44,8 +44,6 @@
private Q_SLOTS:
void accept() override;
- void addSelected();
- void removeSelected();
void itemSelected(QListWidgetItem *current, QListWidgetItem *previous);
void itemSelected(QListWidgetItem *current);
void editBundle();
@@ -56,6 +54,9 @@
void slotShareResources();
void setKnsrcFile(const QString& knsrcFileArg);
+ void deleteBundle();
+ void searchTextChanged();
+
private:
QWidget *m_page;
@@ -71,6 +72,8 @@
KisActionManager *m_actionManager;
ResourceManager *m_resourceManager;
+ QString searchTerm;
+
class Private;
Private *const d;
};
diff --git a/plugins/extensions/resourcemanager/dlg_bundle_manager.cpp b/plugins/extensions/resourcemanager/dlg_bundle_manager.cpp
--- a/plugins/extensions/resourcemanager/dlg_bundle_manager.cpp
+++ b/plugins/extensions/resourcemanager/dlg_bundle_manager.cpp
@@ -33,6 +33,7 @@
#include "kis_action.h"
#include
#include "KoResourceModel.h"
+#include "KoResourceServer.h"
#include "content_dowloader_dialog.h"
@@ -63,26 +64,21 @@
resize(m_page->sizeHint());
setButtons(Ok | Cancel);
setDefaultButton(Ok);
+ m_ui->bnDeleteBundle->setVisible(false);
QString knsrcFile = "kritaresourcebundles.knsrc";
setKnsrcFile(knsrcFile);
+ m_ui->searchLineEdit->setClearButtonEnabled(true);
+ m_ui->searchLineEdit->addAction(QIcon::fromTheme(QStringLiteral("system-search")), QLineEdit::LeadingPosition);
+ m_ui->searchLineEdit->setPlaceholderText("Search for the bundle name..");
+ searchTerm = m_ui->searchLineEdit->text();
+
m_ui->listActive->setIconSize(QSize(ICON_SIZE, ICON_SIZE));
m_ui->listActive->setSelectionMode(QAbstractItemView::SingleSelection);
connect(m_ui->listActive, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), SLOT(itemSelected(QListWidgetItem*,QListWidgetItem*)));
connect(m_ui->listActive, SIGNAL(itemClicked(QListWidgetItem*)), SLOT(itemSelected(QListWidgetItem*)));
- m_ui->listInactive->setIconSize(QSize(ICON_SIZE, ICON_SIZE));
- m_ui->listInactive->setSelectionMode(QAbstractItemView::SingleSelection);
- connect(m_ui->listInactive, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), SLOT(itemSelected(QListWidgetItem*,QListWidgetItem*)));
- connect(m_ui->listInactive, SIGNAL(itemClicked(QListWidgetItem*)), SLOT(itemSelected(QListWidgetItem*)));
-
- m_ui->bnAdd->setIcon(KisIconUtils::loadIcon("arrow-right"));
- connect(m_ui->bnAdd, SIGNAL(clicked()), SLOT(addSelected()));
-
- m_ui->bnRemove->setIcon(KisIconUtils::loadIcon("arrow-left"));
- connect(m_ui->bnRemove, SIGNAL(clicked()), SLOT(removeSelected()));
-
m_ui->listBundleContents->setHeaderLabel(i18n("Resource"));
m_ui->listBundleContents->setSelectionMode(QAbstractItemView::NoSelection);
@@ -105,6 +101,9 @@
connect(m_ui->deleteBackupFilesButton, SIGNAL(clicked()), SLOT(slotDeleteBackupFiles()));
connect(m_ui->openResourceFolderButton, SIGNAL(clicked()), SLOT(slotOpenResourceFolder()));
+ connect(m_ui->bnDeleteBundle, SIGNAL(clicked()), SLOT(deleteBundle()));
+ connect(m_ui->searchLineEdit, SIGNAL(textChanged(QString)), SLOT(searchTextChanged()));
+
}
@@ -112,7 +111,6 @@
{
KoResourceServer *bundleServer = KisResourceServerProvider::instance()->resourceBundleServer();
- m_ui->listInactive->clear();
m_ui->listActive->clear();
Q_FOREACH (const QString &f, bundleServer->blackListedFiles()) {
@@ -123,7 +121,6 @@
m_blacklistedBundles[f] = bundle;
}
}
- fillListWidget(m_blacklistedBundles.values(), m_ui->listInactive);
Q_FOREACH (KisResourceBundle *bundle, bundleServer->resources()) {
if (bundle->valid()) {
@@ -184,38 +181,9 @@
}
}
- for (int i = 0; i < m_ui->listInactive->count(); ++i) {
- QListWidgetItem *item = m_ui->listInactive->item(i);
- QByteArray ba = item->data(Qt::UserRole).toByteArray();
- KisResourceBundle *bundle = bundleServer->resourceByMD5(ba);
-
-
- if (bundle && bundle->isInstalled()) {
- bundle->uninstall();
- bundleServer->removeResourceAndBlacklist(bundle);
- }
- }
-
-
KoDialog::accept();
}
-void DlgBundleManager::addSelected()
-{
-
- Q_FOREACH (QListWidgetItem *item, m_ui->listActive->selectedItems()) {
- m_ui->listInactive->addItem(m_ui->listActive->takeItem(m_ui->listActive->row(item)));
- }
-
-}
-
-void DlgBundleManager::removeSelected()
-{
- Q_FOREACH (QListWidgetItem *item, m_ui->listInactive->selectedItems()) {
- m_ui->listActive->addItem(m_ui->listInactive->takeItem(m_ui->listInactive->row(item)));
- }
-}
-
void DlgBundleManager::itemSelected(QListWidgetItem *current, QListWidgetItem *)
{
if (!current) {
@@ -303,6 +271,8 @@
m_currentBundle = 0;
}
}
+
+ m_ui->bnDeleteBundle->setVisible(true);
}
void DlgBundleManager::itemSelected(QListWidgetItem *current)
@@ -344,6 +314,7 @@
QListWidgetItem *item = new QListWidgetItem(pixmap, bundle->name());
item->setData(Qt::UserRole, bundle->md5());
w->addItem(item);
+
}
}
@@ -434,3 +405,40 @@
d->knsrcFile = knsrcFileArg;
}
+void DlgBundleManager::deleteBundle()
+{
+ KoResourceServer *bundleServer = KisResourceServerProvider::instance()->resourceBundleServer();
+
+ Q_FOREACH (QListWidgetItem *item, m_ui->listActive->selectedItems()) {
+
+ QByteArray ba = item->data(Qt::UserRole).toByteArray();
+ KisResourceBundle *bundle = bundleServer->resourceByMD5(ba);
+
+ m_activeBundles.remove(m_currentBundle->filename());
+ m_ui->listActive->takeItem(m_ui->listActive->row(item));
+ bundleServer->removeResourceAndBlacklist(bundle);
+ }
+}
+
+void DlgBundleManager::searchTextChanged()
+{
+ KoResourceServer *bundleServer = KisResourceServerProvider::instance()->resourceBundleServer();
+
+ m_ui->listActive->clear();
+
+ Q_FOREACH (const QString &f, bundleServer->blackListedFiles()) {
+ KisResourceBundle *bundle = new KisResourceBundle(f);
+ bundle->load();
+ if (bundle->valid()) {
+ bundle->setInstalled(false);
+ m_blacklistedBundles[f] = bundle;
+ }
+ }
+
+ Q_FOREACH (KisResourceBundle *bundle, bundleServer->resources()) {
+ if(bundle->name().contains(searchTerm)) {
+ m_activeBundles[bundle->filename()] = bundle;
+ }
+ fillListWidget(m_activeBundles.values(), m_ui->listActive);
+ }
+}
diff --git a/plugins/extensions/resourcemanager/wdgdlgbundlemanager.ui b/plugins/extensions/resourcemanager/wdgdlgbundlemanager.ui
--- a/plugins/extensions/resourcemanager/wdgdlgbundlemanager.ui
+++ b/plugins/extensions/resourcemanager/wdgdlgbundlemanager.ui
@@ -7,147 +7,11 @@
0
0
835
- 712
+ 814
- -
-
-
-
-
-
- Active Bundles
-
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 0
- 200
-
-
-
- true
-
-
- QAbstractItemView::ExtendedSelection
-
-
- 1
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Create New Bundle
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
- -
-
-
- ...
-
-
-
- -
-
-
- ...
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 40
-
-
-
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Inactive Bundles
-
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 0
- 200
-
-
-
- QAbstractItemView::ExtendedSelection
-
-
- 1
-
-
-
-
-
-
-
-
- -
+
-
-
@@ -246,7 +110,72 @@
- -
+
-
+
+
-
+
+
+ Search:
+
+
+
+ -
+
+
+
+
+ -
+
+
-
+
+
+ Active Bundles
+
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 200
+
+
+
+ true
+
+
+ QAbstractItemView::ExtendedSelection
+
+
+ 1
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Create New Bundle
+
+
+
+
+
+
+
+
+ -
@@ -539,6 +468,32 @@
+ -
+
+
+ -
+
+
+ -
+
+
+ Delete Bundle
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+