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