Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 58 additions & 21 deletions BlocksScreen/lib/panels/networkWindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
from lib.utils.list_button import ListCustomButton
from PyQt6 import QtCore, QtGui, QtWidgets

from lib.qrcode_gen import generate_wifi_qrcode

logger = logging.getLogger("logs/BlocksScreen.log")


Expand Down Expand Up @@ -249,17 +251,8 @@ def __init__(self, parent: typing.Optional[QtWidgets.QWidget], /) -> None:
self.panel.hotspot_password_input_field.setPlaceholderText(
"Defaults to: 123456789"
)
self.panel.hotspot_change_confirm.clicked.connect(
lambda: self.setCurrentIndex(self.indexOf(self.panel.main_network_page))
)
self.panel.hotspot_change_confirm.clicked.connect(self.hotspot_activate_clicked)

self.panel.hotspot_password_input_field.setHidden(True)
self.panel.hotspot_password_view_button.pressed.connect(
partial(self.panel.hotspot_password_input_field.setHidden, False)
)
self.panel.hotspot_password_view_button.released.connect(
partial(self.panel.hotspot_password_input_field.setHidden, True)
)
self.panel.hotspot_name_input_field.setText(
str(self.sdbus_network.get_hotspot_ssid())
)
Expand Down Expand Up @@ -290,16 +283,7 @@ def __init__(self, parent: typing.Optional[QtWidgets.QWidget], /) -> None:
QtGui.QPixmap(":/ui/media/btn_icons/see.svg")
)
)
self.panel.hotspot_password_view_button.released.connect(
lambda: self.panel.hotspot_password_view_button.setPixmap(
QtGui.QPixmap(":/ui/media/btn_icons/unsee.svg")
)
)
self.panel.hotspot_password_view_button.pressed.connect(
lambda: self.panel.hotspot_password_view_button.setPixmap(
QtGui.QPixmap(":/ui/media/btn_icons/see.svg")
)
)
self.generate_qrcode()

self.panel.add_network_password_field.setCursor(
QtCore.Qt.CursorShape.BlankCursor
Expand Down Expand Up @@ -387,8 +371,27 @@ def saved_wifi_option_selected(self):
self.sdbus_network.connect_network(
self.panel.saved_connection_network_name.text()
)
self.panel.hotspot_change_confirm.setEnabled(True)

self.info_box_load(True)

def hotspot_activate_clicked(self):
if self.panel.hotspot_change_confirm.text() == "Save":
self.panel.hotspot_change_confirm.setText("Activate")

self.panel.wifi_button.toggle_button.state = (
self.panel.wifi_button.toggle_button.State.OFF
)
self.panel.hotspot_button.toggle_button.state = (
self.panel.hotspot_button.toggle_button.State.ON
)
self.setCurrentIndex(self.indexOf(self.panel.main_network_page))

self.panel.hotspot_button.toggle_button.stateChange.emit(
self.panel.hotspot_button.toggle_button.state
)
self.panel.hotspot_change_confirm.setEnabled(False)

def on_show_keyboard(self, panel: QtWidgets.QWidget, field: QtWidgets.QLineEdit):
"""Handle keyboard show"""
self.previousPanel = panel
Expand All @@ -404,8 +407,39 @@ def on_qwerty_value_selected(self, value: str):
"""Handle keyboard value input"""
self.setCurrentIndex(self.indexOf(self.previousPanel))
if hasattr(self, "currentField") and self.currentField:
if (
self.currentField == self.panel.hotspot_name_input_field
or self.currentField == self.panel.hotspot_password_input_field
):
if (
self.panel.hotspot_button.toggle_button.state
== self.panel.hotspot_button.toggle_button.State.ON
):
self.panel.hotspot_change_confirm.setEnabled(True)

self.panel.hotspot_change_confirm.setText("Save")
self.generate_qrcode()
self.currentField.setText(value)

def generate_qrcode(self):
if (
self.panel.hotspot_button.toggle_button.state
== self.panel.hotspot_button.toggle_button.State.ON
):
self.panel.qrcode_img.setText("")
self.panel.qrcode_img.setPixmap(
QtGui.QPixmap.fromImage(
generate_wifi_qrcode(
self.panel.hotspot_name_input_field.text(),
self.panel.hotspot_password_input_field.text(),
"WPA",
)
)
)
else:
self.panel.qrcode_img.clearPixmap()
self.panel.qrcode_img.setText("Hotspot not active")

def info_box_load(self, toggle: bool = False) -> None:
"""
Shows or hides the loading screen.
Expand Down Expand Up @@ -494,6 +528,7 @@ def on_toggle_state(self, new_state) -> None:

except Exception as e:
logger.error(f"error when turning ON wifi on_toggle_state:{e}")
self.panel.hotspot_change_confirm.setEnabled(True)

elif sender_button is hotspot_btn:
if is_sender_now_on:
Expand All @@ -519,13 +554,15 @@ def on_toggle_state(self, new_state) -> None:
self.sdbus_network.connect_network(
self.panel.hotspot_name_input_field.text()
)

self.panel.hotspot_change_confirm.setEnabled(False)
self.generate_qrcode()
self.info_box_load(False)
if (
hotspot_btn.state == hotspot_btn.State.OFF
and wifi_btn.state == wifi_btn.State.OFF
):
self.evaluate_network_state()
self.panel.hotspot_change_confirm.setEnabled(True)
else:
self.info_box_load(True)

Expand Down
4 changes: 0 additions & 4 deletions BlocksScreen/lib/panels/widgets/probeHelperPage.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import typing

from lib.panels.widgets.basePopup import BasePopup
from lib.panels.widgets.loadWidget import LoadingOverlayWidget
from lib.panels.widgets.optionCardWidget import OptionCard
from lib.utils.blocks_button import BlocksCustomButton
from lib.utils.blocks_label import BlocksLabel
Expand All @@ -10,7 +7,6 @@
from PyQt6 import QtCore, QtGui, QtWidgets



class ProbeHelper(QtWidgets.QWidget):
request_back: typing.ClassVar[QtCore.pyqtSignal] = QtCore.pyqtSignal(
name="request_back"
Expand Down
4 changes: 1 addition & 3 deletions BlocksScreen/lib/qrcode_gen.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,5 @@ def make_qrcode(data) -> ImageQt.ImageQt:
def generate_wifi_qrcode(
ssid: str, password: str, auth_type: str, hidden: bool = False
) -> ImageQt.ImageQt:
wifi_data = (
f"WIFI:T:{auth_type};S:{ssid};P:{password};{'H:true;' if hidden else ''};"
)
wifi_data = f"WIFI:T:{auth_type};S:{ssid};P:{password};H:{str(hidden).lower()};;"
return make_qrcode(wifi_data)
Loading
Loading