이미지를 가지고 있는 폴더도 소스리스트에 추가할 수 있게 함.
This commit is contained in:
64
UI.py
64
UI.py
@@ -106,6 +106,9 @@ class MyApp(QMainWindow):
|
|||||||
# 폴더 선택 창을 띄움
|
# 폴더 선택 창을 띄움
|
||||||
folder_path = QFileDialog.getExistingDirectory(self, '폴더 선택', '')
|
folder_path = QFileDialog.getExistingDirectory(self, '폴더 선택', '')
|
||||||
|
|
||||||
|
if None == folder_path or True == util.IsEmptyStr(folder_path):
|
||||||
|
return
|
||||||
|
|
||||||
# 폴더 목록에 추가
|
# 폴더 목록에 추가
|
||||||
self.list_SrcPath.addItem(folder_path)
|
self.list_SrcPath.addItem(folder_path)
|
||||||
|
|
||||||
@@ -132,16 +135,13 @@ class MyApp(QMainWindow):
|
|||||||
|
|
||||||
# 이미지 파일이 들어있다면...
|
# 이미지 파일이 들어있다면...
|
||||||
if fileExt.lower() in [".jpg", ".webp", ".jpeg", ".png", ".gif"]:
|
if fileExt.lower() in [".jpg", ".webp", ".jpeg", ".png", ".gif"]:
|
||||||
isContainImg = True
|
# 이름은 폴더
|
||||||
|
FolderName = util.GetParentDirName(folder_path, 0)
|
||||||
|
item = QListWidgetItem(FolderName)
|
||||||
|
# 폴더 경로를 따로 저장
|
||||||
|
item.setData(Qt.UserRole, folder_path)
|
||||||
|
self.list_ArcList.addItem(item)
|
||||||
|
|
||||||
# 이미지 파일이 들어있다고 알려오면...
|
|
||||||
if True == isContainImg:
|
|
||||||
# 이름은 폴더
|
|
||||||
FolderName = util.GetParentDirName(folder_path, 0)
|
|
||||||
item = QListWidgetItem(FolderName)
|
|
||||||
# 폴더 경로를 따로 저장
|
|
||||||
item.setData(Qt.UserRole, folder_path)
|
|
||||||
self.list_ArcList.addItem(item)
|
|
||||||
|
|
||||||
def on_click_SrcDel(self):
|
def on_click_SrcDel(self):
|
||||||
items = self.list_SrcPath.selectedItems()
|
items = self.list_SrcPath.selectedItems()
|
||||||
@@ -163,22 +163,33 @@ class MyApp(QMainWindow):
|
|||||||
|
|
||||||
self.list_Infos.clear()
|
self.list_Infos.clear()
|
||||||
|
|
||||||
self.dataCurSel = ""
|
pathTarget = None
|
||||||
for item in items:
|
for item in items:
|
||||||
self.dataCurSel = item.data(Qt.UserRole)
|
pathTarget = item.data(Qt.UserRole)
|
||||||
|
|
||||||
fileExt = util.GetExtStr(self.dataCurSel)
|
if False == os.path.exists(pathTarget):
|
||||||
# 압축파일이 들어있다면...
|
return
|
||||||
if fileExt.lower() in [".zip", ".cbz", ".rar"]:
|
|
||||||
|
|
||||||
dataCurSel
|
# 압축파일일 경우...
|
||||||
|
listContents = []
|
||||||
|
if True == os.path.isfile(pathTarget):
|
||||||
|
fileExt = util.GetExtStr(pathTarget)
|
||||||
|
# 일단 zip 만...
|
||||||
|
if fileExt.lower() in [".zip", ".cbz"]:
|
||||||
|
listContents = util.GetZipContentList(pathTarget)
|
||||||
|
print("zip")
|
||||||
|
elif fileExt.lower() == ".rar":
|
||||||
|
listContents = []
|
||||||
|
elif True == os.path.isdir(pathTarget):
|
||||||
|
print("folder")
|
||||||
|
listContents = util.ListFileExtRcr(pathTarget, [".jpg", ".jpeg", ".png", ".webp"])
|
||||||
|
|
||||||
listZipConts = util.GetZipContentList(self.pathCurSelZip)
|
|
||||||
self.list_Infos.addItem( QListWidgetItem(self.pathCurSelZip) )
|
self.list_Infos.addItem( QListWidgetItem(pathTarget) )
|
||||||
self.list_Infos.addItem( QListWidgetItem( f"{len(listZipConts)}" ) )
|
self.list_Infos.addItem( QListWidgetItem( f"{len(listContents)}" ) )
|
||||||
|
|
||||||
self.list_Items.clear()
|
self.list_Items.clear()
|
||||||
self.list_Items.addItems( listZipConts )
|
self.list_Items.addItems( listContents )
|
||||||
|
|
||||||
|
|
||||||
def on_Item_SelChanged_Items(self):
|
def on_Item_SelChanged_Items(self):
|
||||||
@@ -186,14 +197,21 @@ class MyApp(QMainWindow):
|
|||||||
if 0 >= len(items):
|
if 0 >= len(items):
|
||||||
return
|
return
|
||||||
|
|
||||||
data = util.GetZippedFileByte(self.pathCurSelZip, items[0].text())
|
selItemText = items[0].text()
|
||||||
imageIO = BytesIO(data)
|
|
||||||
pixmap = QPixmap()
|
pixmap = QPixmap()
|
||||||
pixmap.loadFromData( QByteArray( imageIO.getvalue() ) )
|
pathTarget = self.list_Infos.item(0).text()
|
||||||
|
|
||||||
|
if True == os.path.isfile(pathTarget):
|
||||||
|
data = util.GetZippedFileByte(pathTarget, selItemText)
|
||||||
|
imageIO = BytesIO(data)
|
||||||
|
pixmap.loadFromData( QByteArray( imageIO.getvalue() ) )
|
||||||
|
elif True == os.path.isdir(pathTarget):
|
||||||
|
if True == os.path.exists(selItemText):
|
||||||
|
pixmap.load(selItemText)
|
||||||
|
|
||||||
szLabel = self.label_Image.size()
|
szLabel = self.label_Image.size()
|
||||||
|
|
||||||
|
|
||||||
self.label_Image.setPixmap(pixmap)
|
self.label_Image.setPixmap(pixmap)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
10
UtilPack.py
10
UtilPack.py
@@ -80,14 +80,18 @@ def ListContainFiles(pathDir):
|
|||||||
|
|
||||||
return listRet
|
return listRet
|
||||||
|
|
||||||
def ListFileExtRcr(pathTrg, strExt):
|
def ListFileExtRcr(pathTrg, listExt):
|
||||||
listRet= []
|
listRet= []
|
||||||
|
|
||||||
|
if False == isinstance(listExt, list):
|
||||||
|
print("ext must list")
|
||||||
|
return
|
||||||
|
|
||||||
# pathTrg의 하위 디렉토리 및 파일 목록을 얻음
|
# pathTrg의 하위 디렉토리 및 파일 목록을 얻음
|
||||||
for dirpath, dirnames, filenames in os.walk(pathTrg):
|
for dirpath, dirnames, filenames in os.walk(pathTrg):
|
||||||
for file in filenames:
|
for file in filenames:
|
||||||
extTmp = GetExtStr(file, False)
|
extTmp = GetExtStr(file)
|
||||||
if extTmp.lower() == strExt and file.startswith('.'):
|
if extTmp.lower() in listExt and not file.startswith('.'):
|
||||||
listRet.append(os.path.join(dirpath, file))
|
listRet.append(os.path.join(dirpath, file))
|
||||||
|
|
||||||
return listRet
|
return listRet
|
||||||
|
|||||||
Reference in New Issue
Block a user