X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8679115552ec65ccfc6cbc1db68414d80e3a081b..38c34eeca315c7be58e65d4d3fb72aaf7b866719:/src/panels/terminal/terminalpanel.h diff --git a/src/panels/terminal/terminalpanel.h b/src/panels/terminal/terminalpanel.h index 75e198e1a..a1b7af03a 100644 --- a/src/panels/terminal/terminalpanel.h +++ b/src/panels/terminal/terminalpanel.h @@ -1,39 +1,31 @@ -/*************************************************************************** - * Copyright (C) 2007-2010 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2007-2010 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #ifndef TERMINALPANEL_H #define TERMINALPANEL_H -#include +#include "kiofuse_interface.h" +#include "panels/panel.h" #include class TerminalInterface; +class KActionCollection; +class KMessageWidget; class QVBoxLayout; class QWidget; -namespace KIO { - class StatJob; +namespace KIO +{ +class StatJob; } -namespace KParts { - class ReadOnlyPart; +namespace KParts +{ +class ReadOnlyPart; } class KJob; /** @@ -45,44 +37,61 @@ class TerminalPanel : public Panel Q_OBJECT public: - TerminalPanel(QWidget* parent = 0); - virtual ~TerminalPanel(); + explicit TerminalPanel(QWidget *parent = nullptr); + ~TerminalPanel() override; -public slots: + /** + * @brief This function is used to set the terminal panels's cwd to + * home when an unmounting request is received. + */ + void goHome(); + QString currentWorkingDirectory(); + bool isHiddenInVisibleWindow() const; + bool terminalHasFocus() const; + bool hasProgramRunning() const; + QString runningProgramName() const; + KActionCollection *actionCollection(); + +public Q_SLOTS: void terminalExited(); void dockVisibilityChanged(); -signals: +Q_SIGNALS: void hideTerminalPanel(); /** * Is emitted if the an URL change is requested. */ - void changeUrl(const QUrl& url); + void changeUrl(const QUrl &url); protected: - virtual bool urlChanged() Q_DECL_OVERRIDE; + bool urlChanged() override; - virtual void showEvent(QShowEvent* event) Q_DECL_OVERRIDE; + void showEvent(QShowEvent *event) override; -private slots: - void slotMostLocalUrlResult(KJob* job); - void slotKonsolePartCurrentDirectoryChanged(const QString& dir); +private Q_SLOTS: + void slotMostLocalUrlResult(KJob *job); + void slotKonsolePartCurrentDirectoryChanged(const QString &dir); private: - void changeDir(const QUrl& url); - void sendCdToTerminal(const QString& path); + enum class HistoryPolicy { AddToHistory, SkipHistory }; + + void changeDir(const QUrl &url); + void sendCdToTerminal(const QString &path, HistoryPolicy addToHistory = HistoryPolicy::AddToHistory); + void sendCdToTerminalKIOFuse(const QUrl &url); private: bool m_clearTerminal; - KIO::StatJob* m_mostLocalUrlJob; + KIO::StatJob *m_mostLocalUrlJob; - QVBoxLayout* m_layout; - TerminalInterface* m_terminal; - QWidget* m_terminalWidget; - KParts::ReadOnlyPart* m_konsolePart; + QVBoxLayout *m_layout; + TerminalInterface *m_terminal; + QWidget *m_terminalWidget; + KMessageWidget *m_konsolePartMissingMessage; + KParts::ReadOnlyPart *m_konsolePart; QString m_konsolePartCurrentDirectory; QQueue m_sendCdToTerminalHistory; + org::kde::KIOFuse::VFS m_kiofuseInterface; }; #endif // TERMINALPANEL_H