Rabbit Remote Control 0.1.0-alpha.2
Loading...
Searching...
No Matches
TerminalParameter.cpp
1#include <QLoggingCategory>
2#include <QFileInfo>
3#include "TerminalParameter.h"
4
5static Q_LOGGING_CATEGORY(log, "Terminal.Parameter")
6CTerminalParameter::CTerminalParameter(CParameterOperate *parent, const QString &szPrefix)
7 : CParameterTerminalBase{parent, szPrefix}
8 , m_bTitleChanged(true)
9 , m_bRestoreDirectory(true)
10{
11#if defined(Q_OS_UNIX)
12 m_szShell = qgetenv("SHELL");
13 if(m_szShell.isEmpty()) {
14 m_szShell = "/bin/sh";
15 m_szShellName = "sh";
16 }
17#elif defined(Q_OS_WIN)
18 m_szShell = qgetenv("ComSpec");
19 if(m_szShell.isEmpty()) {
20 m_szShell = "C:\\Windows\\System32\\cmd.exe";
21 }
22 QFileInfo fi(m_szShell);
23 m_szShellName = fi.baseName();
24#endif
25}
26
27int CTerminalParameter::OnLoad(QSettings &set)
28{
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());
36 set.endGroup();
37 return CParameterTerminalBase::OnLoad(set);
38}
39
40int CTerminalParameter::OnSave(QSettings &set)
41{
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());
49
50 set.endGroup();
51 return CParameterTerminalBase::OnSave(set);
52}
53
54int CTerminalParameter::SetShell(const QString& shell)
55{
56 if(m_szShell == shell)
57 return 0;
58 m_szShell = shell;
59 SetModified(true);
60 return 0;
61}
62
63const QString CTerminalParameter::GetShell() const
64{
65 return m_szShell;
66}
67
68const QString CTerminalParameter::GetShellName() const
69{
70 return m_szShellName;
71}
72
73int CTerminalParameter::SetShellName(const QString& name)
74{
75 if(m_szShellName == name)
76 return 0;
77 m_szShellName = name;
78 SetModified(true);
79 return 0;
80}
81
82int CTerminalParameter::SetShellParameters(const QString &para)
83{
84 if(m_szShellParameters == para)
85 return 0;
86 m_szShellParameters = para;
87 SetModified(true);
88 return 0;
89}
90
91const QString CTerminalParameter::GetShellParameters() const
92{
93 return m_szShellParameters;
94}
95
96const QString CTerminalParameter::GetLasterDirectory() const
97{
98 return m_szLasterDirectory;
99}
100
101int CTerminalParameter::SetLasterDirectory(const QString& d)
102{
103 if(m_szLasterDirectory == d)
104 return 0;
105 m_szLasterDirectory = d;
106 SetModified(true);
107 return 0;
108}
109
110bool CTerminalParameter::GetRestoreDirectory() const
111{
112 return m_bRestoreDirectory;
113}
114
115int CTerminalParameter::SetRestoreDirectory(bool bEnable)
116{
117 if(m_bRestoreDirectory == bEnable)
118 return 0;
119 m_bRestoreDirectory = bEnable;
120 SetModified(true);
121 return 0;
122}
123
124bool CTerminalParameter::GetEnableTitleChanged() const
125{
126 return m_bTitleChanged;
127}
128
129void CTerminalParameter::SetEnableTitleChanged(bool newTitleChanged)
130{
131 if(m_bTitleChanged == newTitleChanged)
132 return;
133 m_bTitleChanged = newTitleChanged;
134 SetModified(true);
135 emit sigEnableTitleChanged(m_bTitleChanged);
136 return;
137}
Operational parameter interface.
Terminal base parameter.
int SetModified(bool bModified=true)
When setting parameters, if there is a modification, it is called.