64
78
void BehaviorConfig_Shorten::load()
66
availablePlugins = Choqok::PluginManager::self()->availablePlugins("Shorteners");
80
QList<KPluginInfo> plugins = Choqok::PluginManager::self()->availablePlugins("Shorteners");
67
81
shortenPlugins->clear();
68
shortenPlugins->addItem( i18n("None") );
69
foreach(const KPluginInfo& plugin, availablePlugins){
82
shortenPlugins->addItem( i18n("None"), QLatin1String("none") );
83
foreach(const KPluginInfo& plugin, plugins){
70
84
shortenPlugins->addItem( KIcon(plugin.icon()), plugin.name(), plugin.pluginName());
85
availablePlugins.insert(plugin.pluginName(), plugin);
72
87
prevShortener = Choqok::BehaviorSettings::shortenerPlugin();
73
88
if(!prevShortener.isEmpty()) {
105
void BehaviorConfig_Shorten::slotAboutClicked()
107
const QString shorten = shortenPlugins->itemData(shortenPlugins->currentIndex()).toString();
108
if(shorten == "none")
110
KPluginInfo info = availablePlugins.value(shorten);
112
KAboutData aboutData(info.name().toUtf8(), info.name().toUtf8(), ki18n(info.name().toUtf8()), info.version().toUtf8(), ki18n(info.comment().toUtf8()), KAboutLicense::byKeyword(info.license()).key(), ki18n(QByteArray()), ki18n(QByteArray()), info.website().toLatin1());
113
aboutData.setProgramIconName(info.icon());
114
aboutData.addAuthor(ki18n(info.author().toUtf8()), ki18n(QByteArray()), info.email().toUtf8(), 0);
116
KAboutApplicationDialog aboutPlugin(&aboutData, this);
120
void BehaviorConfig_Shorten::slotConfigureClicked()
123
KPluginInfo pluginInfo = availablePlugins.value( shortenPlugins->itemData(shortenPlugins->currentIndex() ).toString() );
124
kDebug()<<pluginInfo.name()<<pluginInfo.kcmServices().count();
126
KDialog configDialog(this);
127
configDialog.setWindowTitle(pluginInfo.name());
128
// The number of KCModuleProxies in use determines whether to use a tabwidget
129
KTabWidget *newTabWidget = 0;
130
// Widget to use for the setting dialog's main widget,
131
// either a KTabWidget or a KCModuleProxy
132
QWidget * mainWidget = 0;
133
// Widget to use as the KCModuleProxy's parent.
134
// The first proxy is owned by the dialog itself
135
QWidget *moduleProxyParentWidget = &configDialog;
137
foreach (const KService::Ptr &servicePtr, pluginInfo.kcmServices()) {
138
if(!servicePtr->noDisplay()) {
139
KCModuleInfo moduleInfo(servicePtr);
140
KCModuleProxy *currentModuleProxy = new KCModuleProxy(moduleInfo, moduleProxyParentWidget);
141
if (currentModuleProxy->realModule()) {
142
moduleProxyList << currentModuleProxy;
143
if (mainWidget && !newTabWidget) {
144
// we already created one KCModuleProxy, so we need a tab widget.
145
// Move the first proxy into the tab widget and ensure this and subsequent
146
// proxies are in the tab widget
147
newTabWidget = new KTabWidget(&configDialog);
148
moduleProxyParentWidget = newTabWidget;
149
mainWidget->setParent( newTabWidget );
150
KCModuleProxy *moduleProxy = qobject_cast<KCModuleProxy*>(mainWidget);
152
newTabWidget->addTab(mainWidget, moduleProxy->moduleInfo().moduleName());
153
mainWidget = newTabWidget;
157
moduleProxyParentWidget = &configDialog;
158
mainWidget->setParent(0);
163
newTabWidget->addTab(currentModuleProxy, servicePtr->name());
165
mainWidget = currentModuleProxy;
168
delete currentModuleProxy;
173
// it could happen that we had services to show, but none of them were real modules.
174
if (moduleProxyList.count()) {
175
configDialog.setButtons(KDialog::Ok | KDialog::Cancel);
177
QWidget *showWidget = new QWidget(&configDialog);
178
QVBoxLayout *layout = new QVBoxLayout;
179
showWidget->setLayout(layout);
180
layout->addWidget(mainWidget);
181
layout->insertSpacing(-1, KDialog::marginHint());
182
configDialog.setMainWidget(showWidget);
184
// connect(&configDialog, SIGNAL(defaultClicked()), this, SLOT(slotDefaultClicked()));
186
if (configDialog.exec() == QDialog::Accepted) {
187
foreach (KCModuleProxy *moduleProxy, moduleProxyList) {
188
QStringList parentComponents = moduleProxy->moduleInfo().service()->property("X-KDE-ParentComponents").toStringList();
190
// foreach (const QString &parentComponent, parentComponents) {
191
// emit configCommitted(parentComponent.toLatin1());
195
foreach (KCModuleProxy *moduleProxy, moduleProxyList) {
200
qDeleteAll(moduleProxyList);
201
moduleProxyList.clear();
205
#include "behaviorconfig_shorten.moc"