#include <QGraphicsSceneDragDropEvent>
#include <QTimer>
#include <QScrollBar>
+#include <QPixmapCache>
#include <QPointer>
#include <QMenu>
#include <QVBoxLayout>
#endif
#include <KFormat>
-namespace {
- const int MaxModeEnum = DolphinView::CompactView;
-}
-
DolphinView::DolphinView(const QUrl& url, QWidget* parent) :
QWidget(parent),
m_active(true),
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();
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);
+ if (keyEvent->key() == Qt::Key_Tab && keyEvent->modifiers() == Qt::NoModifier) {
+ toggleActiveViewRequested();
+ return true;
+ }
+ }
+ break;
case QEvent::FocusIn:
if (watched == m_container) {
setActive(true);
destUrl = url();
} else {
// The item represents a directory or desktop-file
- destUrl = destItem.url();
+ destUrl = destItem.mostLocalUrl();
}
QDropEvent dropEvent(event->pos().toPoint(),
if (desktopFile.hasLinkType()) {
const QString linkUrl = desktopFile.readUrl();
if (!linkUrl.startsWith(QLatin1String("http"))) {
- return linkUrl;
+ return QUrl::fromUserInput(linkUrl);
}
}
}