mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-12-13 03:28:03 +00:00
merge master peer_tab_page.dart peer_widget.dart
This commit is contained in:
@@ -23,15 +23,31 @@ class _PeerTabPageState extends State<PeerTabPage>
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
() async {
|
||||
await bind.mainGetLocalOption(key: 'peer-tab-index').then((value) {
|
||||
if (value == '') return;
|
||||
final tab = int.parse(value);
|
||||
_tabIndex.value = tab;
|
||||
_pageController.jumpToPage(tab);
|
||||
});
|
||||
await bind.mainGetLocalOption(key: 'peer-card-ui-type').then((value) {
|
||||
if (value == '') return;
|
||||
final tab = int.parse(value);
|
||||
peerCardUiType.value =
|
||||
tab == PeerUiType.list.index ? PeerUiType.list : PeerUiType.grid;
|
||||
});
|
||||
}();
|
||||
super.initState();
|
||||
}
|
||||
|
||||
// hard code for now
|
||||
void _handleTabSelection(int index) {
|
||||
Future<void> _handleTabSelection(int index) async {
|
||||
// reset search text
|
||||
peerSearchText.value = "";
|
||||
peerSearchTextController.clear();
|
||||
_tabIndex.value = index;
|
||||
await bind.mainSetLocalOption(
|
||||
key: 'peer-tab-index', value: index.toString());
|
||||
_pageController.jumpToPage(index);
|
||||
switch (index) {
|
||||
case 0:
|
||||
@@ -89,7 +105,7 @@ class _PeerTabPageState extends State<PeerTabPage>
|
||||
shrinkWrap: true,
|
||||
controller: ScrollController(),
|
||||
children: super.widget.tabs.asMap().entries.map((t) {
|
||||
return Obx(() => GestureDetector(
|
||||
return Obx(() => InkWell(
|
||||
child: Container(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||
decoration: BoxDecoration(
|
||||
@@ -111,7 +127,7 @@ class _PeerTabPageState extends State<PeerTabPage>
|
||||
: MyTheme.color(context).lightText),
|
||||
),
|
||||
)),
|
||||
onTap: () => _handleTabSelection(t.key),
|
||||
onTap: () async => await _handleTabSelection(t.key),
|
||||
));
|
||||
}).toList());
|
||||
}
|
||||
@@ -120,7 +136,9 @@ class _PeerTabPageState extends State<PeerTabPage>
|
||||
final verticalMargin = isDesktop ? 12.0 : 6.0;
|
||||
return Expanded(
|
||||
child: PageView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
physics: isDesktop
|
||||
? NeverScrollableScrollPhysics()
|
||||
: BouncingScrollPhysics(),
|
||||
controller: _pageController,
|
||||
children: super.widget.children,
|
||||
onPageChanged: (to) => _tabIndex.value = to)
|
||||
@@ -130,44 +148,30 @@ class _PeerTabPageState extends State<PeerTabPage>
|
||||
Widget _createPeerViewTypeSwitch(BuildContext context) {
|
||||
final activeDeco = BoxDecoration(color: MyTheme.color(context).bg);
|
||||
return Row(
|
||||
children: [
|
||||
Obx(
|
||||
() => Container(
|
||||
padding: const EdgeInsets.all(4.0),
|
||||
decoration:
|
||||
peerCardUiType.value == PeerUiType.grid ? activeDeco : null,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
peerCardUiType.value = PeerUiType.grid;
|
||||
},
|
||||
child: Icon(
|
||||
Icons.grid_view_rounded,
|
||||
size: 18,
|
||||
color: peerCardUiType.value == PeerUiType.grid
|
||||
? MyTheme.color(context).text
|
||||
: MyTheme.color(context).lightText,
|
||||
)),
|
||||
),
|
||||
),
|
||||
Obx(
|
||||
() => Container(
|
||||
padding: const EdgeInsets.all(4.0),
|
||||
decoration:
|
||||
peerCardUiType.value == PeerUiType.list ? activeDeco : null,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
peerCardUiType.value = PeerUiType.list;
|
||||
},
|
||||
child: Icon(
|
||||
Icons.list,
|
||||
size: 18,
|
||||
color: peerCardUiType.value == PeerUiType.list
|
||||
? MyTheme.color(context).text
|
||||
: MyTheme.color(context).lightText,
|
||||
)),
|
||||
),
|
||||
),
|
||||
],
|
||||
children: [PeerUiType.grid, PeerUiType.list]
|
||||
.map((type) => Obx(
|
||||
() => Container(
|
||||
padding: EdgeInsets.all(4.0),
|
||||
decoration: peerCardUiType.value == type ? activeDeco : null,
|
||||
child: InkWell(
|
||||
onTap: () async {
|
||||
await bind.mainSetLocalOption(
|
||||
key: 'peer-card-ui-type',
|
||||
value: type.index.toString());
|
||||
peerCardUiType.value = type;
|
||||
},
|
||||
child: Icon(
|
||||
type == PeerUiType.grid
|
||||
? Icons.grid_view_rounded
|
||||
: Icons.list,
|
||||
size: 18,
|
||||
color: peerCardUiType.value == type
|
||||
? MyTheme.color(context).text
|
||||
: MyTheme.color(context).lightText,
|
||||
)),
|
||||
),
|
||||
))
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user