+ setDropOnPlaceEnabled(true);
+ connect(this, &PlacesPanel::urlsDropped, this, &PlacesPanel::slotUrlsDropped);
+
+ setAutoResizeItemsEnabled(false);
+
+ setTeardownFunction([this](const QModelIndex &index) {
+ slotTearDownRequested(index);
+ });
+
+ m_openInSplitView = new QAction(QIcon::fromTheme(QStringLiteral("view-split-left-right")), i18nc("@action:inmenu", "Open in Split View"));
+ m_openInSplitView->setPriority(QAction::HighPriority);
+ connect(m_openInSplitView, &QAction::triggered, this, [this]() {
+ const QUrl url = currentIndex().data(KFilePlacesModel::UrlRole).toUrl();
+ Q_EMIT openInSplitViewRequested(url);
+ });
+ addAction(m_openInSplitView);
+
+ m_configureTrashAction = new QAction(QIcon::fromTheme(QStringLiteral("configure")), i18nc("@action:inmenu", "Configure Trash…"));
+ m_configureTrashAction->setPriority(QAction::HighPriority);
+ connect(m_configureTrashAction, &QAction::triggered, this, &PlacesPanel::slotConfigureTrash);
+ addAction(m_configureTrashAction);
+
+ connect(this, &PlacesPanel::contextMenuAboutToShow, this, &PlacesPanel::slotContextMenuAboutToShow);
+
+ connect(this, &PlacesPanel::iconSizeChanged, this, [](const QSize &newSize) {
+ int iconSize = qMin(newSize.width(), newSize.height());
+ if (iconSize == 0) {
+ // Don't store 0 size, let's keep -1 for default/small/automatic
+ iconSize = -1;
+ }
+ PlacesPanelSettings *settings = PlacesPanelSettings::self();
+ settings->setIconSize(iconSize);
+ settings->save();
+ });