-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPyExtendTools.py
More file actions
4514 lines (4345 loc) · 619 KB
/
PyExtendTools.py
File metadata and controls
4514 lines (4345 loc) · 619 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# -*- coding: utf-8 -*-
import ast
import asyncio
import concurrent.futures
import datetime
import json
import locale
import logging.config
import os
import pathlib
import platform
import re
import shutil
import sys
import tarfile
import time
import zipfile
import mutagen.flac
import mutagen.id3
import mutagen.mp3
import mutagen.mp4
import numpy
import psutil
import py7zr
import pyqtgraph
import send2trash
from PySide6.QtCharts import (QChart, QChartView, QPieSeries, QPieSlice)
from PySide6.QtCore import (QCoreApplication, QByteArray, QMetaObject, QRect, Qt, Signal, Slot, QSize, QFile, QEvent,
QFileInfo, QLocale, QTranslator, QMimeDatabase, QDate, QObject)
from PySide6.QtGui import (QFont, QStandardItem, QStandardItemModel, QDesktopServices, QCursor, QPixmap, QPixmapCache,
QIcon, QImage, QGuiApplication, QColor)
from PySide6.QtWidgets import (QApplication, QCheckBox, QLabel, QListView, QLineEdit, QMainWindow, QPlainTextEdit,
QPushButton, QTabWidget, QTreeView, QWidget, QFileSystemModel, QMenu, QAbstractItemView,
QDialog, QDialogButtonBox, QFileIconProvider, QGridLayout, QScrollArea, QCalendarWidget, QButtonGroup)
from mutagen.easyid3 import EasyID3
logger = logging.getLogger('QObject')
logger.setLevel(3)
BackupNowPath = [u'']
PathListory = [u'']
SelectedItemPath = [u'']
CopiedItems = [u'']
CopiedItemCount = [0]
SortedNumbar = [u'']
SelectedItem = [u'0']
QLinePath = [u'']
PathHistorys = []
PathHistorys2 = [u'']
CheckPaths = [u'0']
StopPath = [u'0']
StopPath2 = [u'0']
NowRootDirectoryPath = [u'']
BackupRootPath = [os.path.expanduser(u'~')]
OneChecked = [u'1']
OneChecked2 = [u'0']
OneChecked3 = [u'0']
BackPageIndex = [1]
EditFilePath = []
EditMediaPath_FLAC = []
EditMediaPath_M4A = []
EditMediaPath_MP3 = []
DropedCoverImage = [u'']
DropedCheck = [u'0']
upDay = [datetime.datetime.now().day]
try:
locale.setlocale(locale.LC_CTYPE, u'Japanese_Japan.932')
except:
locale.setlocale(locale.LC_TIME, u'ja_JP.UTF-8')
class FileSearchingThread(object):
def __init__(self, path=None, sfile=None):
self.path = path
self.sfile = sfile
self.loader = QPixmapCache()
self.loader.clear()
self.databaseIcon = QMimeDatabase()
def from_item_to_json(self, parent, data):
for c in range(len(data)):
path = json.loads(data[c]).get('PATH')
self.fileInfo = QFileInfo(path)
if os.path.isfile(path):
AcceptFileType = ('.svg', '.jpg', '.jpeg', '.png', '.bmp', '.gif', '.rgb', '.tiff', '.xbm', '.pbm', '.pgm', '.ppm', '.ico')
try:
if path.lower().endswith(AcceptFileType):
icon = self.LoadImage(path)
if path.lower().endswith('.flac'):
icon = self.LoadFLAC(path)
if path.lower().endswith('.m4a'):
icon = self.LoadM4A(path)
if path.lower().endswith('.mp3'):
icon = self.LoadMP3(path)
if not path.lower().endswith(('.flac', '.m4a', '.mp3')) and not path.lower().endswith(AcceptFileType):
icon = QFileIconProvider().icon(QFileIconProvider.File)
except:
icon = QFileIconProvider().icon(QFileIconProvider.File)
else:
icon = QFileIconProvider().icon(QFileIconProvider.Folder)
c2 = QStandardItem(icon, path)
parent.appendRow(c2)
def LoadImage(self, path):
try:
key = self.loader.Key()
img = QPixmap(QSize(16, 16))
img.load(path)
self.loader.replace(key, img)
self.loader.setCacheLimit(100)
return QIcon(img.scaled(16, 16))
except Exception:
return QIcon(QFileIconProvider().icon(QFileIconProvider.File))
def LoadFLAC(self, path):
try:
key = self.loader.Key()
img = QPixmap(QSize(16, 16))
img.loadFromData(mutagen.flac.FLAC(path).pictures[0].data)
self.loader.replace(key, img)
self.loader.setCacheLimit(100)
return QIcon(img.scaled(16, 16))
except Exception:
return QIcon.fromTheme(self.databaseIcon.mimeTypeForFile(self.fileInfo).iconName())
def LoadMP3(self, path):
try:
key = self.loader.Key()
img = QPixmap(QSize(16, 16))
img.loadFromData(mutagen.mp3.MP3(path)['APIC:'].data)
self.loader.replace(key, img)
self.loader.setCacheLimit(100)
return QIcon(img.scaled(16, 16))
except Exception:
return QIcon.fromTheme(self.databaseIcon.mimeTypeForFile(self.fileInfo).iconName())
def LoadM4A(self, path):
try:
key = self.loader.Key()
img = QPixmap(QSize(16, 16))
img.loadFromData(mutagen.mp4.MP4(path)['covr'][0])
self.loader.replace(key, img)
self.loader.setCacheLimit(100)
return QIcon(img.scaled(16, 16))
except Exception:
return QIcon.fromTheme(self.databaseIcon.mimeTypeForFile(self.fileInfo).iconName())
def Search(self):
self.DicFiles = []
for File in pathlib.Path(self.path).glob(self.sfile):
self.DicFiles.append(json.dumps({'PATH': '{}'.format(str(File))}, indent=2, ensure_ascii=False))
def run(self):
TH = concurrent.futures.ThreadPoolExecutor(os.cpu_count() * 999999999999999999999999999999999999999999999999999999999999999)
TH.submit(self.Search).result()
self.ItemModel = QStandardItemModel()
TH2 = concurrent.futures.ThreadPoolExecutor(os.cpu_count()*99999999999999)
TH2.submit(self.from_item_to_json, self.ItemModel.invisibleRootItem(), sorted(self.DicFiles)).result()
SearchWindow(model=self.ItemModel).show()
self.loader.clear()
class Credit(QDialog):
def __init__(self, parent=None):
super(Credit, self).__init__(parent)
self.setWindowIcon(QIcon(QPixmap(QSize(512, 512)).fromImage(QImage.fromData(QByteArray.fromBase64(
b'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')))))
self.setWindowTitle('ライセンスについて')
self.setFixedSize(250, 350)
self.setStyleSheet('QDialog{background: #2d2d2d;color: #ededed;}')
self.Fonts = QFont()
self.Fonts.setPixelSize(13)
self.setFont(self.Fonts)
self.py7zr = QLabel()
self.py7zr.setFont(self.Fonts)
self.py7zr.setText('\t\t\t\t[Py7zr]')
self.py7zr.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.py7zr_c = QLabel()
self.py7zr_c.setFont(self.Fonts)
self.py7zr_c.setText('\t\t・Copyright (C) 2019-2022 Hiroshi Miura\n\n\t\t・pylzma Copyright (c) 2004-2015 by Joachim Bauch\n\n\t\t・7-Zip Copyright (C) 1999-2010 Igor Pavlov\n\n\t\t・LZMA SDK Copyright (C) 1999-2010 Igor Pavlov\n')
self.py7zr_c.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.Send2Trash = QLabel()
self.Send2Trash.setFont(self.Fonts)
self.Send2Trash.setText('\t\t\t\t[Send2Trash]')
self.Send2Trash.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.Send2Trash_c = QLabel()
self.Send2Trash_c.setFont(self.Fonts)
self.Send2Trash_c.setText('\t\t・Copyright (c) 2017, Virgil Dupras')
self.Send2Trash_c.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.PSUtil = QLabel()
self.PSUtil.setText('\t\t\t\t[psutil]')
self.PSUtil.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.PSUtil.setFont(self.Fonts)
self.PSUtil_c = QLabel()
self.PSUtil_c.setFont(self.Fonts)
self.PSUtil_c.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.PSUtil_c.setText("\t\t・Copyright (c) 2009, Jay Loden, Dave Daeschler, Giampaolo Rodola")
self.OkButton = QDialogButtonBox(QDialogButtonBox.Ok, Qt.Horizontal, self)
self.OkButton.accepted.connect(self.accept)
self.OkButton.setStyleSheet('QDialogButtonBox{background: #2d2d2d;color: #ededed;} QPushButton{background: #2d2d2d;color: #ededed;}')
self.CreditLayout = QGridLayout()
self.CreditLayout.addWidget(self.py7zr, 0, 0, Qt.AlignLeft)
self.CreditLayout.addWidget(self.py7zr_c, 1, 0, Qt.AlignLeft)
self.CreditLayout.addWidget(self.Send2Trash, 2, 0, Qt.AlignLeft)
self.CreditLayout.addWidget(self.Send2Trash_c, 3, 0, Qt.AlignLeft)
self.CreditLayout.addWidget(self.PSUtil, 4, 0, Qt.AlignLeft)
self.CreditLayout.addWidget(self.PSUtil_c, 5, 0, Qt.AlignLeft)
self.CreditLayout.addWidget(self.OkButton, 7, 2, Qt.AlignLeft)
for col in range(self.CreditLayout.columnCount()):
self.CreditLayout.setColumnMinimumWidth(col, 10)
self.setMinimumWidth(660)
self.setMaximumWidth(700)
self.CreditLayout.setAlignment(Qt.AlignCenter)
self.setLayout(self.CreditLayout)
@staticmethod
def ShowResult():
r = Credit()
r.exec()
if r.result() == QDialog.Accepted:
pass
class UpdateWidget(QObject):
TextSignal = Signal(int)
ClockSignal = Signal(int)
def __init__(self, parent=None):
super(UpdateWidget, self).__init__(parent)
concurrent.futures.ThreadPoolExecutor().submit(asyncio.run, self._clock_update())
concurrent.futures.ThreadPoolExecutor().submit(asyncio.run, self._update())
async def _clock_update(self):
while True:
self.ClockSignal.emit(1)
time.sleep(0.5)
async def _update(self):
while True:
self.TextSignal.emit(1)
time.sleep(0.8)
class SystemInfoWidget(QWidget): # System情報パネル
def __init__(self, parent=None):
super(SystemInfoWidget, self).__init__(parent)
self.cpu = QLabel()
self.cpu.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.cpu.setMinimumWidth(350)
self.cpuLabel = QLabel()
self.cpuLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.cpuLabel.setText('CPU使用率: ')
self.cpuLabel.setAlignment(Qt.AlignLeft)
self.diskExplainLabel = QLabel()
self.diskExplainLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.diskExplainLabel.setText('ディスク使用容量 / 空き容量: ')
self.diskFree = QLabel()
self.diskFree.setMinimumWidth(350)
self.diskFree.setAlignment(Qt.AlignLeft)
self.diskFree.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.diskUsed = QLabel()
self.diskUsed.setMinimumWidth(350)
self.diskUsed.setAlignment(Qt.AlignLeft)
self.diskUsed.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.diskUsedCapacity = QLabel()
self.diskUsedCapacity.setMinimumWidth(350)
self.diskUsedCapacity.setAlignment(Qt.AlignLeft)
self.diskUsedCapacity.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.diskUsedCapacityLabel = QLabel()
self.diskUsedCapacityLabel.setAlignment(Qt.AlignLeft)
self.diskUsedCapacityLabel.setMinimumWidth(160)
self.diskUsedCapacityLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.diskUsedCapacityLabel.setText('ディスク使用量: ')
self.diskUsedCapacityLabel.setAlignment(Qt.AlignLeft)
self.diskframe = QLabel()
self.diskframe.setAlignment(Qt.AlignCenter)
self.diskframe.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.diskframe.setMaximumHeight(1)
self.diskframe.setMinimumWidth(600)
self.frame0 = QLabel()
self.frame0.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.frame0.setMaximumHeight(1)
self.frame0.setMinimumWidth(550)
self.frame1 = QLabel()
self.frame1.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.frame1.setMaximumHeight(1)
self.frame1.setMinimumWidth(550)
self.frame2 = QLabel()
self.frame2.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.frame2.setMaximumHeight(1)
self.frame2.setMinimumWidth(550)
self.frame3 = QLabel()
self.frame3.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.frame3.setMaximumHeight(1)
self.frame3.setMinimumWidth(550)
self.frame4 = QLabel()
self.frame4.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.frame4.setMaximumHeight(1)
self.frame4.setMinimumWidth(550)
self.memoryExplainLabel = QLabel()
self.memoryExplainLabel.setAlignment(Qt.AlignLeft)
self.memoryExplainLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.memoryExplainLabel.setText('メモリー使用率 / 空き容量: ')
self.memoryExplainLabel.setMinimumWidth(160)
self.memoryFree = QLabel()
self.memoryFree.setAlignment(Qt.AlignLeft)
self.memoryFree.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.memoryFree.setMinimumWidth(350)
self.memoryUsed = QLabel()
self.memoryUsed.setAlignment(Qt.AlignLeft)
self.memoryUsed.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.memoryUsed.setMinimumWidth(350)
self.memoryUsedCapacityPercent = QLabel()
self.memoryUsedCapacityPercent.setMinimumWidth(350)
self.memoryUsedCapacityPercent.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.memoryUsedCapacityPercentLabel = QLabel()
self.memoryUsedCapacityPercentLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.memoryUsedCapacityPercentLabel.setAlignment(Qt.AlignLeft)
self.memoryUsedCapacityPercentLabel.setText('物理メモリー使用率: ')
self.network = QLabel()
self.network.setAlignment(Qt.AlignLeft)
self.network.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.network.setMinimumWidth(350)
self.networkLabel = QLabel()
self.networkLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.networkLabel.setText('ネットワーク使用率: ')
self.networkLabel.setAlignment(Qt.AlignLeft)
self.virtualMemoryFree = QLabel()
self.virtualMemoryFree.setAlignment(Qt.AlignLeft)
self.virtualMemoryFree.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.virtualMemoryFree.setMinimumWidth(450)
self.virtualMemoryUsed = QLabel()
self.virtualMemoryUsed.setMinimumWidth(450)
self.virtualMemoryUsed.setAlignment(Qt.AlignLeft)
self.virtualMemoryUsed.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.virtualMemoryUsedCapacity = QLabel()
self.virtualMemoryUsedCapacity.setMinimumWidth(350)
self.virtualMemoryUsedCapacity.setAlignment(Qt.AlignLeft)
self.virtualMemoryUsedCapacity.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.virtualMemoryUsedCapacityLabel = QLabel()
self.virtualMemoryUsedCapacityLabel.setAlignment(Qt.AlignLeft)
self.virtualMemoryUsedCapacityLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.virtualMemoryUsedCapacityLabel.setText('仮想メモリー使用率: ')
self.virtualmemoryExplainLabel = QLabel()
self.virtualmemoryExplainLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.virtualmemoryExplainLabel.setText('仮想メモリー使用量 / 空き容量: ')
self.Update = UpdateWidget()
self.Update.TextSignal.connect(self.UpdateWidget)
self.SystemInfoLayout = QGridLayout()
self.SystemInfoLayout.addWidget(self.frame0, 0, 0)
self.SystemInfoLayout.addWidget(self.networkLabel, 1, 0, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.network, 1, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.frame1, 2, 0)
self.SystemInfoLayout.addWidget(self.cpuLabel, 3, 0, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.cpu, 3, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.frame2, 4, 0)
self.SystemInfoLayout.addWidget(self.memoryUsedCapacityPercentLabel, 5, 0, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.memoryUsedCapacityPercent, 5, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.memoryUsed, 6, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.memoryExplainLabel, 7, 0, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.memoryFree, 8, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.frame3, 9, 0)
self.SystemInfoLayout.addWidget(self.virtualMemoryUsedCapacityLabel, 10, 0, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.virtualMemoryUsedCapacity, 10, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.virtualMemoryUsed, 11, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.virtualmemoryExplainLabel, 12, 0, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.virtualMemoryFree, 13, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.frame4, 14, 0)
self.SystemInfoLayout.addWidget(self.diskUsedCapacityLabel, 15, 0, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.diskUsedCapacity, 15, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.diskFree, 16, 1, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.diskExplainLabel, 17, 0, Qt.AlignCenter)
self.SystemInfoLayout.addWidget(self.diskUsed, 18, 1, Qt.AlignCenter)
for Col in range(self.SystemInfoLayout.columnCount()):
self.SystemInfoLayout.setColumnMinimumWidth(Col, 5000)
self.SystemInfoLayout.setContentsMargins(10, 0, 0, 0)
self.setLayout(self.SystemInfoLayout)
self.setMinimumWidth(600)
self.setMaximumWidth(620)
@Slot(str)
def UpdateWidget(self, _):
concurrent.futures.ThreadPoolExecutor().submit(self.CPUMontor)
concurrent.futures.ThreadPoolExecutor().submit(self.MemoryMonitor)
concurrent.futures.ThreadPoolExecutor().submit(self.WiFiSpeedRate)
concurrent.futures.ThreadPoolExecutor().submit(self.UsedMemory)
concurrent.futures.ThreadPoolExecutor().submit(self.FreeMemory)
concurrent.futures.ThreadPoolExecutor().submit(self.SwapMemoryUsedPercent)
concurrent.futures.ThreadPoolExecutor().submit(self.SwapUsed)
concurrent.futures.ThreadPoolExecutor().submit(self.SwapFree)
concurrent.futures.ThreadPoolExecutor().submit(self.DiskUsedPercent)
concurrent.futures.ThreadPoolExecutor().submit(self.DiskUsed)
concurrent.futures.ThreadPoolExecutor().submit(self.DiskFree)
def WiFiSpeedRate(self): # 0.8秒毎に更新
try:
Net_IN1 = psutil.net_io_counters().bytes_recv
Net_OUT1 = psutil.net_io_counters().bytes_sent
time.sleep(0.5)
Net_IN2 = psutil.net_io_counters().bytes_recv
Net_OUT2 = psutil.net_io_counters().bytes_sent
NETIN = '{}GB'.format(round((Net_IN2 - Net_IN1) / 1073741824, 1))
if NETIN[0:2] == '0.':
NETIN = '{}MB'.format(round((Net_IN2 - Net_IN1) / 1048576, 1))
if NETIN[0:2] == '0.':
NETIN = '{}KB'.format(round((Net_IN2 - Net_IN1) / 1024, 1))
if NETIN[0:2] == '0.':
NETIN = '{}B'.format((Net_IN2 - Net_IN1))
NETOUT = '{}GB'.format(round((Net_OUT2 - Net_OUT1) / 1073741824, 1))
if NETOUT[0:2] == '0.':
NETOUT = '{}MB'.format(round((Net_OUT2 - Net_OUT1) / 1048576, 1))
if NETOUT[0:2] == '0.':
NETOUT = '{}KB'.format(round((Net_OUT2 - Net_OUT1) / 1024, 1))
if NETOUT[0:2] == '0.':
NETOUT = '{}B'.format((Net_OUT2 - Net_OUT1))
self.network.setText('{} {}'.format('↑{} /s'.format(NETOUT).center(8), '↓{} /s'.format(NETIN).center(8)))
except:
pass
def CPUMontor(self): # 0.8秒毎に更新
try:
self.cpu.setText('{}%'.format(psutil.cpu_percent(interval=0.8)))
except:
pass
def MemoryMonitor(self): # 0.8秒毎に更新
try:
self.memoryUsedCapacityPercent.setText('{}%'.format(psutil.virtual_memory().percent))
except:
pass
def FreeMemory(self): # 0.8秒毎に更新
try:
MemoryFree = '{}GB'.format(round(psutil.virtual_memory().available / 1073741824, 1))
if MemoryFree[0:2] == '0.':
MemoryFree = '{}MB'.format(round(psutil.virtual_memory().available / 1048576, 1))
if MemoryFree[0:2] == '0.':
MemoryFree = '{}KB'.format(round(psutil.virtual_memory().available / 1024, 1))
if MemoryFree[0:2] == '0.':
MemoryFree = '{}B'.format(psutil.virtual_memory().available)
self.memoryFree.setText('空き容量: {}GB 中 約{}'.format(round(psutil.virtual_memory().total / 1073741824, 1), MemoryFree))
except:
pass
def UsedMemory(self): # 0.8秒毎に更新
try:
useMemory = '{}GB'.format(round(psutil.virtual_memory().used / 1073741824, 1))
if useMemory[0:2] == '0.':
useMemory = '{}MB'.format(round(psutil.virtual_memory().used / 1048576, 1))
if useMemory[0:2] == '0.':
useMemory = '{}KB'.format(round(psutil.virtual_memory().used / 1024, 1))
if useMemory[0:2] == '0.':
useMemory = '{}B'.format(psutil.virtual_memory().used)
self.memoryUsed.setText('使用容量: {}GB 中 約{}'.format(round(psutil.virtual_memory().total / 1073741824, 1), useMemory))
except:
pass
def SwapMemoryUsedPercent(self): # 0.8秒毎に更新
try:
self.virtualMemoryUsedCapacity.setText('{}%'.format(psutil.swap_memory().percent))
except:
pass
def SwapUsed(self): # 0.8秒毎に更新
try:
Swpused = '{}GB'.format(round(psutil.swap_memory().used / 1073741824, 1))
if Swpused[0:2] == '0.':
Swpused = '{}MB'.format(round(psutil.swap_memory().used / 1048576, 1))
if Swpused[0:2] == '0.':
Swpused = '{}KB'.format(round(psutil.swap_memory().used / 1024, 1))
if Swpused[0:2] == '0.':
Swpused = '{}B'.format(psutil.swap_memory().used)
self.virtualMemoryUsed.setText('使用容量: {}GB 中 約{}'.format(round(psutil.swap_memory().total / 1073741824, 1), Swpused))
except:
pass
def SwapFree(self): # 0.8秒毎に更新
try:
SwpFree = '{}GB'.format(round(psutil.swap_memory().free / 1073741824, 1))
if SwpFree[0:2] == '0.':
SwpFree = '{}MB'.format(round(psutil.swap_memory().free / 1048576, 1))
if SwpFree[0:2] == '0.':
SwpFree = '{}KB'.format(round(psutil.swap_memory().free / 1024, 1))
if SwpFree[0:2] == '0.':
SwpFree = '{}B'.format(psutil.swap_memory().free)
self.virtualMemoryFree.setText('空き容量: {}GB 中 約{}'.format(round(psutil.swap_memory().total / 1073741824, 1), SwpFree))
except:
pass
def DiskUsedPercent(self): # 0.8秒毎に更新
try:
if not os.path.splitdrive(os.environ['windir'])[0] == '':
mountPath = os.path.splitdrive(os.environ['windir'])[0] + '/'
else:
mountPath = '/'
except KeyError:
mountPath = '/'
try:
self.diskUsedCapacity.setText('{}%'.format(psutil.disk_usage(mountPath).percent))
except:
pass
def DiskUsed(self): # 0.8秒毎に更新
try:
if not os.path.splitdrive(os.environ['windir'])[0] == '':
mountPath = os.path.splitdrive(os.environ['windir'])[0] + '/'
else:
mountPath = '/'
except KeyError:
mountPath = '/'
try:
TotalDisk = '{}TB'.format(round(psutil.disk_usage(mountPath).total / 1099511627776, 1))
if TotalDisk[0:2] == '0.':
TotalDisk = '{}GB'.format(round(psutil.disk_usage(mountPath).total / 1073741824, 1))
if TotalDisk[0:2] == '0.':
TotalDisk = '{}MB'.format(round(psutil.disk_usage(mountPath).total / 1048576, 1))
if TotalDisk[0:2] == '0.':
TotalDisk = '{}KB'.format(round(psutil.disk_usage(mountPath).total / 1024, 1))
if TotalDisk[0:2] == '0.':
TotalDisk = '{}B'.format(psutil.disk_usage(mountPath).total)
diskUseBytes = '{}TB'.format(round(psutil.disk_usage(mountPath).used / 1099511627776, 1))
if diskUseBytes[0:2] == '0.':
diskUseBytes = '{}GB'.format(round(psutil.disk_usage(mountPath).used / 1073741824, 1))
if diskUseBytes[0:2] == '0.':
diskUseBytes = '{}MB'.format(round(psutil.disk_usage(mountPath).used / 1048576, 1))
if diskUseBytes[0:2] == '0.':
diskUseBytes = '{}KB'.format(round(psutil.disk_usage(mountPath).used / 1024, 1))
if diskUseBytes[0:2] == '0.':
diskUseBytes = '{}B'.format(psutil.disk_usage(mountPath).used)
self.diskUsed.setText('使用容量: 約{} 中 約{}'.format(TotalDisk, diskUseBytes))
except:
pass
def DiskFree(self): # 0.8秒毎に更新
try:
if not os.path.splitdrive(os.environ['windir'])[0] == '':
mountPath = os.path.splitdrive(os.environ['windir'])[0] + '/'
else:
mountPath = '/'
except KeyError:
mountPath = '/'
try:
TotalDisk = '{}TB'.format(round(psutil.disk_usage(mountPath).total / 1099511627776, 1))
if TotalDisk[0:2] == '0.':
TotalDisk = '{}GB'.format(round(psutil.disk_usage(mountPath).total / 1073741824, 1))
if TotalDisk[0:2] == '0.':
TotalDisk = '{}MB'.format(round(psutil.disk_usage(mountPath).total / 1048576, 1))
if TotalDisk[0:2] == '0.':
TotalDisk = '{}KB'.format(round(psutil.disk_usage(mountPath).total / 1024, 1))
if TotalDisk[0:2] == '0.':
TotalDisk = '{}B'.format(psutil.disk_usage(mountPath).total)
diskFreeBytes = '{}TB'.format(round(psutil.disk_usage(mountPath).free / 1099511627776, 1))
if diskFreeBytes[0:2] == '0.':
diskFreeBytes = '{}GB'.format(round(psutil.disk_usage(mountPath).free / 1073741824, 1))
if diskFreeBytes[0:2] == '0.':
diskFreeBytes = '{}MB'.format(round(psutil.disk_usage(mountPath).free / 1048576, 1))
if diskFreeBytes[0:2] == '0.':
diskFreeBytes = '{}KB'.format(round(psutil.disk_usage(mountPath).free / 1024, 1))
if diskFreeBytes[0:2] == '0.':
diskFreeBytes = '{}KB'.format(psutil.disk_usage(mountPath).free)
self.diskFree.setText('空き容量: 約{} 中 約{}'.format(TotalDisk, diskFreeBytes))
except:
pass
class DiskPieWidget(QWidget): # ディスクの使用状況
def __init__(self):
super(DiskPieWidget, self).__init__()
self.UpdateWidget = UpdateWidget()
self.UpdateWidget.TextSignal.connect(self.updateSet)
self.setStyleSheet('QWidget{background: #292828;color: #ededed;border: 0px #292828;}')
self.setGraph()
@Slot(int)
def updateSet(self, _):
concurrent.futures.ThreadPoolExecutor().submit(self.setGraph)
def setGraph(self):
DiskWidgets = []
for idx, devices in enumerate(sorted(psutil.disk_partitions())):
try:
DevceName = devices.device
MountPosition = devices.mountpoint
devInfo = psutil.disk_usage(MountPosition)
UsedRegion = round(devInfo.used / devInfo.total * 100)
FreeRegion = round(devInfo.free / devInfo.total * 100)
DeviceSerises = QPieSeries()
DeviceSerises.clear()
DeviceSerises.append('使用領域', UsedRegion)
DeviceSerises.append('空き領域', FreeRegion)
DeviceSerises.setHorizontalPosition(0.4999)
DeviceSerises.setVerticalPosition(0.62)
DeviceSerises.setPieSize(0.5)
DeviceRegionLabelFont = QFont()
DeviceRegionLabelFont.setPixelSize(8)
DeviceSerises.slices()[0].setLabelFont(DeviceRegionLabelFont)
DeviceSerises.slices()[0].setLabelBrush(QColor(237, 237, 237))
DeviceSerises.slices()[0].setBrush(QColor(233, 88, 88))
DeviceSerises.slices()[0].setLabel('使用領域 ({}%)'.format(round(100 * DeviceSerises.slices()[0].percentage())))
DeviceSerises.slices()[0].setLabelPosition(QPieSlice.LabelInsideHorizontal)
DeviceSerises.slices()[1].setLabelFont(DeviceRegionLabelFont)
DeviceSerises.slices()[1].setLabelBrush(QColor(237, 237, 237))
DeviceSerises.slices()[1].setBrush(QColor(39, 128, 219))
DeviceSerises.slices()[1].setLabel('空き領域 ({}%)'.format(round(100 * DeviceSerises.slices()[1].percentage())))
DeviceChart = QChart()
DeviceChart.setBackgroundBrush(QColor(41, 40, 40))
DeviceChart.addSeries(DeviceSerises)
DeviceChart.setFont(DeviceRegionLabelFont)
DeviceChart.legend().setVisible(True)
DeviceChart.legend().setAlignment(Qt.AlignBottom)
DeviceChart.legend().setLabelBrush(QColor(237, 237, 237))
DeviceChart.setMaximumSize(300, 100)
DeviceChart.setContentsMargins(-200, -58, -215, -38)
DeviceChartView = QChartView(DeviceChart)
DeviceChartView.setObjectName('DiskChart_{}'.format(idx))
DeviceChartView.setStyleSheet('QChartView#DiskChart_%s{background: #292828;}' % str(idx))
DeviceChartView.setFont(DeviceRegionLabelFont)
DeviceChartView.setMaximumWidth(600)
DeviceChartView.setMaximumHeight(500)
DeviceChartView.setContentsMargins(0, 0, 20, 0)
DeviceChartView.setAlignment(Qt.AlignCenter)
DeviceChart.setBackgroundRoundness(0)
DiskWidgets.append([DeviceChartView, DevceName])
except:
pass
self.DiskWdget = QGridLayout()
self.colmunsCount = [_c for _c in range(len(DiskWidgets))]
self.delmiterColmun = []
DmiterCount0 = []
DmiterCount1 = []
for ix in range(0, len(self.colmunsCount), 2):
try:
self.delmiterColmun.append(self.colmunsCount[ix:ix + 2])
except:
continue
for d0 in self.delmiterColmun:
try:
DmiterCount0.append(d0[1])
except:
continue
for d1 in self.delmiterColmun:
try:
DmiterCount1.append(d1[0])
except:
continue
row = 0
col = 0
for idx, DeviceWidget in enumerate(DiskWidgets):
if idx in DmiterCount1:
row = 0
col = idx + 1
elif idx in DmiterCount0:
row = 1
col = idx
self.DiskWdget.addWidget(DeviceWidget[0], row, col, Qt.AlignLeft)
self.DiskWdget.setContentsMargins(0, 0, 10, 0)
self.DiskLabelList = QListView()
self.DiskLabelList.setStyleSheet('QListView{background: #292828;color: #ededed;border: 0px #292828;}')
self.DiskLabel0 = QLabel()
self.DiskLabel0.setPixmap(QFileIconProvider().icon(QFileIconProvider.Drive).pixmap(QSize(32, 32)))
self.DiskLabel0.setStyleSheet('QLabel{background: #292828;color: #ededed;}')
self.DiskLabel0.setAlignment(Qt.AlignLeft)
self.DiskLabel1Font = QFont()
self.DiskLabel1Font.setPixelSize(25)
self.DiskLabel1 = QLabel()
self.DiskLabel1.setAlignment(Qt.AlignLeft)
self.DiskLabel1.setText(DeviceWidget[1])
self.DiskLabel1.setStyleSheet('QLabel{background: #292828;color: #ededed;}')
self.DiskLabel1.setFont(self.DiskLabel1Font)
self.DiskSpaceFont = QFont()
self.DiskSpaceFont.setPixelSize(1)
self.DiskSpace = QLabel()
self.DiskSpace.setAlignment(Qt.AlignLeft)
self.DiskSpace.setText(' ')
self.DiskSpace.setStyleSheet('QLabel{background: #292828;color: #ededed;}')
self.DiskSpace.setFont(self.DiskLabel1Font)
self.DiskLabelSubWidget = QGridLayout()
self.DiskLabelSubWidget.addWidget(self.DiskLabel1, 0, 3, Qt.AlignLeft)
self.DiskLabelSubWidget.addWidget(self.DiskLabel0, 0, 1, Qt.AlignLeft)
self.DiskLabelSubWidget.addWidget(self.DiskSpace, 0, 2, Qt.AlignLeft)
self.DiskLabelList.setIconSize(QSize(25, 25))
self.DiskLabelList.setLayout(self.DiskLabelSubWidget)
self.DiskLabelList.setMaximumWidth(247)
self.DiskLabelList.setMinimumHeight(10)
self.DiskWdget.addWidget(self.DiskLabelList, row + 1, col, Qt.AlignLeft)
col = col + idx
self.setLayout(self.DiskWdget)
class EditMusicTagDailog(QDialog): # 音楽ファイルだった時に出すプロパティ
def __init__(self, SelectedFilePath):
super(EditMusicTagDailog, self).__init__()
self.FilePathList = SelectedFilePath
self.setWindowTitle('ファイルの詳細')
self.setFixedSize(530, 680)
DropedCheck[0] = '0'
self.FilesCount = 0
self.FoldersCount = 0
self.Files = []
self.OtherFiles = []
self.Folders = []
EditMediaPath_FLAC[0:] = []
EditMediaPath_M4A[0:] = []
EditMediaPath_MP3[0:] = []
self.setStyleSheet('QDialog{background: #2d2d2d;color: #ededed;}')
self.FilePropertyTab = QTabWidget(self)
self.FilePropertyTab.setFixedSize(490, 615)
self.FilePropertyTab.setStyleSheet('QWidget{background: #2d2d2d;color: #ededed;} QTabBar::tab{background: #2d2d2d;color: White;border: 1px solid #1a1a1a;border-color: #1a1a1a;} QTabWidget::pane{background: #2d2d2d;color: #ededed;} QTabWidget::tab{border: 0px solid #1a1a1a;border-color: #1a1a1a;background: #2d2d2d;#ededed;}')
if len(self.FilePathList) == 1:
self.OhterMultipleFileCheck = False
self.MultipleFileCheck = True
self.GeneralTab = QWidget()
self.PreviewIcon = QLabel(self.GeneralTab)
self.PreviewIcon.setGeometry(QRect(35, 0, 70, 70))
self.PreviewIcon.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileName = QLineEdit(self.GeneralTab)
self.FileName.setGeometry(QRect(160, 20, 310, 30))
self.FileName.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;border 0px;}')
self.BorderFrame1 = QLabel(self.GeneralTab)
self.BorderFrame1.setGeometry(QRect(20, 85, 450, 1))
self.BorderFrame1.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FileTypeLabel = QLabel('ファイルの種類:', self.GeneralTab)
self.FileTypeLabel.setGeometry(QRect(20, 115, 110, 30))
self.FileTypeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileType = QLabel(self.GeneralTab)
self.FileType.setGeometry(QRect(160, 115, 310, 30))
self.FileType.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.BorderFrame2 = QLabel(self.GeneralTab)
self.BorderFrame2.setGeometry(QRect(20, 175, 450, 1))
self.BorderFrame2.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FilePathLabel = QLabel('場所:', self.GeneralTab)
self.FilePathLabel.setGeometry(QRect(20, 205, 50, 30)) # label only x 30, y50ずつ
self.FilePathLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePath = QLabel(self.GeneralTab)
self.FilePath.setGeometry(QRect(160, 205, 350, 30))
self.FilePath.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSizeLabel = QLabel('サイズ:', self.GeneralTab)
self.FileSizeLabel.setGeometry(QRect(20, 260, 60, 30))
self.FileSizeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize = QLabel(self.GeneralTab)
self.FileSize.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize.setGeometry(QRect(160, 260, 350, 30))
self.BorderFrame3 = QLabel(self.GeneralTab)
self.BorderFrame3.setGeometry(QRect(20, 325, 450, 1))
self.BorderFrame3.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FileCreateDaylabel = QLabel('作成日時:', self.GeneralTab)
self.FileCreateDaylabel.setGeometry(QRect(20, 360, 70, 30))
self.FileCreateDaylabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileCreateDay = QLabel(self.GeneralTab)
self.FileCreateDay.setGeometry(QRect(160, 360, 350, 30))
self.FileCreateDay.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileModifiedLabel = QLabel('更新日時:', self.GeneralTab)
self.FileModifiedLabel.setGeometry(QRect(20, 425, 70, 30))
self.FileModifiedLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileModifiedTime = QLabel(self.GeneralTab)
self.FileModifiedTime.setGeometry(QRect(160, 425, 350, 30))
self.FileModifiedTime.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.LastAccessLabel = QLabel('アクセス日時:', self.GeneralTab)
self.LastAccessLabel.setGeometry(QRect(20, 490, 100, 30))
self.LastAccessLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.LastAccessTime = QLabel(self.GeneralTab)
self.LastAccessTime.setGeometry(QRect(160, 490, 350, 30))
self.LastAccessTime.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.BorderFrame4 = QLabel(self.GeneralTab)
self.BorderFrame4.setGeometry(QRect(20, 560, 450, 1))
self.BorderFrame4.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FilePropertyTab.addTab(self.GeneralTab, '')
if self.FilePathList[0].lower().endswith(('.flac', '.m4a', '.mp3')):
self.OhterMultipleFileCheck = False
self.MultipleFileCheck = True
self.DetailInfoTab = QWidget()
self.TrackNameLabel = QLabel('タイトル', self.DetailInfoTab)
self.TrackNameLabel.setGeometry(QRect(20, 10, 80, 30))
self.TrackNameLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.TrackName = QLineEdit(self.DetailInfoTab)
self.TrackName.setGeometry(QRect(190, 10, 280, 30))
self.TrackName.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;border 0px;}')
self.TrackArtistLabel = QLabel('アーティスト', self.DetailInfoTab)
self.TrackArtistLabel.setGeometry(QRect(20, 65, 110, 30))
self.TrackArtistLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.TrackArtist = QLineEdit(self.DetailInfoTab)
self.TrackArtist.setGeometry(QRect(190, 65, 280, 30))
self.TrackArtist.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;}')
self.TrackAlbumArtistLabel = QLabel('アルバムアーティスト', self.DetailInfoTab)
self.TrackAlbumArtistLabel.setGeometry(QRect(20, 125, 150, 30))
self.TrackAlbumArtistLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border 0px;}')
self.TrackAlbumArtist = QLineEdit(self.DetailInfoTab)
self.TrackAlbumArtist.setGeometry(QRect(190, 125, 280, 30))
self.TrackAlbumArtist.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;}')
self.TrackAlbumLabel = QLabel('アルバム名', self.DetailInfoTab)
self.TrackAlbumLabel.setGeometry(QRect(20, 185, 150, 30))
self.TrackAlbumLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.TrackAlbum = QLineEdit(self.DetailInfoTab)
self.TrackAlbum.setGeometry(QRect(190, 185, 280, 30))
self.TrackAlbum.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;border 0px;}')
self.TrackGenreLabel = QLabel('ジャンル', self.DetailInfoTab)
self.TrackGenreLabel.setGeometry(QRect(20, 245, 150, 30))
self.TrackGenreLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.TrackGenre = QLineEdit(self.DetailInfoTab)
self.TrackGenre.setGeometry(QRect(190, 245, 280, 30))
self.TrackGenre.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;border 0px;}')
self.TrackYearLabel = QLabel('リリース日時', self.DetailInfoTab)
self.TrackYearLabel.setGeometry(QRect(20, 305, 150, 30))
self.TrackYearLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.TrackYear = QLineEdit(self.DetailInfoTab)
self.TrackYear.setGeometry(QRect(190, 305, 280, 30))
self.TrackYear.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;}')
self.TrackNumlabel = QLabel('トラック番号', self.DetailInfoTab)
self.TrackNumlabel.setGeometry(QRect(20, 365, 150, 30))
self.TrackNumlabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.TrackNum = QLineEdit(self.DetailInfoTab)
self.TrackNum.setGeometry(QRect(190, 365, 280, 30))
self.TrackNum.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;border 0px;}')
self.TrackDiscNumLabel = QLabel('ディスク番号', self.DetailInfoTab)
self.TrackDiscNumLabel.setGeometry(QRect(20, 425, 150, 30))
self.TrackDiscNumLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.TrackDiscNum = QLineEdit(self.DetailInfoTab)
self.TrackDiscNum.setGeometry(QRect(190, 425, 280, 30))
self.TrackDiscNum.setStyleSheet('QLineEdit{background: #2d2d2d;color: #ededed;border 0px;}')
self.TrackArtLabel = QLabel('アルバムカバー', self.DetailInfoTab)
self.TrackArtLabel.setGeometry(QRect(70, 515, 110, 30))
self.TrackArtLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.TrackArt = EditCoverArtLabel(self.DetailInfoTab)
self.TrackArt.setGeometry(QRect(280, 480, 100, 100))
self.TrackArt.setAcceptDrops(True)
self.FilePropertyTab.addTab(self.DetailInfoTab, '')
self.FilePropertyTab.setTabText(self.FilePropertyTab.indexOf(self.DetailInfoTab), '詳細')
elif 2 <= len(self.FilePathList):
for MediaOnly in self.FilePathList:
if MediaOnly.lower().endswith('.flac'):
EditMediaPath_FLAC.append(MediaOnly)
if MediaOnly.lower().endswith('.m4a'):
EditMediaPath_M4A.append(MediaOnly)
if MediaOnly.lower().endswith('.mp3'):
EditMediaPath_MP3.append(MediaOnly)
if QFileInfo(MediaOnly).isFile():
self.Files.append(MediaOnly)
if QFileInfo(MediaOnly).isDir():
self.Folders.append(MediaOnly)
if not MediaOnly.lower().endswith(('.flac', '.m4a', '.mp3')):
self.OtherFiles.append(MediaOnly)
self.FilesCount = len(self.Files)
self.FoldersCount = len(self.Folders)
if not len(EditMediaPath_FLAC) == 0 and not len(EditMediaPath_M4A) == 0 and not len(EditMediaPath_MP3) == 0 and not len(self.OtherFiles) == 0: # 複数の種類
self.OhterMultipleFileCheck = True
self.MultipleFileCheck = False
self.GeneralTab = QWidget()
self.PreviewIcon = QLabel(self.GeneralTab)
self.PreviewIcon.setGeometry(QRect(35, 0, 57, 57))
self.PreviewIcon.setPixmap(QFileIconProvider().icon(QFileIconProvider.File).pixmap(QSize(57, 57)).scaled(57, 57, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.PreviewIcon.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.PreviewIcon2 = QLabel(self.GeneralTab)
self.PreviewIcon2.setGeometry(QRect(28, 7, 55, 55))
self.PreviewIcon2.setPixmap(QFileIconProvider().icon(QFileIconProvider.File).pixmap(QSize(55, 55)).scaled(57, 57, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.PreviewIcon2.setStyleSheet('QLabel{background: rba(45, 45, 45, 45);color: #ededed;}')
self.FileName = QLabel(self.GeneralTab)
self.FileName.setGeometry(QRect(160, 20, 310, 30))
self.FileName.setText('ファイル数: {}、フォルダー数: {}'.format(self.FilesCount, self.FoldersCount))
self.FileName.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.BorderFrame1 = QLabel(self.GeneralTab)
self.BorderFrame1.setGeometry(QRect(20, 85, 450, 1))
self.BorderFrame1.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FileTypeLabel = QLabel('種類:', self.GeneralTab)
self.FileTypeLabel.setGeometry(QRect(20, 115, 80, 30))
self.FileTypeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileType = QLabel(self.GeneralTab)
self.FileType.setText('複数の種類')
self.FileType.setGeometry(QRect(160, 115, 310, 30))
self.FileType.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePathLabel = QLabel('場所:', self.GeneralTab)
self.FilePathLabel.setGeometry(QRect(20, 175, 50, 30)) # label only x 30, y50ずつ
self.FilePathLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePath = QLabel(self.GeneralTab)
self.FilePath.setGeometry(QRect(160, 175, 350, 30))
self.FilePath.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSizeLabel = QLabel('サイズ:', self.GeneralTab)
self.FileSizeLabel.setGeometry(QRect(20, 245, 60, 30))
self.FileSizeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize = QLabel(self.GeneralTab)
self.FileSize.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize.setGeometry(QRect(160, 245, 350, 30))
self.BorderFrame3 = QLabel(self.GeneralTab)
self.BorderFrame3.setGeometry(QRect(20, 325, 450, 1))
self.BorderFrame3.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FilePropertyTab.addTab(self.GeneralTab, '')
elif not len(EditMediaPath_FLAC) == 0 and not len(EditMediaPath_M4A) == 0 and not len(EditMediaPath_MP3) == 0 and not self.FoldersCount == 0 and not len(self.OtherFiles) == 0: # 複数の種類
self.OhterMultipleFileCheck = True
self.MultipleFileCheck = False
self.GeneralTab = QWidget()
self.PreviewIcon = QLabel(self.GeneralTab)
self.PreviewIcon.setGeometry(QRect(35, 0, 57, 57))
self.PreviewIcon.setPixmap(QFileIconProvider().icon(QFileIconProvider.File).pixmap(QSize(57, 57)).scaled(57, 57, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.PreviewIcon.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.PreviewIcon2 = QLabel(self.GeneralTab)
self.PreviewIcon2.setGeometry(QRect(28, 7, 55, 55))
self.PreviewIcon2.setPixmap(QFileIconProvider().icon(QFileIconProvider.File).pixmap(QSize(55, 55)).scaled(57, 57, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.PreviewIcon2.setStyleSheet('QLabel{background: rba(45, 45, 45, 45);color: #ededed;}')
self.FileName = QLabel(self.GeneralTab)
self.FileName.setGeometry(QRect(160, 20, 310, 30))
self.FileName.setText('ファイル数: {}、フォルダー数: {}'.format(self.FilesCount, self.FoldersCount))
self.FileName.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.BorderFrame1 = QLabel(self.GeneralTab)
self.BorderFrame1.setGeometry(QRect(20, 85, 450, 1))
self.BorderFrame1.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FileTypeLabel = QLabel('種類:', self.GeneralTab)
self.FileTypeLabel.setGeometry(QRect(20, 115, 80, 30))
self.FileTypeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileType = QLabel(self.GeneralTab)
self.FileType.setText('複数の種類')
self.FileType.setGeometry(QRect(160, 115, 310, 30))
self.FileType.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePathLabel = QLabel('場所:', self.GeneralTab)
self.FilePathLabel.setGeometry(QRect(20, 175, 50, 30)) # label only x 30, y50ずつ
self.FilePathLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePath = QLabel(self.GeneralTab)
self.FilePath.setGeometry(QRect(160, 175, 350, 30))
self.FilePath.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSizeLabel = QLabel('サイズ:', self.GeneralTab)
self.FileSizeLabel.setGeometry(QRect(20, 245, 60, 30))
self.FileSizeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize = QLabel(self.GeneralTab)
self.FileSize.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize.setGeometry(QRect(160, 245, 350, 30))
self.BorderFrame3 = QLabel(self.GeneralTab)
self.BorderFrame3.setGeometry(QRect(20, 325, 450, 1))
self.BorderFrame3.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FilePropertyTab.addTab(self.GeneralTab, '')
elif not len(EditMediaPath_FLAC) == 0 and not len(self.OtherFiles) == 0: # 複数の種類
self.OhterMultipleFileCheck = True
self.MultipleFileCheck = False
self.GeneralTab = QWidget()
self.PreviewIcon = QLabel(self.GeneralTab)
self.PreviewIcon.setGeometry(QRect(35, 0, 57, 57))
self.PreviewIcon.setPixmap(QFileIconProvider().icon(QFileIconProvider.File).pixmap(QSize(57, 57)).scaled(57, 57, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.PreviewIcon.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.PreviewIcon2 = QLabel(self.GeneralTab)
self.PreviewIcon2.setGeometry(QRect(28, 7, 55, 55))
self.PreviewIcon2.setPixmap(QFileIconProvider().icon(QFileIconProvider.File).pixmap(QSize(55, 55)).scaled(57, 57, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.PreviewIcon2.setStyleSheet('QLabel{background: rba(45, 45, 45, 45);color: #ededed;}')
self.FileName = QLabel(self.GeneralTab)
self.FileName.setGeometry(QRect(160, 20, 310, 30))
self.FileName.setText('ファイル数: {}、フォルダー数: {}'.format(self.FilesCount, self.FoldersCount))
self.FileName.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.BorderFrame1 = QLabel(self.GeneralTab)
self.BorderFrame1.setGeometry(QRect(20, 85, 450, 1))
self.BorderFrame1.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FileTypeLabel = QLabel('種類:', self.GeneralTab)
self.FileTypeLabel.setGeometry(QRect(20, 115, 80, 30))
self.FileTypeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileType = QLabel(self.GeneralTab)
self.FileType.setText('複数の種類')
self.FileType.setGeometry(QRect(160, 115, 310, 30))
self.FileType.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePathLabel = QLabel('場所:', self.GeneralTab)
self.FilePathLabel.setGeometry(QRect(20, 175, 50, 30)) # label only x 30, y50ずつ
self.FilePathLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePath = QLabel(self.GeneralTab)
self.FilePath.setGeometry(QRect(160, 175, 350, 30))
self.FilePath.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSizeLabel = QLabel('サイズ:', self.GeneralTab)
self.FileSizeLabel.setGeometry(QRect(20, 245, 60, 30))
self.FileSizeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize = QLabel(self.GeneralTab)
self.FileSize.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize.setGeometry(QRect(160, 245, 350, 30))
self.BorderFrame3 = QLabel(self.GeneralTab)
self.BorderFrame3.setGeometry(QRect(20, 325, 450, 1))
self.BorderFrame3.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FilePropertyTab.addTab(self.GeneralTab, '')
elif not len(EditMediaPath_M4A) == 0 and not len(self.OtherFiles) == 0: # 複数の種類
self.OhterMultipleFileCheck = True
self.MultipleFileCheck = False
self.GeneralTab = QWidget()
self.PreviewIcon = QLabel(self.GeneralTab)
self.PreviewIcon.setGeometry(QRect(35, 0, 57, 57))
self.PreviewIcon.setPixmap(QFileIconProvider().icon(QFileIconProvider.File).pixmap(QSize(57, 57)).scaled(57, 57, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.PreviewIcon.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.PreviewIcon2 = QLabel(self.GeneralTab)
self.PreviewIcon2.setGeometry(QRect(28, 7, 55, 55))
self.PreviewIcon2.setPixmap(QFileIconProvider().icon(QFileIconProvider.File).pixmap(QSize(55, 55)).scaled(57, 57, Qt.KeepAspectRatio, Qt.SmoothTransformation))
self.PreviewIcon2.setStyleSheet('QLabel{background: rba(45, 45, 45, 45);color: #ededed;}')
self.FileName = QLabel(self.GeneralTab)
self.FileName.setGeometry(QRect(160, 20, 310, 30))
self.FileName.setText('ファイル数: {}、フォルダー数: {}'.format(self.FilesCount, self.FoldersCount))
self.FileName.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.BorderFrame1 = QLabel(self.GeneralTab)
self.BorderFrame1.setGeometry(QRect(20, 85, 450, 1))
self.BorderFrame1.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;border:1px solid #ededed;}')
self.FileTypeLabel = QLabel('種類:', self.GeneralTab)
self.FileTypeLabel.setGeometry(QRect(20, 115, 80, 30))
self.FileTypeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileType = QLabel(self.GeneralTab)
self.FileType.setText('複数の種類')
self.FileType.setGeometry(QRect(160, 115, 310, 30))
self.FileType.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePathLabel = QLabel('場所:', self.GeneralTab)
self.FilePathLabel.setGeometry(QRect(20, 175, 50, 30)) # label only x 30, y50ずつ
self.FilePathLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FilePath = QLabel(self.GeneralTab)
self.FilePath.setGeometry(QRect(160, 175, 350, 30))
self.FilePath.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSizeLabel = QLabel('サイズ:', self.GeneralTab)
self.FileSizeLabel.setGeometry(QRect(20, 245, 60, 30))
self.FileSizeLabel.setStyleSheet('QLabel{background: #2d2d2d;color: #ededed;}')
self.FileSize = QLabel(self.GeneralTab)