+#include <KToolBar>
+#include <KIO/JobUiDelegate>
+#include <KLocalizedString>
+#include <KProtocolManager>
+#include <KProtocolInfo>
+#include <QMenu>
+#include <KMessageBox>
+#include <KFilePlacesModel>
+#include <KFileItemListProperties>
+#include <KRun>
+#include <KShell>
+#include <KStandardAction>
+#include <KToggleAction>
+#include <KUrlNavigator>
+#include <KToolInvocation>
+#include <KUrlComboBox>
+
+#include <QApplication>
+#include <QMenuBar>
+#include <QClipboard>
+#include <QToolButton>
+#include <QTimer>
+#include <QStandardPaths>
+#include <QPushButton>
+#include <QCloseEvent>
+#include <QShowEvent>
+#include <QDialog>
+
+namespace {
+ // Used for GeneralSettings::version() to determine whether
+ // an updated version of Dolphin is running.
+ const int CurrentDolphinVersion = 200;
+}
+
+DolphinMainWindow::DolphinMainWindow() :
+ KXmlGuiWindow(nullptr),
+ m_newFileMenu(nullptr),
+ m_tabWidget(nullptr),
+ m_activeViewContainer(nullptr),
+ m_actionHandler(nullptr),
+ m_remoteEncoding(nullptr),
+ m_settingsDialog(),
+ m_controlButton(nullptr),
+ m_updateToolBarTimer(nullptr),
+ m_lastHandleUrlStatJob(nullptr),
+ m_terminalPanel(nullptr),
+ m_placesPanel(nullptr),
+ m_tearDownFromPlacesRequested(false)
+{
+ Q_INIT_RESOURCE(dolphin);
+
+ setObjectName(QStringLiteral("Dolphin#"));
+
+ connect(&DolphinNewFileMenuObserver::instance(), &DolphinNewFileMenuObserver::errorMessage,
+ this, &DolphinMainWindow::showErrorMessage);
+
+ KIO::FileUndoManager* undoManager = KIO::FileUndoManager::self();
+ undoManager->setUiInterface(new UndoUiInterface());
+
+ connect(undoManager, static_cast<void(KIO::FileUndoManager::*)(bool)>(&KIO::FileUndoManager::undoAvailable),
+ this, &DolphinMainWindow::slotUndoAvailable);
+ connect(undoManager, &KIO::FileUndoManager::undoTextChanged,
+ this, &DolphinMainWindow::slotUndoTextChanged);
+ connect(undoManager, &KIO::FileUndoManager::jobRecordingStarted,
+ this, &DolphinMainWindow::clearStatusBar);
+ connect(undoManager, &KIO::FileUndoManager::jobRecordingFinished,
+ this, &DolphinMainWindow::showCommand);
+
+ GeneralSettings* generalSettings = GeneralSettings::self();
+ const bool firstRun = (generalSettings->version() < 200);
+ if (firstRun) {
+ generalSettings->setViewPropsTimestamp(QDateTime::currentDateTime());
+ }