rdp and tcpTunnel use same tabPage
Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
parent
d939a5ebc6
commit
f5dba0f7aa
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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),
|
||||
|
@ -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,
|
||||
|
@ -44,7 +44,6 @@ enum DesktopTabType {
|
||||
remoteScreen,
|
||||
fileTransfer,
|
||||
portForward,
|
||||
rdp,
|
||||
}
|
||||
|
||||
class DesktopTabState {
|
||||
|
@ -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:
|
||||
|
@ -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();
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user