99 lines
3.3 KiB
Python
99 lines
3.3 KiB
Python
from PyQt6.QtCore import QSize, Qt
|
|
from PyQt6.QtGui import QPixmap
|
|
from PyQt6.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QLabel, QLineEdit, QWidget, \
|
|
QHBoxLayout, QListWidget
|
|
from ui_dialogues import select_directory, update_textbox_from_path
|
|
|
|
|
|
def create_layout1():
|
|
layout1 = QVBoxLayout()
|
|
layout1_1 = QHBoxLayout()
|
|
layout1_2 = QHBoxLayout()
|
|
layout1_3 = QHBoxLayout()
|
|
|
|
### Spacing and Alignment
|
|
layout1.setContentsMargins(10, 10, 10, 10)
|
|
layout1.setSpacing(10)
|
|
layout1.setAlignment(Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop)
|
|
layout1_1.setAlignment(Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop)
|
|
layout1_2.setAlignment(Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop)
|
|
layout1_3.setAlignment(Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop)
|
|
|
|
return layout1,layout1_1,layout1_2,layout1_3
|
|
|
|
def layout1_widgets(config):
|
|
l1,l1_1,l1_2,l1_3 = create_layout1()
|
|
|
|
### Create Top Row
|
|
lbl_src_directory = QLabel('Source Directory')
|
|
txt_box_src_directory = QLineEdit()
|
|
txt_box_src_directory.setPlaceholderText(config['folders']['source']['base'])
|
|
|
|
btn_src_browse = QPushButton('Browse')
|
|
btn_src_browse.setFixedSize(100, 40)
|
|
btn_src_browse.clicked.connect(update_textbox_from_path(
|
|
txt_box_src_directory,
|
|
config['folders']['source']['base']))
|
|
|
|
### Create Second Row
|
|
lbl_dst_directory = QLabel('Destination Directory')
|
|
txt_box_dst_directory = QLineEdit()
|
|
txt_box_dst_directory.setPlaceholderText(config['folders']['destination']['base'])
|
|
|
|
btn_dst_browse = QPushButton('Browse')
|
|
btn_dst_browse.setFixedSize(100, 40)
|
|
btn_dst_browse.clicked.connect(update_textbox_from_path(
|
|
txt_box_dst_directory,
|
|
config['folders']['destination']['base']))
|
|
|
|
### Create Third Row
|
|
btn_scan_dir = QPushButton("Scan Directory")
|
|
btn_scan_dir.setFixedSize(100, 40)
|
|
btn_scan_dir.setCheckable(False)
|
|
|
|
### Add Widgets to Layouts
|
|
l1_1.addWidget(lbl_src_directory)
|
|
l1_1.addWidget(txt_box_src_directory)
|
|
l1_1.addWidget(btn_src_browse)
|
|
l1_2.addWidget(lbl_dst_directory)
|
|
l1_2.addWidget(txt_box_dst_directory)
|
|
l1_2.addWidget(btn_dst_browse)
|
|
l1_3.addWidget(btn_scan_dir)
|
|
|
|
### Add Layouts to primary Layout 1
|
|
l1.addLayout(l1_1)
|
|
l1.addLayout(l1_2)
|
|
l1.addLayout(l1_3)
|
|
|
|
return l1
|
|
|
|
def create_layout2():
|
|
layout2 = QHBoxLayout()
|
|
layout2_1 = QHBoxLayout()
|
|
layout2_2 = QVBoxLayout()
|
|
layout2_2_1 = QHBoxLayout()
|
|
layout2_2_2 = QVBoxLayout()
|
|
|
|
return layout2,layout2_1,layout2_2,layout2_2_1,layout2_2_2
|
|
|
|
def layout2_widgets():
|
|
l2,l2_1,l2_2,l2_2_1,l2_2_2 = create_layout2()
|
|
preview_width = int(220)
|
|
preview_height = int(preview_width * 0.75)
|
|
|
|
src_file_list = QListWidget()
|
|
|
|
src_file_list.setFixedWidth(550)
|
|
|
|
preview_placeholder = QLabel("Placeholder")
|
|
preview_placeholder.setPixmap(QPixmap('assets/preview_placeholder.jpg'))
|
|
preview_placeholder.setScaledContents(True)
|
|
preview_placeholder.setFixedWidth(preview_width)
|
|
preview_placeholder.setFixedHeight(preview_height)
|
|
|
|
l2_1.addWidget(src_file_list)
|
|
l2_2.addWidget(preview_placeholder)
|
|
l2_1.setAlignment(Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop)
|
|
l2_2.setAlignment(Qt.AlignmentFlag.AlignLeft | Qt.AlignmentFlag.AlignTop)
|
|
l2.addLayout(l2_1)
|
|
l2.addLayout(l2_2) |