mirror of
				https://github.com/Swordfish90/cool-retro-term.git
				synced 2025-11-04 09:02:14 +00:00 
			
		
		
		
	Imported initial directory implementation from terminal-app.
This commit is contained in:
		@@ -137,6 +137,7 @@ Item{
 | 
			
		||||
        }
 | 
			
		||||
        Component.onCompleted: {
 | 
			
		||||
            shadersettings.terminalFontChanged.connect(handleFontChange);
 | 
			
		||||
            ksession.startShellProgram();
 | 
			
		||||
            forceActiveFocus();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -31,8 +31,7 @@
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
// Qt
 | 
			
		||||
#include <QGuiApplication>
 | 
			
		||||
#include <QtGui/QWindow>
 | 
			
		||||
#include <QQuickWindow>
 | 
			
		||||
 | 
			
		||||
#include <QtCore/QByteRef>
 | 
			
		||||
#include <QtCore/QDir>
 | 
			
		||||
@@ -143,7 +142,12 @@ WId Session::windowId() const
 | 
			
		||||
//            window = window->parentWidget();
 | 
			
		||||
//        }
 | 
			
		||||
 | 
			
		||||
        return QGuiApplication::focusWindow()->winId();
 | 
			
		||||
        //return QGuiApplication::focusWindow()->winId();
 | 
			
		||||
 | 
			
		||||
        //There is an issue here! Probably this always returns zero.
 | 
			
		||||
        //but I try to preseve the behavior there was before.
 | 
			
		||||
        QQuickWindow * window = _views.first()->window();
 | 
			
		||||
        return (window ? window->winId() : 0);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -35,8 +35,6 @@ KSession::KSession(QObject *parent) :
 | 
			
		||||
    QObject(parent), m_session(createSession("KSession"))
 | 
			
		||||
{
 | 
			
		||||
    connect(m_session, SIGNAL(finished()), this, SLOT(sessionFinished()));
 | 
			
		||||
 | 
			
		||||
    m_session->run();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KSession::~KSession()
 | 
			
		||||
@@ -159,33 +157,27 @@ void KSession::setEnvironment(const QStringList &environment)
 | 
			
		||||
 | 
			
		||||
void KSession::setShellProgram(const QString &progname)
 | 
			
		||||
{
 | 
			
		||||
    if (!m_session)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    m_session->setProgram(progname);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void KSession::setWorkingDirectory(const QString &dir)
 | 
			
		||||
void KSession::setInitialWorkingDirectory(const QString &dir)
 | 
			
		||||
{
 | 
			
		||||
    if (!m_session)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    _initialWorkingDirectory = dir;
 | 
			
		||||
    m_session->setInitialWorkingDirectory(dir);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QString KSession::getInitialWorkingDirectory()
 | 
			
		||||
{
 | 
			
		||||
    return _initialWorkingDirectory;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void KSession::setArgs(QStringList &args)
 | 
			
		||||
{
 | 
			
		||||
    if (!m_session)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    m_session->setArguments(args);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void KSession::setTextCodec(QTextCodec *codec)
 | 
			
		||||
{
 | 
			
		||||
    if (!m_session)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    m_session->setCodec(codec);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -34,6 +34,7 @@ class KSession : public QObject
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
    Q_PROPERTY(QString  kbScheme  READ  getKeyBindings WRITE setKeyBindings NOTIFY changedKeyBindings)
 | 
			
		||||
    Q_PROPERTY(QString  initialWorkingDirectory READ getInitialWorkingDirectory WRITE setInitialWorkingDirectory)
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    KSession(QObject *parent = 0);
 | 
			
		||||
@@ -43,9 +44,6 @@ public:
 | 
			
		||||
    //bool setup();
 | 
			
		||||
    void addView(KTerminalDisplay *displa);
 | 
			
		||||
 | 
			
		||||
    //start shell program if it was not started in constructor
 | 
			
		||||
    void startShellProgram();
 | 
			
		||||
 | 
			
		||||
    int getRandomSeed();
 | 
			
		||||
    QString getKeyBindings();
 | 
			
		||||
 | 
			
		||||
@@ -57,8 +55,9 @@ public:
 | 
			
		||||
    //  Shell program, default is /bin/bash
 | 
			
		||||
    void setShellProgram(const QString & progname);
 | 
			
		||||
 | 
			
		||||
    //working directory
 | 
			
		||||
    void setWorkingDirectory(const QString & dir);
 | 
			
		||||
    //Initial working directory
 | 
			
		||||
    void setInitialWorkingDirectory(const QString & dir);
 | 
			
		||||
    QString getInitialWorkingDirectory();
 | 
			
		||||
 | 
			
		||||
    // Shell program args, default is none
 | 
			
		||||
    void setArgs(QStringList & args);
 | 
			
		||||
@@ -106,6 +105,8 @@ public slots:
 | 
			
		||||
    void setKeyBindings(const QString & kb);
 | 
			
		||||
    void setTitle(QString name);
 | 
			
		||||
 | 
			
		||||
    void startShellProgram();
 | 
			
		||||
 | 
			
		||||
    int getShellPID();
 | 
			
		||||
    void changeDir(const QString & dir);
 | 
			
		||||
 | 
			
		||||
@@ -125,6 +126,7 @@ private slots:
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    //Konsole::KTerminalDisplay *m_terminalDisplay;
 | 
			
		||||
    QString _initialWorkingDirectory;
 | 
			
		||||
    Session *m_session;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user