]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinview.cpp
Implemented multithreading in KFileItemModelSortAlgorithm. Use as many threads as...
[dolphin.git] / src / views / dolphinview.cpp
index 08e26c5d67408db91472218549e83c78a83d18de..9051d9827a8667338d5b1c66f150c09ff5334805 100644 (file)
@@ -73,7 +73,7 @@
 #include "zoomlevelinfo.h"
 
 #ifdef HAVE_NEPOMUK
-    #include <Nepomuk/ResourceManager>
+    #include <Nepomuk2/ResourceManager>
 #endif
 
 namespace {
@@ -122,7 +122,6 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) :
     m_model = new KFileItemModel(this);
     m_view = new DolphinItemListView();
     m_view->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
-    m_view->setEnlargeSmallPreviews(GeneralSettings::enlargeSmallPreviews());
     m_view->setVisibleRoles(QList<QByteArray>() << "text");
     applyModeToView();
 
@@ -130,6 +129,10 @@ DolphinView::DolphinView(const KUrl& url, QWidget* parent) :
     const int delay = GeneralSettings::autoExpandFolders() ? 750 : -1;
     controller->setAutoActivationDelay(delay);
 
+    // The EnlargeSmallPreviews setting can only be changed after the model
+    // has been set in the view by KItemListController.
+    m_view->setEnlargeSmallPreviews(GeneralSettings::enlargeSmallPreviews());
+
     m_container = new KItemListContainer(controller, this);
     m_container->installEventFilter(this);
     setFocusProxy(m_container);
@@ -635,7 +638,7 @@ void DolphinView::renameSelectedItems()
          return;
      }
 
-     if (items.count() == 1) {
+     if (items.count() == 1 && GeneralSettings::renameInline()) {
          const int index = m_model->index(items.first());
          m_view->editRole(index, "text");
      } else {
@@ -753,6 +756,20 @@ void DolphinView::hideEvent(QHideEvent* event)
     QWidget::hideEvent(event);
 }
 
+bool DolphinView::event(QEvent* event)
+{
+    /* See Bug 297355
+     * Dolphin leaves file preview tooltips open even when is not visible.
+     *
+     * Hide tool-tip when Dolphin loses focus.
+     */
+    if (event->type() == QEvent::WindowDeactivate) {
+        hideToolTip();
+    }
+
+    return QWidget::event(event);
+}
+
 void DolphinView::activate()
 {
     setActive(true);
@@ -778,6 +795,14 @@ void DolphinView::slotItemsActivated(const QSet<int>& indexes)
         items.append(m_model->fileItem(index));
     }
 
+    if (items.count() > 5) {
+        QString question = QString("Are you sure you want to open %1 items?").arg(items.count());
+        const int answer = KMessageBox::warningYesNo(this, question);
+        if (answer != KMessageBox::Yes) {
+            return;
+        }
+    }
+
     foreach (const KFileItem& item, items) {
         if (item.isDir()) {
             emit tabRequested(item.url());
@@ -818,7 +843,7 @@ void DolphinView::slotHeaderContextMenuRequested(const QPointF& pos)
     bool nepomukRunning = false;
     bool indexingEnabled = false;
 #ifdef HAVE_NEPOMUK
-    nepomukRunning = (Nepomuk::ResourceManager::instance()->initialized());
+    nepomukRunning = (Nepomuk2::ResourceManager::instance()->initialized());
     if (nepomukRunning) {
         KConfig config("nepomukserverrc");
         indexingEnabled = config.group("Service-nepomukfileindexer").readEntry("autostart", false);
@@ -1321,6 +1346,10 @@ void DolphinView::slotVisibleRolesChangedByHeader(const QList<QByteArray>& curre
 
 void DolphinView::slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value)
 {
+    if (index < 0 || index >= m_model->count()) {
+        return;
+    }
+
     if (role == "text") {
         const KFileItem oldItem = m_model->fileItem(index);
         const QString newName = value.toString();