┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels/places/placespanel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/panels/places/placespanel.cpp')
-rw-r--r--src/panels/places/placespanel.cpp43
1 files changed, 16 insertions, 27 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();