#include <QGraphicsSceneDragDropEvent>
#include <QTimer>
#include <QScrollBar>
+#include <QPixmapCache>
#include <QPointer>
#include <QMenu>
#include <QVBoxLayout>
m_active = active;
- QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
- if (!active) {
- color.setAlpha(150);
- }
-
- QWidget* viewport = m_container->viewport();
- if (viewport) {
- QPalette palette;
- palette.setColor(viewport->backgroundRole(), color);
- viewport->setPalette(palette);
- }
-
- update();
+ updatePalette();
if (active) {
m_container->setFocus();
QDataStream saveStream(&viewState, QIODevice::WriteOnly);
saveState(saveStream);
- const KFileItemList itemList = selectedItems();
- m_selectedUrls.clear();
- m_selectedUrls = itemList.urlList();
-
setUrl(url());
loadDirectory(url(), true);
clearSelection();
- emit urlAboutToBeChanged(url);
m_url = url;
hideToolTip();
m_model->cancelDirectoryLoading();
}
+void DolphinView::updatePalette()
+{
+ QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
+ if (!m_active) {
+ color.setAlpha(150);
+ }
+
+ QWidget* viewport = m_container->viewport();
+ if (viewport) {
+ QPalette palette;
+ palette.setColor(viewport->backgroundRole(), color);
+ viewport->setPalette(palette);
+ }
+
+ update();
+}
+
bool DolphinView::eventFilter(QObject* watched, QEvent* event)
{
switch (event->type()) {
+ case QEvent::PaletteChange:
+ updatePalette();
+ QPixmapCache::clear();
+ break;
+
case QEvent::KeyPress:
if (GeneralSettings::useTabForSwitchingSplitView()) {
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
const QPoint pos = m_container->mapToGlobal(itemRect.topLeft().toPoint());
itemRect.moveTo(pos);
- m_toolTipManager->showToolTip(item, itemRect);
+ m_toolTipManager->showToolTip(item, itemRect, nativeParentWidget()->windowHandle());
}
emit requestItemInfo(item);
// Restore the current item that had the keyboard focus
stream >> m_currentItemUrl;
+ // Restore the previously selected items
+ stream >> m_selectedUrls;
+
// Restore the view position
stream >> m_restoredContentsPosition;
stream << QUrl();
}
+ // Save the selected urls
+ stream << selectedItems().urlList();
+
// Save view position
const qreal x = m_container->horizontalScrollBar()->value();
const qreal y = m_container->verticalScrollBar()->value();
KIO::Job * job = KIO::moveAs(oldUrl, newUrl);
KJobWidgets::setWindow(job, this);
KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, {oldUrl}, newUrl, job);
- job->ui()->setAutoErrorHandlingEnabled(true);
+ job->uiDelegate()->setAutoErrorHandlingEnabled(true);
if (!newNameExistsAlready) {
// Only connect the result signal if there is no item with the new name