#include "statusbar/dolphinstatusbar.h"
#include "views/dolphinviewactionhandler.h"
#include "views/dolphinremoteencoding.h"
-#include "views/draganddrophelper.h"
#include "views/viewproperties.h"
#ifndef Q_OS_WIN
#include <QToolButton>
#include <QSplitter>
+namespace {
+ // Used for GeneralSettings::version() to determine whether
+ // an updated version of Dolphin is running.
+ const int CurrentDolphinVersion = 200;
+};
+
/*
* Menu shown when pressing the configure-button in the toolbar.
*/
connect(undoManager, SIGNAL(undoAvailable(bool)),
this, SLOT(slotUndoAvailable(bool)));
- connect(undoManager, SIGNAL(undoTextChanged(const QString&)),
- this, SLOT(slotUndoTextChanged(const QString&)));
+ connect(undoManager, SIGNAL(undoTextChanged(QString)),
+ this, SLOT(slotUndoTextChanged(QString)));
connect(undoManager, SIGNAL(jobRecordingStarted(CommandType)),
this, SLOT(clearStatusBar()));
connect(undoManager, SIGNAL(jobRecordingFinished(CommandType)),
this, SLOT(showCommand(CommandType)));
- connect(DolphinSettings::instance().placesModel(), SIGNAL(errorMessage(const QString&)),
- this, SLOT(showErrorMessage(const QString&)));
- connect(&DragAndDropHelper::instance(), SIGNAL(errorMessage(const QString&)),
- this, SLOT(showErrorMessage(const QString&)));
+ connect(DolphinSettings::instance().placesModel(), SIGNAL(errorMessage(QString)),
+ this, SLOT(showErrorMessage(QString)));
+ //connect(&DragAndDropHelper::instance(), SIGNAL(errorMessage(QString)),
+ // this, SLOT(showErrorMessage(QString)));
const DolphinSettings& settings = DolphinSettings::instance();
GeneralSettings* generalSettings = settings.generalSettings();
- const bool firstRun = generalSettings->firstRun();
+ const bool firstRun = (generalSettings->version() < 200);
if (firstRun) {
generalSettings->setViewPropsTimestamp(QDateTime::currentDateTime());
}
m_actionHandler->setCurrentView(view);
m_remoteEncoding = new DolphinRemoteEncoding(this, m_actionHandler);
- connect(this, SIGNAL(urlChanged(const KUrl&)),
+ connect(this, SIGNAL(urlChanged(KUrl)),
m_remoteEncoding, SLOT(slotAboutToOpenUrl()));
m_tabBar = new KTabBar(this);
this, SLOT(setActiveTab(int)));
connect(m_tabBar, SIGNAL(tabCloseRequested(int)),
this, SLOT(closeTab(int)));
- connect(m_tabBar, SIGNAL(contextMenu(int, const QPoint&)),
- this, SLOT(openTabContextMenu(int, const QPoint&)));
+ connect(m_tabBar, SIGNAL(contextMenu(int,QPoint)),
+ this, SLOT(openTabContextMenu(int,QPoint)));
connect(m_tabBar, SIGNAL(newTabRequest()),
this, SLOT(openNewTab()));
- connect(m_tabBar, SIGNAL(testCanDecode(const QDragMoveEvent*, bool&)),
- this, SLOT(slotTestCanDecode(const QDragMoveEvent*, bool&)));
+ connect(m_tabBar, SIGNAL(testCanDecode(const QDragMoveEvent*,bool&)),
+ this, SLOT(slotTestCanDecode(const QDragMoveEvent*,bool&)));
connect(m_tabBar, SIGNAL(mouseMiddleClick(int)),
this, SLOT(closeTab(int)));
- connect(m_tabBar, SIGNAL(tabMoved(int, int)),
- this, SLOT(slotTabMoved(int, int)));
- connect(m_tabBar, SIGNAL(receivedDropEvent(int, QDropEvent*)),
- this, SLOT(tabDropEvent(int, QDropEvent*)));
+ connect(m_tabBar, SIGNAL(tabMoved(int,int)),
+ this, SLOT(slotTabMoved(int,int)));
+ connect(m_tabBar, SIGNAL(receivedDropEvent(int,QDropEvent*)),
+ this, SLOT(tabDropEvent(int,QDropEvent*)));
m_tabBar->blockSignals(true); // signals get unblocked after at least 2 tabs are open
}
}
- generalSettings->setFirstRun(false);
-
+ generalSettings->setVersion(CurrentDolphinVersion);
settings.save();
if (m_searchDockIsTemporaryVisible) {
void DolphinMainWindow::updateNewMenu()
{
- m_newFileMenu->setViewShowsHiddenFiles(activeViewContainer()->view()->showHiddenFiles());
+ m_newFileMenu->setViewShowsHiddenFiles(activeViewContainer()->view()->hiddenFilesShown());
m_newFileMenu->checkUpToDate();
m_newFileMenu->setPopupFiles(activeViewContainer()->url());
}
void DolphinMainWindow::createDirectory()
{
- m_newFileMenu->setViewShowsHiddenFiles(activeViewContainer()->view()->showHiddenFiles());
+ m_newFileMenu->setViewShowsHiddenFiles(activeViewContainer()->view()->hiddenFilesShown());
m_newFileMenu->setPopupFiles(activeViewContainer()->url());
m_newFileMenu->createDirectory();
}
void DolphinMainWindow::slotSearchLocationChanged()
{
+#ifdef HAVE_NEPOMUK
QDockWidget* searchDock = findChild<QDockWidget*>("searchDock");
if (!searchDock) {
return;
? SearchPanel::FromCurrentDir
: SearchPanel::Everywhere);
}
+#endif
}
void DolphinMainWindow::updatePasteAction()
if (!urls.isEmpty() && tab != -1) {
const ViewTab& viewTab = m_viewTab[tab];
const KUrl destPath = viewTab.isPrimaryViewActive ? viewTab.primaryView->url() : viewTab.secondaryView->url();
- DragAndDropHelper::instance().dropUrls(KFileItem(), destPath, event, m_tabBar);
+ Q_UNUSED(destPath);
+ //DragAndDropHelper::instance().dropUrls(KFileItem(), destPath, event, m_tabBar);
}
}
connect(menu, SIGNAL(aboutToHide()), helpMenu, SLOT(deleteLater()));
helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::HelpContents)));
helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::WhatsThis)));
+ helpMenu->addSeparator();
+ helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::ReportBug)));
+ helpMenu->addSeparator();
+ helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::SwitchApplicationLanguage)));
+ helpMenu->addSeparator();
helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::AboutApp)));
helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::AboutKDE)));
menu->addMenu(helpMenu);
// setup 'Go' menu
KAction* backAction = KStandardAction::back(this, SLOT(goBack()), actionCollection());
- connect(backAction, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(goBack(Qt::MouseButtons)));
+ connect(backAction, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(goBack(Qt::MouseButtons)));
KShortcut backShortcut = backAction->shortcut();
backShortcut.setAlternate(Qt::Key_Backspace);
backAction->setShortcut(backShortcut);
m_recentTabsMenu = new KActionMenu(i18n("Recently Closed Tabs"), this);
m_recentTabsMenu->setIcon(KIcon("edit-undo"));
actionCollection()->addAction("closed_tabs", m_recentTabsMenu);
- connect(m_recentTabsMenu->menu(), SIGNAL(triggered(QAction *)),
- this, SLOT(restoreClosedTab(QAction *)));
+ connect(m_recentTabsMenu->menu(), SIGNAL(triggered(QAction*)),
+ this, SLOT(restoreClosedTab(QAction*)));
QAction* action = new QAction(i18n("Empty Recently Closed Tabs"), m_recentTabsMenu);
action->setIcon(KIcon("edit-clear-list"));
m_recentTabsMenu->setEnabled(false);
KAction* forwardAction = KStandardAction::forward(this, SLOT(goForward()), actionCollection());
- connect(forwardAction, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(goForward(Qt::MouseButtons)));
+ connect(forwardAction, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(goForward(Qt::MouseButtons)));
KAction* upAction = KStandardAction::up(this, SLOT(goUp()), actionCollection());
- connect(upAction, SIGNAL(triggered(Qt::MouseButtons, Qt::KeyboardModifiers)), this, SLOT(goUp(Qt::MouseButtons)));
+ connect(upAction, SIGNAL(triggered(Qt::MouseButtons,Qt::KeyboardModifiers)), this, SLOT(goUp(Qt::MouseButtons)));
KStandardAction::home(this, SLOT(goHome()), actionCollection());
addDockWidget(Qt::LeftDockWidgetArea, foldersDock);
connect(this, SIGNAL(urlChanged(KUrl)),
foldersPanel, SLOT(setUrl(KUrl)));
- connect(foldersPanel, SIGNAL(changeUrl(KUrl, Qt::MouseButtons)),
- this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons)));
+ connect(foldersPanel, SIGNAL(changeUrl(KUrl,Qt::MouseButtons)),
+ this, SLOT(handlePlacesClick(KUrl,Qt::MouseButtons)));
// Setup "Terminal"
#ifndef Q_OS_WIN
terminalDock->setWidget(terminalPanel);
connect(terminalPanel, SIGNAL(hideTerminalPanel()), terminalDock, SLOT(hide()));
+ connect(terminalDock, SIGNAL(visibilityChanged(bool)),
+ terminalPanel, SLOT(dockVisibilityChanged()));
QAction* terminalAction = terminalDock->toggleViewAction();
terminalAction->setShortcut(Qt::Key_F4);
searchPanel, SLOT(setUrl(KUrl)));
#endif
- const bool firstRun = DolphinSettings::instance().generalSettings()->firstRun();
- if (firstRun) {
+ if (DolphinSettings::instance().generalSettings()->version() < 200) {
infoDock->hide();
foldersDock->hide();
#ifndef Q_OS_WIN
addActionCloneToCollection(placesAction, "show_places_panel");
addDockWidget(Qt::LeftDockWidgetArea, placesDock);
- connect(placesPanel, SIGNAL(urlChanged(KUrl, Qt::MouseButtons)),
- this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons)));
+ connect(placesPanel, SIGNAL(urlChanged(KUrl,Qt::MouseButtons)),
+ this, SLOT(handlePlacesClick(KUrl,Qt::MouseButtons)));
connect(this, SIGNAL(urlChanged(KUrl)),
placesPanel, SLOT(setUrl(KUrl)));
connect(placesDock, SIGNAL(visibilityChanged(bool)),
this, SLOT(slotRequestItemInfo(KFileItem)));
connect(view, SIGNAL(activated()),
this, SLOT(toggleActiveView()));
- connect(view, SIGNAL(tabRequested(const KUrl&)),
- this, SLOT(openNewTab(const KUrl&)));
- connect(view, SIGNAL(requestContextMenu(KFileItem, const KUrl&, const QList<QAction*>&)),
- this, SLOT(openContextMenu(KFileItem, const KUrl&, const QList<QAction*>&)));
+ connect(view, SIGNAL(tabRequested(KUrl)),
+ this, SLOT(openNewTab(KUrl)));
+ connect(view, SIGNAL(requestContextMenu(KFileItem,KUrl,QList<QAction*>)),
+ this, SLOT(openContextMenu(KFileItem,KUrl,QList<QAction*>)));
connect(view, SIGNAL(startedPathLoading(KUrl)),
this, SLOT(enableStopAction()));
connect(view, SIGNAL(finishedPathLoading(KUrl)),
this, SLOT(disableStopAction()));
const KUrlNavigator* navigator = container->urlNavigator();
- connect(navigator, SIGNAL(urlChanged(const KUrl&)),
- this, SLOT(changeUrl(const KUrl&)));
+ connect(navigator, SIGNAL(urlChanged(KUrl)),
+ this, SLOT(changeUrl(KUrl)));
connect(navigator, SIGNAL(historyChanged()),
this, SLOT(updateHistory()));
connect(navigator, SIGNAL(editableStateChanged(bool)),
this, SLOT(slotEditableStateChanged(bool)));
- connect(navigator, SIGNAL(tabRequested(const KUrl&)),
+ connect(navigator, SIGNAL(tabRequested(KUrl)),
this, SLOT(openNewTab(KUrl)));
}
const int newWidth = (m_viewTab[tabIndex].primaryView->width() - splitter->handleWidth()) / 2;
const DolphinView* view = m_viewTab[tabIndex].primaryView->view();
- m_viewTab[tabIndex].secondaryView = createViewContainer(view->rootUrl(), 0);
+ m_viewTab[tabIndex].secondaryView = createViewContainer(view->url(), 0);
splitter->addWidget(m_viewTab[tabIndex].secondaryView);
splitter->setSizes(QList<int>() << newWidth << newWidth);
connectViewSignals(m_viewTab[tabIndex].secondaryView);
// Assure that the menu is not shown outside the screen boundaries and
// that it does not overlap with the parent button.
const QRect screen = QApplication::desktop()->screenGeometry(QCursor::pos());
- if (pos.x() < 0) {
- pos.rx() = 0;
- } else if (pos.x() + width() >= screen.width()) {
- pos.rx() = screen.width() - width();
+ if (pos.x() < screen.x()) {
+ pos.rx() = screen.x();
+ } else if (pos.x() + width() > screen.x() + screen.width()) {
+ pos.rx() = screen.x() + screen.width() - width();
}
- if (pos.y() < 0) {
- pos.ry() = 0;
- } else if (pos.y() + height() >= screen.height()) {
+ if (pos.y() < screen.y()) {
+ pos.ry() = screen.y();
+ } else if (pos.y() + height() > screen.y() + screen.height()) {
pos.ry() = button->mapToGlobal(QPoint(0, 0)).y() - height();
}