┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/panels/places/placespanel.cpp43
-rw-r--r--src/panels/places/placespanel.h2
2 files changed, 16 insertions, 29 deletions
diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp
index cb3f3183b..12d7619b8 100644
--- a/src/panels/places/placespanel.cpp
+++ b/src/panels/places/placespanel.cpp
@@ -67,15 +67,28 @@ PlacesPanel::PlacesPanel(QWidget *parent)
settings->setIconSize(iconSize);
settings->save();
});
+
+ readSettings();
+
+ // Set the model here so that it's loaded in time for the sizeHint to properly apply (setting it upon showEvent is too late)
+ auto *placesModel = DolphinPlacesModelSingleton::instance().placesModel();
+ setModel(placesModel);
+
+ connect(placesModel, &KFilePlacesModel::errorMessage, this, &PlacesPanel::errorMessage);
+ connect(placesModel, &KFilePlacesModel::teardownDone, this, &PlacesPanel::slotTearDownDone);
+
+ connect(placesModel, &QAbstractItemModel::rowsInserted, this, &PlacesPanel::slotRowsInserted);
+ connect(placesModel, &QAbstractItemModel::rowsAboutToBeRemoved, this, &PlacesPanel::slotRowsAboutToBeRemoved);
+
+ for (int i = 0; i < model()->rowCount(); ++i) {
+ connectDeviceSignals(model()->index(i, 0, QModelIndex()));
+ }
}
PlacesPanel::~PlacesPanel() = default;
void PlacesPanel::setUrl(const QUrl &url)
{
- // KFilePlacesView::setUrl no-ops when no model is set but we only set it in showEvent()
- // Remember the URL and set it in showEvent
- m_url = url;
KFilePlacesView::setUrl(url);
}
@@ -111,30 +124,6 @@ void PlacesPanel::readSettings()
setIconSize(QSize(iconSize, iconSize));
}
-void PlacesPanel::showEvent(QShowEvent *event)
-{
- if (!event->spontaneous() && !model()) {
- readSettings();
-
- auto *placesModel = DolphinPlacesModelSingleton::instance().placesModel();
- setModel(placesModel);
-
- connect(placesModel, &KFilePlacesModel::errorMessage, this, &PlacesPanel::errorMessage);
- connect(placesModel, &KFilePlacesModel::teardownDone, this, &PlacesPanel::slotTearDownDone);
-
- connect(placesModel, &QAbstractItemModel::rowsInserted, this, &PlacesPanel::slotRowsInserted);
- connect(placesModel, &QAbstractItemModel::rowsAboutToBeRemoved, this, &PlacesPanel::slotRowsAboutToBeRemoved);
-
- for (int i = 0; i < model()->rowCount(); ++i) {
- connectDeviceSignals(model()->index(i, 0, QModelIndex()));
- }
-
- setUrl(m_url);
- }
-
- KFilePlacesView::showEvent(event);
-}
-
static bool isInternalDrag(const QMimeData *mimeData)
{
const auto formats = mimeData->formats();
diff --git a/src/panels/places/placespanel.h b/src/panels/places/placespanel.h
index cbd5fc224..dd5cb6d9e 100644
--- a/src/panels/places/placespanel.h
+++ b/src/panels/places/placespanel.h
@@ -54,7 +54,6 @@ Q_SIGNALS:
void openInSplitViewRequested(const QUrl &url);
protected:
- void showEvent(QShowEvent *event) override;
void dragMoveEvent(QDragMoveEvent *event) override;
private Q_SLOTS:
@@ -70,7 +69,6 @@ private Q_SLOTS:
private:
void connectDeviceSignals(const QModelIndex &idx);
- QUrl m_url; // only used for initial setUrl
QList<QAction *> m_customContextMenuActions;
QPersistentModelIndex m_indexToTearDown;