Skip to content

Commit c770da8

Browse files
committed
feat: refine WIZ1x0SR layout and add search shortcut
1 parent 4fd9991 commit c770da8

3 files changed

Lines changed: 149 additions & 44 deletions

File tree

gui/wizconfig_gui.ui

Lines changed: 100 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4927,9 +4927,9 @@ Analog input: Read only</string>
49274927
<property name="topMargin"><number>4</number></property>
49284928
<property name="rightMargin"><number>6</number></property>
49294929
<property name="bottomMargin"><number>4</number></property>
4930-
<!-- ── 헤더: 탭 네비게이션 + 토글 버튼 ── -->
4930+
<!-- ── 헤더: 탭 네비게이션 ── -->
49314931
<item>
4932-
<widget class="QWidget" name="wiz1x0_header">
4932+
<widget class="QWidget" name="wiz1x0_header">
49334933
<property name="maximumSize"><size><width>16777215</width><height>28</height></size></property>
49344934
<layout class="QHBoxLayout" name="hbox_wiz1x0_header">
49354935
<property name="leftMargin"><number>0</number></property>
@@ -4953,18 +4953,94 @@ Analog input: Read only</string>
49534953
</widget>
49544954
</item>
49554955
<item><spacer><property name="orientation"><enum>Qt::Horizontal</enum></property><property name="sizeHint" stdset="0"><size><width>40</width><height>20</height></size></property></spacer></item>
4956-
<item>
4957-
<widget class="QPushButton" name="btn_wiz1x0_toggle">
4958-
<property name="text"><string>☰ Full</string></property>
4959-
<property name="checkable"><bool>true</bool></property>
4960-
<property name="maximumSize"><size><width>72</width><height>24</height></size></property>
4961-
</widget>
4962-
</item>
4963-
</layout>
4964-
</widget>
4965-
</item>
4966-
<!-- ── 콘텐츠 ── -->
4967-
<item>
4956+
</layout>
4957+
</widget>
4958+
</item>
4959+
<item>
4960+
<widget class="QWidget" name="wiz1x0_meta">
4961+
<property name="maximumSize">
4962+
<size>
4963+
<width>16777215</width>
4964+
<height>28</height>
4965+
</size>
4966+
</property>
4967+
<layout class="QHBoxLayout" name="hbox_wiz1x0_meta">
4968+
<property name="leftMargin">
4969+
<number>0</number>
4970+
</property>
4971+
<property name="topMargin">
4972+
<number>0</number>
4973+
</property>
4974+
<property name="rightMargin">
4975+
<number>0</number>
4976+
</property>
4977+
<property name="bottomMargin">
4978+
<number>0</number>
4979+
</property>
4980+
<property name="spacing">
4981+
<number>8</number>
4982+
</property>
4983+
<item>
4984+
<widget class="QLabel" name="lbl_wiz1x0_ver">
4985+
<property name="text">
4986+
<string>Version</string>
4987+
</property>
4988+
</widget>
4989+
</item>
4990+
<item>
4991+
<widget class="QLineEdit" name="wiz1x0_version">
4992+
<property name="maximumSize">
4993+
<size>
4994+
<width>110</width>
4995+
<height>16777215</height>
4996+
</size>
4997+
</property>
4998+
<property name="readOnly">
4999+
<bool>true</bool>
5000+
</property>
5001+
</widget>
5002+
</item>
5003+
<item>
5004+
<widget class="QCheckBox" name="wiz1x0_debug">
5005+
<property name="text">
5006+
<string>Enable Serial Debug Mode</string>
5007+
</property>
5008+
</widget>
5009+
</item>
5010+
<item>
5011+
<widget class="QPushButton" name="btn_wiz1x0_toggle">
5012+
<property name="text">
5013+
<string>☰ Full</string>
5014+
</property>
5015+
<property name="checkable">
5016+
<bool>true</bool>
5017+
</property>
5018+
<property name="maximumSize">
5019+
<size>
5020+
<width>72</width>
5021+
<height>24</height>
5022+
</size>
5023+
</property>
5024+
</widget>
5025+
</item>
5026+
<item>
5027+
<spacer>
5028+
<property name="orientation">
5029+
<enum>Qt::Horizontal</enum>
5030+
</property>
5031+
<property name="sizeHint" stdset="0">
5032+
<size>
5033+
<width>40</width>
5034+
<height>20</height>
5035+
</size>
5036+
</property>
5037+
</spacer>
5038+
</item>
5039+
</layout>
5040+
</widget>
5041+
</item>
5042+
<!-- ── 콘텐츠 ── -->
5043+
<item>
49685044
<widget class="QTabWidget" name="wiz1x0_tabwidget">
49695045
<widget class="QWidget" name="wiz1x0_col_net">
49705046
<attribute name="title"><string>Network</string></attribute>
@@ -4994,9 +5070,9 @@ Analog input: Read only</string>
49945070
<item row="2" column="0"><widget class="QLabel" name="lbl_wiz1x0_gw"><property name="text"><string>Gateway</string></property></widget></item>
49955071
<item row="2" column="1" colspan="3"><widget class="QLineEdit" name="wiz1x0_gw"/></item>
49965072
<item row="3" column="0"><widget class="QLabel" name="lbl_wiz1x0_pppoe_id"><property name="text"><string>PPPoE ID</string></property></widget></item>
4997-
<item row="3" column="1" colspan="3"><widget class="QLineEdit" name="wiz1x0_pppoe_id"/></item>
5073+
<item row="3" column="1" colspan="3"><widget class="QLineEdit" name="wiz1x0_pppoe_id"><property name="maxLength"><number>32</number></property></widget></item>
49985074
<item row="4" column="0"><widget class="QLabel" name="lbl_wiz1x0_pppoe_pw"><property name="text"><string>Password</string></property></widget></item>
4999-
<item row="4" column="1" colspan="3"><widget class="QLineEdit" name="wiz1x0_pppoe_pw"><property name="echoMode"><enum>QLineEdit::Password</enum></property></widget></item>
5075+
<item row="4" column="1" colspan="3"><widget class="QLineEdit" name="wiz1x0_pppoe_pw"><property name="maxLength"><number>32</number></property><property name="echoMode"><enum>QLineEdit::Password</enum></property></widget></item>
50005076
<item row="5" column="0"><widget class="QLabel" name="lbl_wiz1x0_peerip"><property name="text"><string>Server IP</string></property></widget></item>
50015077
<item row="5" column="1"><widget class="QLineEdit" name="wiz1x0_peerip"/></item>
50025078
<item row="5" column="2"><widget class="QLabel" name="lbl_wiz1x0_peerport"><property name="text"><string>Port</string></property></widget></item>
@@ -5024,13 +5100,13 @@ Analog input: Read only</string>
50245100
</widget>
50255101
</item>
50265102
<item>
5027-
<layout class="QGridLayout" name="gridLayout_wiz1x0_dns">
5103+
<layout class="QGridLayout" name="gridLayout_wiz1x0_dns">
50285104
<property name="verticalSpacing"><number>4</number></property>
50295105
<item row="0" column="0"><widget class="QCheckBox" name="wiz1x0_dns_enable"><property name="text"><string>Use DNS</string></property></widget></item>
5030-
<item row="0" column="1"><widget class="QLabel" name="lbl_wiz1x0_dns_ip"><property name="text"><string>DNS Server IP</string></property></widget></item>
5031-
<item row="0" column="2"><widget class="QLineEdit" name="wiz1x0_dns_ip"/></item>
5032-
<item row="1" column="0"><widget class="QLabel" name="lbl_wiz1x0_domain"><property name="text"><string>Domain Name</string></property></widget></item>
5033-
<item row="1" column="1" colspan="2"><widget class="QLineEdit" name="wiz1x0_domain"/></item>
5106+
<item row="1" column="0"><widget class="QLabel" name="lbl_wiz1x0_dns_ip"><property name="text"><string>DNS Server IP</string></property></widget></item>
5107+
<item row="1" column="1"><widget class="QLineEdit" name="wiz1x0_dns_ip"/></item>
5108+
<item row="2" column="0"><widget class="QLabel" name="lbl_wiz1x0_domain"><property name="text"><string>Domain Name</string></property></widget></item>
5109+
<item row="2" column="1"><widget class="QLineEdit" name="wiz1x0_domain"/></item>
50345110
</layout>
50355111
</item>
50365112
<item>
@@ -5092,25 +5168,10 @@ Analog input: Read only</string>
50925168
<layout class="QVBoxLayout" name="vbox_wiz1x0_opt">
50935169
<property name="spacing"><number>4</number></property>
50945170
<item>
5095-
<layout class="QGridLayout" name="gridLayout_wiz1x0_misc">
5171+
<layout class="QGridLayout" name="gridLayout_wiz1x0_misc">
50965172
<property name="verticalSpacing"><number>4</number></property>
5097-
<item row="0" column="0"><widget class="QLabel" name="lbl_wiz1x0_ver"><property name="text"><string>Version</string></property></widget></item>
5173+
<item row="0" column="0"><widget class="QLabel" name="lbl_wiz1x0_inactivity"><property name="text"><string>Inactivity time</string></property></widget></item>
50985174
<item row="0" column="1">
5099-
<widget class="QLineEdit" name="wiz1x0_version">
5100-
<property name="maximumSize">
5101-
<size>
5102-
<width>110</width>
5103-
<height>16777215</height>
5104-
</size>
5105-
</property>
5106-
<property name="readOnly">
5107-
<bool>true</bool>
5108-
</property>
5109-
</widget>
5110-
</item>
5111-
<item row="0" column="2"><widget class="QCheckBox" name="wiz1x0_debug"><property name="text"><string>Serial Debug</string></property></widget></item>
5112-
<item row="1" column="0"><widget class="QLabel" name="lbl_wiz1x0_inactivity"><property name="text"><string>Inactivity time</string></property></widget></item>
5113-
<item row="1" column="1">
51145175
<widget class="QLineEdit" name="wiz1x0_inactivity">
51155176
<property name="maximumSize">
51165177
<size>
@@ -5120,7 +5181,7 @@ Analog input: Read only</string>
51205181
</property>
51215182
</widget>
51225183
</item>
5123-
<item row="1" column="2"><widget class="QLabel" name="lbl_wiz1x0_inactivity_unit"><property name="text"><string>(0~65535 sec)</string></property></widget></item>
5184+
<item row="0" column="2"><widget class="QLabel" name="lbl_wiz1x0_inactivity_unit"><property name="text"><string>(0~65535 sec)</string></property></widget></item>
51245185
</layout>
51255186
</item>
51265187
<item>

