- if (event->spontaneous()) {
- Panel::showEvent(event);
- return;
- }
-
- if (!m_controller) {
- // Postpone the creating of the controller to the first show event.
- // This assures that no performance and memory overhead is given when the folders panel is not
- // used at all and stays invisible.
- m_model = new PlacesItemModel(this);
- m_model->setGroupedSorting(true);
- connect(m_model, &PlacesItemModel::errorMessage,
- this, &PlacesPanel::errorMessage);
- connect(m_model, &PlacesItemModel::storageTearDownRequested,
- this, &PlacesPanel::storageTearDownRequested);
- connect(m_model, &PlacesItemModel::storageTearDownExternallyRequested,
- this, &PlacesPanel::storageTearDownExternallyRequested);
-
- m_view = new PlacesView();
- m_view->setWidgetCreator(new KItemListWidgetCreator<PlacesItemListWidget>());
- m_view->setGroupHeaderCreator(new KItemListGroupHeaderCreator<PlacesItemListGroupHeader>());
-
- m_controller = new KItemListController(m_model, m_view, this);
- m_controller->setSelectionBehavior(KItemListController::SingleSelection);
- m_controller->setSingleClickActivationEnforced(true);
-
- readSettings();
-
- connect(m_controller, &KItemListController::itemActivated, this, &PlacesPanel::slotItemActivated);
- connect(m_controller, &KItemListController::itemMiddleClicked, this, &PlacesPanel::slotItemMiddleClicked);
- connect(m_controller, &KItemListController::itemContextMenuRequested, this, &PlacesPanel::slotItemContextMenuRequested);
- connect(m_controller, &KItemListController::viewContextMenuRequested, this, &PlacesPanel::slotViewContextMenuRequested);
- connect(m_controller, &KItemListController::itemDropEvent, this, &PlacesPanel::slotItemDropEvent);
- connect(m_controller, &KItemListController::aboveItemDropEvent, this, &PlacesPanel::slotAboveItemDropEvent);
-
- KItemListContainer* container = new KItemListContainer(m_controller, this);
- container->setEnabledFrame(false);
-
- QVBoxLayout* layout = new QVBoxLayout(this);
- layout->setMargin(0);
- layout->addWidget(container);
-
- selectClosestItem();
- }
-
- Panel::showEvent(event);