rdp and tcpTunnel use same tabPage

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages 2022-09-08 17:22:24 +08:00
parent d939a5ebc6
commit f5dba0f7aa
8 changed files with 20 additions and 18 deletions

View File

@ -52,7 +52,6 @@ enum DesktopType {
fileTransfer,
cm,
portForward,
rdp,
}
class IconFont {
@ -572,9 +571,7 @@ void msgBox(
submit() {
dialogManager.dismissAll();
// https://github.com/fufesou/rustdesk/blob/5e9a31340b899822090a3731769ae79c6bf5f3e5/src/ui/common.tis#L263
if (!type.contains("custom") &&
!(desktopType == DesktopType.portForward ||
desktopType == DesktopType.rdp)) {
if (!type.contains("custom") && desktopType != DesktopType.portForward) {
closeConnection();
}
}

View File

@ -5,7 +5,6 @@ const String kAppTypeMain = "main";
const String kAppTypeDesktopRemote = "remote";
const String kAppTypeDesktopFileTransfer = "file transfer";
const String kAppTypeDesktopPortForward = "port forward";
const String kAppTypeDesktopRDP = "rdp";
const String kTabLabelHomePage = "Home";
const String kTabLabelSettingPage = "Settings";

View File

@ -37,7 +37,6 @@ class PortForwardPage extends StatefulWidget {
class _PortForwardPageState extends State<PortForwardPage>
with AutomaticKeepAliveClientMixin {
final bool isRdp = false;
final TextEditingController localPortController = TextEditingController();
final TextEditingController remoteHostController = TextEditingController();
final TextEditingController remotePortController = TextEditingController();
@ -53,7 +52,7 @@ class _PortForwardPageState extends State<PortForwardPage>
if (!Platform.isLinux) {
Wakelock.enable();
}
print("init success with id ${widget.id}");
debugPrint("init success with id ${widget.id}");
}
@override
@ -73,7 +72,7 @@ class _PortForwardPageState extends State<PortForwardPage>
return Scaffold(
backgroundColor: MyTheme.color(context).grayBg,
body: FutureBuilder(future: () async {
if (!isRdp) {
if (!widget.isRDP) {
refreshTunnelConfig();
}
}(), builder: (context, snapshot) {
@ -288,7 +287,7 @@ class _PortForwardPageState extends State<PortForwardPage>
text2(String lable) => Expanded(
child: Text(
lable,
style: TextStyle(fontSize: 20),
style: const TextStyle(fontSize: 20),
).marginOnly(left: _kTextLeftMargin));
return Theme(
data: Theme.of(context)
@ -321,10 +320,10 @@ class _PortForwardPageState extends State<PortForwardPage>
style: ElevatedButton.styleFrom(
elevation: 0,
side: const BorderSide(color: MyTheme.border)),
onPressed: () {},
onPressed: () => bind.sessionNewRdp(id: widget.id),
child: Text(
translate('New RDP'),
style: TextStyle(
style: const TextStyle(
fontWeight: FontWeight.w300, fontSize: 14),
),
).marginSymmetric(vertical: 10),

View File

@ -26,8 +26,8 @@ class _PortForwardTabPageState extends State<PortForwardTabPage> {
_PortForwardTabPageState(Map<String, dynamic> params) {
isRDP = params['isRDP'];
tabController = Get.put(DesktopTabController(
tabType: isRDP ? DesktopTabType.rdp : DesktopTabType.portForward));
tabController =
Get.put(DesktopTabController(tabType: DesktopTabType.portForward));
tabController.add(TabInfo(
key: params['id'],
label: params['id'],
@ -55,6 +55,11 @@ class _PortForwardTabPageState extends State<PortForwardTabPage> {
final id = args['id'];
final isRDP = args['isRDP'];
window_on_top(windowId());
if (tabController.state.value.tabs.indexWhere((e) => e.key == id) >=
0) {
debugPrint("port forward $id exists");
return;
}
tabController.add(TabInfo(
key: id,
label: id,

View File

@ -44,7 +44,6 @@ enum DesktopTabType {
remoteScreen,
fileTransfer,
portForward,
rdp,
}
class DesktopTabState {

View File

@ -51,8 +51,7 @@ Future<Null> main(List<String> args) async {
runFileTransferScreen(argument);
break;
case WindowType.PortForward:
desktopType =
argument['isRDP'] ? DesktopType.rdp : DesktopType.portForward;
desktopType = DesktopType.portForward;
runPortForwardScreen(argument);
break;
default:

View File

@ -18,7 +18,6 @@ pub(super) const APP_TYPE_MAIN: &str = "main";
pub(super) const APP_TYPE_DESKTOP_REMOTE: &str = "remote";
pub(super) const APP_TYPE_DESKTOP_FILE_TRANSFER: &str = "file transfer";
pub(super) const APP_TYPE_DESKTOP_PORT_FORWARD: &str = "port forward";
pub(super) const APP_TYPE_DESKTOP_RDP: &str = "rdp";
lazy_static::lazy_static! {
pub static ref SESSIONS: RwLock<HashMap<String,Session<FlutterHandler>>> = Default::default();

View File

@ -663,7 +663,6 @@ fn main_broadcast_message(data: &HashMap<&str, &str>) {
flutter::APP_TYPE_DESKTOP_REMOTE,
flutter::APP_TYPE_DESKTOP_FILE_TRANSFER,
flutter::APP_TYPE_DESKTOP_PORT_FORWARD,
flutter::APP_TYPE_DESKTOP_RDP,
];
for app in apps {
@ -703,6 +702,12 @@ pub fn session_remove_port_forward(id: String, local_port: i32) {
}
}
pub fn session_new_rdp(id: String) {
if let Some(session) = SESSIONS.write().unwrap().get_mut(&id) {
session.new_rdp();
}
}
pub fn main_get_last_remote_id() -> String {
// if !config::APP_DIR.read().unwrap().is_empty() {
// res = LocalConfig::get_remote_id();