main_gui.py

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,13 @@ def __init__(self):
637637
self.list_device.itemSelectionChanged.connect(self.dev_selected)
638638

639639
# Menu event - File
640+
self.actionDeviceSearch = QAction("Device Search", self)
641+
self.actionDeviceSearch.setShortcut(QtGui.QKeySequence("F5"))
642+
self.actionDeviceSearch.setShortcutContext(Qt.WindowShortcut)
643+
self.actionDeviceSearch.triggered.connect(self._on_search_button_clicked)
644+
self.menuFile.insertAction(self.actionExit, self.actionDeviceSearch)
645+
self.menuFile.insertSeparator(self.actionExit)
646+
640647
self.actionSave.triggered.connect(self.dialog_save_file)
641648
self.actionLoad.triggered.connect(self.dialog_load_file)
642649
self.actionSaveSearchResults.triggered.connect(self.save_searched_results_to_csv)
@@ -3306,6 +3313,7 @@ def _set_widget_width_from_sample(self, widget, sample_text: str, extra_px: int
33063313
"""샘플 문자열 기준으로 위젯 폭을 계산해 고정."""
33073314
width = max(widget.minimumSizeHint().width(), widget.fontMetrics().horizontalAdvance(sample_text) + extra_px)
33083315
widget.setMaximumWidth(width)
3316+
return width
33093317

33103318
def _remove_layout_spacers(self, layout):
33113319
"""WIZ1x0SR compact 배치를 위해 불필요한 spacer를 제거."""
@@ -3338,6 +3346,7 @@ def _apply_wiz1x0_compact_layout(self):
33383346

33393347
self.vbox_wiz1x0_net.setAlignment(self.grp_wiz1x0_ipmode, Qt.AlignLeft)
33403348
self.vbox_wiz1x0_net.setAlignment(self.gridLayout_wiz1x0_ipfields, Qt.AlignLeft)
3349+
self.vbox_wiz1x0_outer.setAlignment(self.wiz1x0_meta, Qt.AlignLeft)
33413350
self.vbox_wiz1x0_mid.setAlignment(self.grp_wiz1x0_opmode, Qt.AlignLeft)
33423351
self.vbox_wiz1x0_mid.setAlignment(self.gridLayout_wiz1x0_dns, Qt.AlignLeft)
33433352
self.vbox_wiz1x0_mid.setAlignment(self.grp_wiz1x0_serial_params, Qt.AlignLeft)
@@ -3349,6 +3358,39 @@ def _apply_wiz1x0_compact_layout(self):
33493358
for layout in (self.gridLayout_wiz1x0_ipfields, self.gridLayout_wiz1x0_dns, self.gridLayout_wiz1x0_misc, self.gridLayout_wiz1x0_pack):
33503359
layout.setHorizontalSpacing(8)
33513360
layout.setVerticalSpacing(4)
3361+
layout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
3362+
3363+
for widget in (
3364+
self.wiz1x0_localip,
3365+
self.wiz1x0_myport,
3366+
self.wiz1x0_subnet,
3367+
self.wiz1x0_gw,
3368+
self.wiz1x0_pppoe_id,
3369+
self.wiz1x0_pppoe_pw,
3370+
self.wiz1x0_peerip,
3371+
self.wiz1x0_peerport,
3372+
):
3373+
self.gridLayout_wiz1x0_ipfields.setAlignment(widget, Qt.AlignLeft)
3374+
3375+
for widget in (
3376+
self.wiz1x0_dns_enable,
3377+
self.lbl_wiz1x0_dns_ip,
3378+
self.wiz1x0_dns_ip,
3379+
self.lbl_wiz1x0_domain,
3380+
self.wiz1x0_domain,
3381+
):
3382+
self.gridLayout_wiz1x0_dns.setAlignment(widget, Qt.AlignLeft)
3383+
3384+
for widget in (
3385+
self.wiz1x0_inactivity,
3386+
self.wiz1x0_pack_time,
3387+
self.wiz1x0_pack_size,
3388+
self.wiz1x0_pack_char,
3389+
):
3390+
if widget in (self.wiz1x0_inactivity,):
3391+
self.gridLayout_wiz1x0_misc.setAlignment(widget, Qt.AlignLeft)
3392+
else:
3393+
self.gridLayout_wiz1x0_pack.setAlignment(widget, Qt.AlignLeft)
33523394

33533395
def _apply_wiz1x0_field_widths(self):
33543396
"""WIZ1x0SR 필드 폭을 최대 예상 값 기준으로 조정."""
@@ -3358,9 +3400,9 @@ def _apply_wiz1x0_field_widths(self):
33583400
self.wiz1x0_gw: "999.999.999.999",
33593401
self.wiz1x0_dns_ip: "999.999.999.999",
33603402
self.wiz1x0_peerip: "999.999.999.999",
3361-
self.wiz1x0_domain: "device-name.example.com",
3362-
self.wiz1x0_pppoe_id: "wiznet-user-123456",
3363-
self.wiz1x0_pppoe_pw: "1234567890abcdef",
3403+
self.wiz1x0_domain: "X" * 40,
3404+
self.wiz1x0_pppoe_id: "X" * 40,
3405+
self.wiz1x0_pppoe_pw: "X" * 40,
33643406
self.wiz1x0_myport: "65535",
33653407
self.wiz1x0_peerport: "65535",
33663408
self.wiz1x0_version: "V9.9.9",
@@ -3374,7 +3416,9 @@ def _apply_wiz1x0_field_widths(self):
33743416
self.wiz1x0_scfg3: "FF",
33753417
}
33763418
for widget, sample in line_edit_samples.items():
3377-
self._set_widget_width_from_sample(widget, sample)
3419+
width = self._set_widget_width_from_sample(widget, sample)
3420+
if widget in (self.wiz1x0_domain, self.wiz1x0_pppoe_id, self.wiz1x0_pppoe_pw):
3421+
widget.setMinimumWidth(width)
33783422

33793423
combo_samples = {
33803424
self.wiz1x0_baud: "230400",

version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.6.1
1+
1.6.1.1

0 commit comments

Comments
 (0)