#include "panels/information/informationpanel.h"
#include "settings/dolphinsettingsdialog.h"
#include "statusbar/dolphinstatusbar.h"
-#include "views/dolphinview.h"
#include "views/dolphinviewactionhandler.h"
#include "views/dolphinremoteencoding.h"
#include "views/draganddrophelper.h"
return;
}
- // dirs could contain URLs that actually point to archives or other files.
- // Replace them by URLs we can open where possible and filter the rest out.
- QList<KUrl> urlsToOpen;
- foreach (const KUrl& rawUrl, dirs) {
- const KFileItem& item = KFileItem(KFileItem::Unknown, KFileItem::Unknown, rawUrl);
- item.determineMimeType();
- const KUrl& url = DolphinView::openItemAsFolderUrl(item);
- if (!url.isEmpty()) {
- urlsToOpen.append(url);
- }
- }
-
- if (urlsToOpen.count() == 1) {
- m_activeViewContainer->setUrl(urlsToOpen.first());
+ if (dirs.count() == 1) {
+ m_activeViewContainer->setUrl(dirs.first());
return;
}
// Open each directory inside a new tab. If the "split view" option has been enabled,
// always show two directories within one tab.
- QList<KUrl>::const_iterator it = urlsToOpen.constBegin();
- while (it != urlsToOpen.constEnd()) {
+ QList<KUrl>::const_iterator it = dirs.constBegin();
+ while (it != dirs.constEnd()) {
openNewTab(*it);
++it;
- if (hasSplitView && (it != urlsToOpen.constEnd())) {
+ if (hasSplitView && (it != dirs.constEnd())) {
const int tabIndex = m_viewTab.count() - 1;
m_viewTab[tabIndex].secondaryView->setUrl(*it);
++it;
m_viewTab.append(viewTab);
actionCollection()->action("close_tab")->setEnabled(true);
+ actionCollection()->action("activate_prev_tab")->setEnabled(true);
+ actionCollection()->action("activate_next_tab")->setEnabled(true);
// Provide a split view, if the startup settings are set this way
if (GeneralSettings::splitView()) {
Q_ASSERT(cont);
}
+ // The right view must be activated before the URL is set. Changing
+ // the URL in the right view will emit the right URL navigator's
+ // urlChanged(KUrl) signal, which is connected to the changeUrl(KUrl)
+ // slot. That slot will change the URL in the left view if it is still
+ // active. See https://bugs.kde.org/show_bug.cgi?id=330047.
+ setActiveViewContainer(cont);
+
cont->setUrl(secondaryUrl);
const bool editable = group.readEntry(tabProperty("Secondary Editable", i), false);
cont->urlNavigator()->setUrlEditable(editable);
if (m_viewTab.count() == 1) {
m_tabBar->removeTab(0);
actionCollection()->action("close_tab")->setEnabled(false);
+ actionCollection()->action("activate_prev_tab")->setEnabled(false);
+ actionCollection()->action("activate_next_tab")->setEnabled(false);
} else {
m_tabBar->blockSignals(false);
}
KAction* activateNextTab = actionCollection()->addAction("activate_next_tab");
activateNextTab->setText(i18nc("@action:inmenu", "Activate Next Tab"));
+ activateNextTab->setEnabled(false);
connect(activateNextTab, SIGNAL(triggered()), SLOT(activateNextTab()));
activateNextTab->setShortcuts(QApplication::isRightToLeft() ? prevTabKeys : nextTabKeys);
KAction* activatePrevTab = actionCollection()->addAction("activate_prev_tab");
activatePrevTab->setText(i18nc("@action:inmenu", "Activate Previous Tab"));
+ activatePrevTab->setEnabled(false);
connect(activatePrevTab, SIGNAL(triggered()), SLOT(activatePrevTab()));
activatePrevTab->setShortcuts(QApplication::isRightToLeft() ? nextTabKeys : prevTabKeys);