1#include <QLoggingCategory> 
    3#include "TerminalParameter.h" 
    5static Q_LOGGING_CATEGORY(log, 
"Terminal.Parameter")
 
    8    , m_bTitleChanged(
true)
 
    9    , m_bRestoreDirectory(
true)
 
   12    m_szShell = qgetenv(
"SHELL");
 
   13    if(m_szShell.isEmpty()) {
 
   14        m_szShell = 
"/bin/sh";
 
   17#elif defined(Q_OS_WIN) 
   18    m_szShell = qgetenv(
"ComSpec");
 
   19    if(m_szShell.isEmpty()) {
 
   20        m_szShell = 
"C:\\Windows\\System32\\cmd.exe";
 
   22    QFileInfo fi(m_szShell);
 
   23    m_szShellName = fi.baseName();
 
   27int CTerminalParameter::OnLoad(QSettings &set)
 
   29    set.beginGroup(
"Terminal");
 
   30    SetShell(set.value(
"Shell", GetShell()).toString());
 
   31    SetShellName(set.value(
"Shell/Name", GetShellName()).toString());
 
   32    SetShellParameters(set.value(
"Shell/Parameters", GetShellParameters()).toString());
 
   33    SetLasterDirectory(set.value(
"Directory/Laster", GetLasterDirectory()).toString());
 
   34    SetRestoreDirectory(set.value(
"Directory/Restore", GetRestoreDirectory()).toBool());
 
   35    SetEnableTitleChanged(set.value(
"EnableTitleChanged", GetEnableTitleChanged()).toBool());
 
   37    return CParameterTerminalBase::OnLoad(set);
 
   40int CTerminalParameter::OnSave(QSettings &set)
 
   42    set.beginGroup(
"Terminal");
 
   43    set.setValue(
"Shell", GetShell());
 
   44    set.setValue(
"Shell/Name", GetShellName());
 
   45    set.setValue(
"Shell/Parameters", GetShellParameters());
 
   46    set.setValue(
"Directory/Laster", GetLasterDirectory());
 
   47    set.setValue(
"Directory/Restore", GetRestoreDirectory());
 
   48    set.setValue(
"EnableTitleChanged", GetEnableTitleChanged());
 
   51    return CParameterTerminalBase::OnSave(set);
 
   54int CTerminalParameter::SetShell(
const QString& shell)
 
   56    if(m_szShell == shell)
 
   63const QString CTerminalParameter::GetShell()
 const 
   68const QString CTerminalParameter::GetShellName()
 const 
   73int CTerminalParameter::SetShellName(
const QString& name)
 
   75    if(m_szShellName == name)
 
   82int CTerminalParameter::SetShellParameters(
const QString ¶)
 
   84    if(m_szShellParameters == para)
 
   86    m_szShellParameters = para;
 
   91const QString CTerminalParameter::GetShellParameters()
 const 
   93    return m_szShellParameters;
 
   96const QString CTerminalParameter::GetLasterDirectory()
 const 
   98    return m_szLasterDirectory;
 
  101int CTerminalParameter::SetLasterDirectory(
const QString& d)
 
  103    if(m_szLasterDirectory == d)
 
  105    m_szLasterDirectory = d;
 
  110bool CTerminalParameter::GetRestoreDirectory()
 const 
  112    return m_bRestoreDirectory;
 
  115int CTerminalParameter::SetRestoreDirectory(
bool bEnable)
 
  117    if(m_bRestoreDirectory == bEnable)
 
  119    m_bRestoreDirectory = bEnable;
 
  124bool CTerminalParameter::GetEnableTitleChanged()
 const 
  126    return m_bTitleChanged;
 
  129void CTerminalParameter::SetEnableTitleChanged(
bool newTitleChanged)
 
  131    if(m_bTitleChanged == newTitleChanged)
 
  133    m_bTitleChanged = newTitleChanged;
 
  135    emit sigEnableTitleChanged(m_bTitleChanged);
 
Operational parameter interface.
 
int SetModified(bool bModified=true)
When setting parameters, if there is a modification, it is called.