mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-06-08 02:12:49 +08:00
remove stupid group, bad implementation, buggy, and not usable
This commit is contained in:
parent
58e4d66b44
commit
31eea1482b
@ -21,7 +21,6 @@ import 'package:flutter_svg/flutter_svg.dart';
|
|||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:texture_rgba_renderer/texture_rgba_renderer.dart';
|
import 'package:texture_rgba_renderer/texture_rgba_renderer.dart';
|
||||||
import 'package:uni_links/uni_links.dart';
|
import 'package:uni_links/uni_links.dart';
|
||||||
import 'package:uni_links_desktop/uni_links_desktop.dart';
|
|
||||||
import 'package:url_launcher/url_launcher.dart';
|
import 'package:url_launcher/url_launcher.dart';
|
||||||
import 'package:uuid/uuid.dart';
|
import 'package:uuid/uuid.dart';
|
||||||
import 'package:win32/win32.dart' as win32;
|
import 'package:win32/win32.dart' as win32;
|
||||||
@ -886,7 +885,7 @@ class CustomAlertDialog extends StatelessWidget {
|
|||||||
child: content,
|
child: content,
|
||||||
),
|
),
|
||||||
actions: actions,
|
actions: actions,
|
||||||
titlePadding: MyTheme.dialogTitlePadding(content: content != null),
|
titlePadding: MyTheme.dialogTitlePadding(),
|
||||||
contentPadding:
|
contentPadding:
|
||||||
MyTheme.dialogContentPadding(actions: actions is List),
|
MyTheme.dialogContentPadding(actions: actions is List),
|
||||||
actionsPadding: MyTheme.dialogActionsPadding(),
|
actionsPadding: MyTheme.dialogActionsPadding(),
|
||||||
@ -1264,6 +1263,9 @@ Future<bool> matchPeer(String searchText, Peer peer) async {
|
|||||||
|
|
||||||
/// Get the image for the current [platform].
|
/// Get the image for the current [platform].
|
||||||
Widget getPlatformImage(String platform, {double size = 50}) {
|
Widget getPlatformImage(String platform, {double size = 50}) {
|
||||||
|
if (platform.isEmpty) {
|
||||||
|
return Container(width: size, height: size);
|
||||||
|
}
|
||||||
if (platform == kPeerPlatformMacOS) {
|
if (platform == kPeerPlatformMacOS) {
|
||||||
platform = 'mac';
|
platform = 'mac';
|
||||||
} else if (platform != kPeerPlatformLinux &&
|
} else if (platform != kPeerPlatformLinux &&
|
||||||
|
@ -164,6 +164,7 @@ class _AddressBookState extends State<AddressBook> {
|
|||||||
alignment: Alignment.topLeft,
|
alignment: Alignment.topLeft,
|
||||||
child: Obx(() => AddressBookPeersView(
|
child: Obx(() => AddressBookPeersView(
|
||||||
menuPadding: widget.menuPadding,
|
menuPadding: widget.menuPadding,
|
||||||
|
// ignore: invalid_use_of_protected_member
|
||||||
initPeers: gFFI.abModel.peers.value,
|
initPeers: gFFI.abModel.peers.value,
|
||||||
))),
|
))),
|
||||||
);
|
);
|
||||||
|
@ -102,6 +102,7 @@ class _MyGroupState extends State<MyGroup> {
|
|||||||
alignment: Alignment.topLeft,
|
alignment: Alignment.topLeft,
|
||||||
child: Obx(() => MyGroupPeerView(
|
child: Obx(() => MyGroupPeerView(
|
||||||
menuPadding: widget.menuPadding,
|
menuPadding: widget.menuPadding,
|
||||||
|
// ignore: invalid_use_of_protected_member
|
||||||
initPeers: gFFI.groupModel.peersShow.value))),
|
initPeers: gFFI.groupModel.peersShow.value))),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
@ -134,6 +135,7 @@ class _MyGroupState extends State<MyGroup> {
|
|||||||
alignment: Alignment.topLeft,
|
alignment: Alignment.topLeft,
|
||||||
child: Obx(() => MyGroupPeerView(
|
child: Obx(() => MyGroupPeerView(
|
||||||
menuPadding: widget.menuPadding,
|
menuPadding: widget.menuPadding,
|
||||||
|
// ignore: invalid_use_of_protected_member
|
||||||
initPeers: gFFI.groupModel.peersShow.value))),
|
initPeers: gFFI.groupModel.peersShow.value))),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
|
@ -8,7 +8,6 @@ import 'package:flutter_hbb/common.dart';
|
|||||||
import 'package:flutter_hbb/consts.dart';
|
import 'package:flutter_hbb/consts.dart';
|
||||||
import 'package:flutter_hbb/desktop/pages/desktop_home_page.dart';
|
import 'package:flutter_hbb/desktop/pages/desktop_home_page.dart';
|
||||||
import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart';
|
import 'package:flutter_hbb/desktop/pages/desktop_tab_page.dart';
|
||||||
import 'package:flutter_hbb/models/group_model.dart';
|
|
||||||
import 'package:flutter_hbb/models/platform_model.dart';
|
import 'package:flutter_hbb/models/platform_model.dart';
|
||||||
import 'package:flutter_hbb/models/server_model.dart';
|
import 'package:flutter_hbb/models/server_model.dart';
|
||||||
import 'package:flutter_hbb/plugin/manager.dart';
|
import 'package:flutter_hbb/plugin/manager.dart';
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:ui' as ui;
|
|
||||||
|
|
||||||
import 'package:desktop_multi_window/desktop_multi_window.dart';
|
import 'package:desktop_multi_window/desktop_multi_window.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hbb/common.dart';
|
import 'package:flutter_hbb/common.dart';
|
||||||
import 'package:flutter_hbb/desktop/pages/file_manager_tab_page.dart';
|
import 'package:flutter_hbb/desktop/pages/file_manager_tab_page.dart';
|
||||||
import 'package:flutter_hbb/desktop/widgets/refresh_wrapper.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
/// multi-tab file transfer remote screen
|
/// multi-tab file transfer remote screen
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hbb/common.dart';
|
import 'package:flutter_hbb/common.dart';
|
||||||
import 'package:flutter_hbb/desktop/pages/port_forward_tab_page.dart';
|
import 'package:flutter_hbb/desktop/pages/port_forward_tab_page.dart';
|
||||||
import 'package:flutter_hbb/desktop/widgets/refresh_wrapper.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
/// multi-tab file port forward screen
|
/// multi-tab file port forward screen
|
||||||
|
@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:flutter_hbb/common.dart';
|
import 'package:flutter_hbb/common.dart';
|
||||||
import 'package:flutter_hbb/desktop/pages/remote_tab_page.dart';
|
import 'package:flutter_hbb/desktop/pages/remote_tab_page.dart';
|
||||||
import 'package:flutter_hbb/models/platform_model.dart';
|
import 'package:flutter_hbb/models/platform_model.dart';
|
||||||
import 'package:flutter_hbb/desktop/widgets/refresh_wrapper.dart';
|
|
||||||
import 'package:flutter_hbb/models/state_model.dart';
|
import 'package:flutter_hbb/models/state_model.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/src/widgets/framework.dart';
|
|
||||||
import 'package:flutter/src/widgets/placeholder.dart';
|
|
||||||
|
|
||||||
class DraggableDivider extends StatefulWidget {
|
class DraggableDivider extends StatefulWidget {
|
||||||
final Axis axis;
|
final Axis axis;
|
||||||
@ -28,8 +26,9 @@ class _DraggableDividerState extends State<DraggableDivider> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Listener(
|
return Listener(
|
||||||
onPointerMove: (event) {
|
onPointerMove: (event) {
|
||||||
final dl =
|
final dl = widget.axis == Axis.horizontal
|
||||||
widget.axis == Axis.horizontal ? event.localDelta.dy : event.localDelta.dx;
|
? event.localDelta.dy
|
||||||
|
: event.localDelta.dx;
|
||||||
widget.onPointerMove?.call(dl);
|
widget.onPointerMove?.call(dl);
|
||||||
},
|
},
|
||||||
onPointerHover: (event) => widget.onHover?.call(),
|
onPointerHover: (event) => widget.onHover?.call(),
|
||||||
|
@ -1378,7 +1378,6 @@ class PopupMenuButtonState<T> extends State<PopupMenuButton<T>> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final IconThemeData iconTheme = IconTheme.of(context);
|
|
||||||
final bool enableFeedback = widget.enableFeedback ??
|
final bool enableFeedback = widget.enableFeedback ??
|
||||||
PopupMenuTheme.of(context).enableFeedback ??
|
PopupMenuTheme.of(context).enableFeedback ??
|
||||||
true;
|
true;
|
||||||
|
@ -204,6 +204,7 @@ typedef LabelGetter = Rx<String> Function(String key);
|
|||||||
int _lastClickTime =
|
int _lastClickTime =
|
||||||
DateTime.now().millisecondsSinceEpoch - bind.getDoubleClickTime() - 1000;
|
DateTime.now().millisecondsSinceEpoch - bind.getDoubleClickTime() - 1000;
|
||||||
|
|
||||||
|
// ignore: must_be_immutable
|
||||||
class DesktopTab extends StatelessWidget {
|
class DesktopTab extends StatelessWidget {
|
||||||
final bool showLogo;
|
final bool showLogo;
|
||||||
final bool showTitle;
|
final bool showTitle;
|
||||||
|
@ -717,13 +717,11 @@ RawGestureDetector getMixinGestureDetector({
|
|||||||
HoldTapMoveGestureRecognizer:
|
HoldTapMoveGestureRecognizer:
|
||||||
GestureRecognizerFactoryWithHandlers<HoldTapMoveGestureRecognizer>(
|
GestureRecognizerFactoryWithHandlers<HoldTapMoveGestureRecognizer>(
|
||||||
() => HoldTapMoveGestureRecognizer(),
|
() => HoldTapMoveGestureRecognizer(),
|
||||||
(instance) => {
|
(instance) => instance
|
||||||
instance
|
|
||||||
..onHoldDragStart = onHoldDragStart
|
..onHoldDragStart = onHoldDragStart
|
||||||
..onHoldDragUpdate = onHoldDragUpdate
|
..onHoldDragUpdate = onHoldDragUpdate
|
||||||
..onHoldDragCancel = onHoldDragCancel
|
..onHoldDragCancel = onHoldDragCancel
|
||||||
..onHoldDragEnd = onHoldDragEnd
|
..onHoldDragEnd = onHoldDragEnd),
|
||||||
}),
|
|
||||||
DoubleFinerTapGestureRecognizer: GestureRecognizerFactoryWithHandlers<
|
DoubleFinerTapGestureRecognizer: GestureRecognizerFactoryWithHandlers<
|
||||||
DoubleFinerTapGestureRecognizer>(
|
DoubleFinerTapGestureRecognizer>(
|
||||||
() => DoubleFinerTapGestureRecognizer(), (instance) {
|
() => DoubleFinerTapGestureRecognizer(), (instance) {
|
||||||
|
@ -30,13 +30,17 @@ class GroupModel {
|
|||||||
initialized = false;
|
initialized = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> pull({force = true}) async {
|
Future<void> pull({force = true, quiet = false}) async {
|
||||||
|
/*
|
||||||
if (!force && initialized) return;
|
if (!force && initialized) return;
|
||||||
|
if (!quiet) {
|
||||||
groupLoading.value = true;
|
groupLoading.value = true;
|
||||||
groupLoadError.value = "";
|
groupLoadError.value = "";
|
||||||
|
}
|
||||||
await _pull();
|
await _pull();
|
||||||
groupLoading.value = false;
|
groupLoading.value = false;
|
||||||
initialized = true;
|
initialized = true;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _pull() async {
|
Future<void> _pull() async {
|
||||||
@ -137,7 +141,8 @@ class GroupModel {
|
|||||||
final api = "${await bind.mainGetApiServer()}/api/peers";
|
final api = "${await bind.mainGetApiServer()}/api/peers";
|
||||||
try {
|
try {
|
||||||
var uri0 = Uri.parse(api);
|
var uri0 = Uri.parse(api);
|
||||||
final pageSize = 20;
|
final pageSize =
|
||||||
|
20; // ????????????????????????????????????????????????????? stupid stupis, how about >20 peers
|
||||||
var total = 0;
|
var total = 0;
|
||||||
int current = 0;
|
int current = 0;
|
||||||
var queryParameters = {
|
var queryParameters = {
|
||||||
|
@ -16,7 +16,7 @@ class PeerTabModel with ChangeNotifier {
|
|||||||
'Favorites',
|
'Favorites',
|
||||||
'Discovered',
|
'Discovered',
|
||||||
'Address Book',
|
'Address Book',
|
||||||
defaultGroupTabname,
|
//defaultGroupTabname,
|
||||||
];
|
];
|
||||||
final List<IconData> icons = [
|
final List<IconData> icons = [
|
||||||
Icons.access_time_filled,
|
Icons.access_time_filled,
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hbb/common.dart';
|
import 'package:flutter_hbb/common.dart';
|
||||||
import 'package:flutter_hbb/models/platform_model.dart';
|
import 'package:flutter_hbb/models/platform_model.dart';
|
||||||
import 'package:get/get.dart';
|
|
||||||
|
|
||||||
void showPeerSelectionDialog(
|
void showPeerSelectionDialog(
|
||||||
{bool singleSelection = false,
|
{bool singleSelection = false,
|
||||||
@ -49,8 +47,7 @@ void showPeerSelectionDialog(
|
|||||||
height: 50.0,
|
height: 50.0,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: Theme.of(context).highlightColor,
|
color: Theme.of(context).highlightColor,
|
||||||
borderRadius: BorderRadius.circular(12.0)
|
borderRadius: BorderRadius.circular(12.0)),
|
||||||
),
|
|
||||||
padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 4.0),
|
padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 4.0),
|
||||||
margin: EdgeInsets.symmetric(vertical: 4.0),
|
margin: EdgeInsets.symmetric(vertical: 4.0),
|
||||||
child: Row(
|
child: Row(
|
||||||
@ -58,14 +55,18 @@ void showPeerSelectionDialog(
|
|||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
// platform
|
// platform
|
||||||
SizedBox(width: 8.0,),
|
SizedBox(
|
||||||
|
width: 8.0,
|
||||||
|
),
|
||||||
Column(
|
Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
getPlatformImage(platform, size: 34.0),
|
getPlatformImage(platform, size: 34.0),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(width: 8.0,),
|
SizedBox(
|
||||||
|
width: 8.0,
|
||||||
|
),
|
||||||
// id/alias
|
// id/alias
|
||||||
Expanded(child: Text(alias.isEmpty ? id : alias)),
|
Expanded(child: Text(alias.isEmpty ? id : alias)),
|
||||||
],
|
],
|
||||||
|
@ -16,10 +16,6 @@ class RdPlatformChannel {
|
|||||||
|
|
||||||
final MethodChannel _osxMethodChannel =
|
final MethodChannel _osxMethodChannel =
|
||||||
MethodChannel("org.rustdesk.rustdesk/macos");
|
MethodChannel("org.rustdesk.rustdesk/macos");
|
||||||
final MethodChannel _winMethodChannel =
|
|
||||||
MethodChannel("org.rustdesk.rustdesk/windows");
|
|
||||||
final MethodChannel _linuxMethodChannel =
|
|
||||||
MethodChannel("org.rustdesk.rustdesk/linux");
|
|
||||||
|
|
||||||
/// Change the theme of the system window
|
/// Change the theme of the system window
|
||||||
Future<void> changeSystemWindowTheme(SystemWindowTheme theme) {
|
Future<void> changeSystemWindowTheme(SystemWindowTheme theme) {
|
||||||
|
Loading…
Reference in New Issue
Block a user