#include "dolphinview.h"
-#include <QApplication>
-#include <QClipboard>
-#include <QDropEvent>
-#include <QItemSelectionModel>
-#include <QMouseEvent>
-#include <QVBoxLayout>
-#include <QTimer>
-#include <QScrollBar>
+#include <QtGui/QApplication>
+#include <QtGui/QClipboard>
+#include <QtGui/QKeyEvent>
+#include <QtGui/QItemSelection>
+#include <QtGui/QBoxLayout>
+#include <QtCore/QTimer>
+#include <QtGui/QScrollBar>
#include <kdirmodel.h>
#include <kfileitemdelegate.h>
QWidget(parent),
m_showProgress(false),
m_blockContentsMovedSignal(false),
+ m_initializeColumnView(false),
m_mode(mode),
m_iconSize(0),
m_folderCount(0),
this, SLOT(emitSelectionChangedSignal()));
connect(m_controller, SIGNAL(activated()),
this, SLOT(requestActivation()));
+ connect(m_controller, SIGNAL(itemEntered(const QModelIndex&)),
+ this, SLOT(showHoverInformation(const QModelIndex&)));
+ connect(m_controller, SIGNAL(viewportEntered()),
+ this, SLOT(clearHoverInformation()));
createView();
ViewProperties props(m_urlNavigator->url());
props.setAdditionalInfo(info);
+ m_controller->setShowAdditionalInfo(info != KFileItemDelegate::NoInformation);
m_fileItemDelegate->setAdditionalInformation(info);
emit additionalInfoChanged(info);
startDirLister(url, true);
}
+void DolphinView::refresh()
+{
+ createView();
+ reload();
+}
+
void DolphinView::mouseReleaseEvent(QMouseEvent* event)
{
QWidget::mouseReleaseEvent(event);
m_mode = mode;
createView();
emit modeChanged();
+
+ if (m_mode == ColumnView) {
+ // The mode has been changed to the Column View. When starting the dir
+ // lister with DolphinView::startDirLister() it is important to give a
+ // hint that the dir lister may not keep the current directory
+ // although this is the default for showing a hierarchy.
+ m_initializeColumnView = true;
+ }
}
const bool showHiddenFiles = props.showHiddenFiles();
KFileItemDelegate::AdditionalInformation info = props.additionalInfo();
if (info != m_fileItemDelegate->additionalInformation()) {
+ m_controller->setShowAdditionalInfo(info != KFileItemDelegate::NoInformation);
m_fileItemDelegate->setAdditionalInformation(info);
-
emit additionalInfoChanged(info);
}
m_dirLister->stop();
bool openDir = true;
- bool keepOldDirs = isColumnViewActive();
+ bool keepOldDirs = isColumnViewActive() && !m_initializeColumnView;
+ m_initializeColumnView = false;
+
if (keepOldDirs) {
if (reload) {
keepOldDirs = false;
applyCutItemEffect();
}
+void DolphinView::showHoverInformation(const QModelIndex& index)
+{
+ if (hasSelection()) {
+ return;
+ }
+
+ const KFileItem* item = fileItem(index);
+ if (item != 0) {
+ m_statusBar->setMessage(item->getStatusBarInfo(), DolphinStatusBar::Default);
+ emit requestItemInfo(item->url());
+ }
+}
+
+void DolphinView::clearHoverInformation()
+{
+ m_statusBar->clear();
+}
+
+
void DolphinView::createView()
{
// delete current view