Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1
kdebase4
patch-r900427.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File patch-r900427.diff of Package kdebase4
Subject: fix changing file associations causes systemsettings to crash From: wstephenson@suse.de Bug: kde#168934 Patch-upstream: 900427 --- apps/konqueror/settings/filetypes/kservicelistwidget.cpp (revision 900426) +++ apps/konqueror/settings/filetypes/kservicelistwidget.cpp (revision 900427) @@ -154,11 +154,6 @@ void KServiceListWidget::setMimeTypeData servUpButton->setEnabled(false); servDownButton->setEnabled(false); - if ( servRemoveButton ) - servRemoveButton->setEnabled(false); - if ( servEditButton ) - servEditButton->setEnabled(false); - servicesLB->clear(); servicesLB->setEnabled(false); @@ -181,6 +176,11 @@ void KServiceListWidget::setMimeTypeData servicesLB->setEnabled(true); } } + + if (servRemoveButton) + servRemoveButton->setEnabled(servicesLB->currentRow() > -1); + if (servEditButton) + servEditButton->setEnabled(servicesLB->currentRow() > -1); } void KServiceListWidget::promoteService() @@ -259,21 +259,26 @@ void KServiceListWidget::addService() return; } - // if None is the only item, then there currently is no default - if (servicesLB->count() >= 1 && servicesLB->item(0)->text() == i18n("None")) { - delete servicesLB->takeItem(0); + // Did the list simply show "None"? + const bool hadDummyEntry = ( m_kind == SERVICELIST_APPLICATIONS ) + ? m_mimeTypeData->appServices().isEmpty() + : m_mimeTypeData->embedServices().isEmpty(); + + if (hadDummyEntry) { + delete servicesLB->takeItem(0); // Remove the "None" item. servicesLB->setEnabled(true); - } - else - { + } else { // check if it is a duplicate entry - for (int index = 0; index < servicesLB->count(); index++) + for (int index = 0; index < servicesLB->count(); index++) { if (static_cast<KServiceListItem*>( servicesLB->item(index) )->desktopPath - == service->entryPath()) + == service->entryPath()) { + // ##### shouldn't we make the existing entry the default one? return; + } + } } - servicesLB->insertItem( 0 , new KServiceListItem(service, m_kind) ); + servicesLB->insertItem(0, new KServiceListItem(service, m_kind)); servicesLB->setCurrentItem(0); updatePreferredServices(); @@ -368,11 +373,8 @@ void KServiceListWidget::removeService() } } - if ( servRemoveButton && servicesLB->currentRow() == -1 ) - servRemoveButton->setEnabled(false); - - if ( servEditButton && servicesLB->currentRow() == -1 ) - servEditButton->setEnabled(false); + // Update buttons and service list again (e.g. to re-add "None") + setMimeTypeData(m_mimeTypeData); } void KServiceListWidget::updatePreferredServices() Index: apps/konqueror/settings/filetypes/kservicelistwidget.cpp ===================================================================
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor