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