feat: standalone extractor - classy emojis and clickable links
Added classy emojis throughout: - 📂 Cache Source, 💾 Output Location - ⚙️ Export Settings, 🌐 EntropiaNexus.com - 📄 Available Icons, ⚠️ Important Information - 📁 Version, 🔄 Refresh, ☑️ Include ALL - 📂 Change Output Folder, 📂 Open Output Folder - ▶️ Start Extracting Icons, ☑️ Select All, ⬜ Select None - 💡 Double-click hint, ❓ No files found, ✅ Ready - 👨💻 Developer, 💬 Discord, 📎 GitHub, 📜 Disclaimer Clickable links in footer: - MindArk PE AB → https://www.mindark.com/ - Entropia Universe → https://www.entropiauniverse.com/ - GitHub placeholder added Also fixed text sizing to show full content in boxes
This commit is contained in:
parent
9de20ad9d8
commit
77f210f594
|
|
@ -313,7 +313,7 @@ class IconExtractorWindow(QMainWindow):
|
|||
layout.setSpacing(10)
|
||||
|
||||
# Header
|
||||
header = QLabel(APP_NAME)
|
||||
header = QLabel("🎮 Entropia Universe Icon Extractor")
|
||||
header.setStyleSheet("font-size: 24px; font-weight: bold; color: #4caf50; padding-bottom: 5px;")
|
||||
layout.addWidget(header)
|
||||
|
||||
|
|
@ -355,7 +355,7 @@ class IconExtractorWindow(QMainWindow):
|
|||
left_layout.setSpacing(10)
|
||||
|
||||
# Cache folder
|
||||
cache_group = QGroupBox("Cache Source")
|
||||
cache_group = QGroupBox("📂 Cache Source")
|
||||
cache_group.setStyleSheet("QGroupBox { font-size: 13px; font-weight: bold; }")
|
||||
cache_layout = QVBoxLayout(cache_group)
|
||||
cache_layout.setContentsMargins(12, 18, 12, 12)
|
||||
|
|
@ -366,16 +366,15 @@ class IconExtractorWindow(QMainWindow):
|
|||
self.cache_label = QLabel(path_display)
|
||||
self.cache_label.setStyleSheet(
|
||||
"font-family: Consolas; font-size: 11px; color: #aaa; "
|
||||
"padding: 10px; background: #252525; border-radius: 4px;"
|
||||
"padding: 8px; background: #252525; border-radius: 4px;"
|
||||
)
|
||||
self.cache_label.setWordWrap(True)
|
||||
self.cache_label.setMinimumHeight(45)
|
||||
cache_layout.addWidget(self.cache_label)
|
||||
|
||||
# Subfolder selector
|
||||
subfolder_layout = QHBoxLayout()
|
||||
subfolder_layout.setSpacing(10)
|
||||
subfolder_label = QLabel("Version:")
|
||||
subfolder_label = QLabel("📁 Version:")
|
||||
subfolder_label.setStyleSheet("font-size: 12px;")
|
||||
subfolder_layout.addWidget(subfolder_label)
|
||||
|
||||
|
|
@ -385,7 +384,7 @@ class IconExtractorWindow(QMainWindow):
|
|||
self.subfolder_combo.currentIndexChanged.connect(self._on_subfolder_changed)
|
||||
subfolder_layout.addWidget(self.subfolder_combo, 1)
|
||||
|
||||
refresh_btn = QPushButton("Refresh")
|
||||
refresh_btn = QPushButton("🔄 Refresh")
|
||||
refresh_btn.setMaximumWidth(80)
|
||||
refresh_btn.setStyleSheet("font-size: 11px; padding: 5px;")
|
||||
refresh_btn.clicked.connect(self._detect_subfolders)
|
||||
|
|
@ -394,7 +393,7 @@ class IconExtractorWindow(QMainWindow):
|
|||
cache_layout.addLayout(subfolder_layout)
|
||||
|
||||
# All subfolders checkbox
|
||||
self.all_subfolders_check = QCheckBox("Include ALL version folders")
|
||||
self.all_subfolders_check = QCheckBox("☑️ Include ALL version folders")
|
||||
self.all_subfolders_check.setStyleSheet("font-size: 12px;")
|
||||
self.all_subfolders_check.setToolTip("Merge icons from all game versions")
|
||||
self.all_subfolders_check.stateChanged.connect(self._on_all_subfolders_changed)
|
||||
|
|
@ -403,27 +402,26 @@ class IconExtractorWindow(QMainWindow):
|
|||
left_layout.addWidget(cache_group)
|
||||
|
||||
# Output folder
|
||||
output_group = QGroupBox("Output Location")
|
||||
output_group = QGroupBox("💾 Output Location")
|
||||
output_group.setStyleSheet("QGroupBox { font-size: 13px; font-weight: bold; }")
|
||||
output_layout = QVBoxLayout(output_group)
|
||||
output_layout.setContentsMargins(12, 18, 12, 12)
|
||||
output_layout.setSpacing(10)
|
||||
|
||||
output_info = QLabel("Icons saved to your Documents folder (same location as chat.log)")
|
||||
output_info = QLabel("📁 Icons saved to your Documents folder (same location as chat.log)")
|
||||
output_info.setStyleSheet("color: #aaaaaa; font-size: 12px;")
|
||||
output_info.setWordWrap(True)
|
||||
output_layout.addWidget(output_info)
|
||||
|
||||
rel_path = "Documents/Entropia Universe/Icons/"
|
||||
self.output_label = QLabel(rel_path)
|
||||
self.output_label = QLabel(f"📂 {rel_path}")
|
||||
self.output_label.setStyleSheet(
|
||||
"font-family: Consolas; font-size: 11px; color: #aaa; "
|
||||
"padding: 10px; background: #252525; border-radius: 4px;"
|
||||
"padding: 8px; background: #252525; border-radius: 4px;"
|
||||
)
|
||||
self.output_label.setMinimumHeight(35)
|
||||
output_layout.addWidget(self.output_label)
|
||||
|
||||
change_btn = QPushButton("Change Output Folder...")
|
||||
change_btn = QPushButton("📂 Change Output Folder...")
|
||||
change_btn.setStyleSheet("font-size: 11px; padding: 6px;")
|
||||
change_btn.clicked.connect(self._browse_output)
|
||||
output_layout.addWidget(change_btn)
|
||||
|
|
@ -431,15 +429,15 @@ class IconExtractorWindow(QMainWindow):
|
|||
left_layout.addWidget(output_group)
|
||||
|
||||
# Settings (simplified - just 320x320)
|
||||
settings_group = QGroupBox("Export Settings")
|
||||
settings_group = QGroupBox("⚙️ Export Settings")
|
||||
settings_group.setStyleSheet("QGroupBox { font-size: 13px; font-weight: bold; }")
|
||||
settings_layout = QVBoxLayout(settings_group)
|
||||
settings_layout.setContentsMargins(12, 18, 12, 12)
|
||||
|
||||
settings_info = QLabel(
|
||||
"Format: PNG with transparency\n"
|
||||
"Canvas: 320x320 pixels (centered)\n"
|
||||
"Size: Original icon size (no upscaling)"
|
||||
"🖼️ Format: PNG with transparency\n"
|
||||
"📐 Canvas: 320x320 pixels (centered)\n"
|
||||
"📏 Size: Original icon size (no upscaling)"
|
||||
)
|
||||
settings_info.setStyleSheet("color: #aaaaaa; font-size: 12px; line-height: 1.5;")
|
||||
settings_layout.addWidget(settings_info)
|
||||
|
|
@ -447,16 +445,16 @@ class IconExtractorWindow(QMainWindow):
|
|||
left_layout.addWidget(settings_group)
|
||||
|
||||
# Nexus link
|
||||
nexus_group = QGroupBox("EntropiaNexus.com")
|
||||
nexus_group = QGroupBox("🌐 EntropiaNexus.com")
|
||||
nexus_group.setStyleSheet("QGroupBox { font-size: 13px; font-weight: bold; color: #4caf50; }")
|
||||
nexus_layout = QVBoxLayout(nexus_group)
|
||||
nexus_layout.setContentsMargins(12, 18, 12, 12)
|
||||
|
||||
nexus_info = QLabel("Submit icons to help complete the item database")
|
||||
nexus_info = QLabel("📤 Submit icons to help complete the item database")
|
||||
nexus_info.setStyleSheet("color: #cccccc; font-size: 12px;")
|
||||
nexus_layout.addWidget(nexus_info)
|
||||
|
||||
nexus_btn = QPushButton("Open EntropiaNexus.com")
|
||||
nexus_btn = QPushButton("🌐 Open EntropiaNexus.com")
|
||||
nexus_btn.setMinimumHeight(32)
|
||||
nexus_btn.setStyleSheet("font-size: 11px; padding: 6px;")
|
||||
nexus_btn.clicked.connect(lambda: self._open_url(WEBSITE))
|
||||
|
|
@ -465,7 +463,7 @@ class IconExtractorWindow(QMainWindow):
|
|||
left_layout.addWidget(nexus_group)
|
||||
|
||||
# Convert button
|
||||
self.convert_btn = QPushButton("Start Extracting Icons")
|
||||
self.convert_btn = QPushButton("▶️ Start Extracting Icons")
|
||||
self.convert_btn.setMinimumHeight(55)
|
||||
self.convert_btn.setStyleSheet("""
|
||||
QPushButton {
|
||||
|
|
@ -489,7 +487,7 @@ class IconExtractorWindow(QMainWindow):
|
|||
self.progress_bar.setVisible(False)
|
||||
left_layout.addWidget(self.progress_bar)
|
||||
|
||||
self.status_label = QLabel("Ready")
|
||||
self.status_label = QLabel("✅ Ready")
|
||||
self.status_label.setStyleSheet("color: #888; font-size: 12px; padding: 5px;")
|
||||
self.status_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
left_layout.addWidget(self.status_label)
|
||||
|
|
@ -503,17 +501,17 @@ class IconExtractorWindow(QMainWindow):
|
|||
right_layout = QVBoxLayout(right_panel)
|
||||
right_layout.setContentsMargins(0, 0, 0, 0)
|
||||
|
||||
files_group = QGroupBox("Available Icons")
|
||||
files_group = QGroupBox("📄 Available Icons")
|
||||
files_group.setStyleSheet("QGroupBox { font-size: 13px; font-weight: bold; }")
|
||||
files_layout = QVBoxLayout(files_group)
|
||||
files_layout.setContentsMargins(12, 18, 12, 12)
|
||||
files_layout.setSpacing(10)
|
||||
|
||||
files_info = QLabel("Double-click an icon to preview. Select icons to extract (or leave blank for all).")
|
||||
files_info = QLabel("💡 Double-click an icon to preview. Select icons to extract (or leave blank for all).")
|
||||
files_info.setStyleSheet("color: #aaaaaa; font-size: 12px;")
|
||||
files_layout.addWidget(files_info)
|
||||
|
||||
self.files_count_label = QLabel("No files found")
|
||||
self.files_count_label = QLabel("❓ No files found")
|
||||
self.files_count_label.setStyleSheet("font-weight: bold; font-size: 12px; padding: 5px 0;")
|
||||
files_layout.addWidget(self.files_count_label)
|
||||
|
||||
|
|
@ -527,22 +525,22 @@ class IconExtractorWindow(QMainWindow):
|
|||
sel_layout = QHBoxLayout()
|
||||
sel_layout.setSpacing(10)
|
||||
|
||||
select_all_btn = QPushButton("Select All")
|
||||
select_all_btn.setMaximumWidth(100)
|
||||
select_all_btn = QPushButton("☑️ Select All")
|
||||
select_all_btn.setMaximumWidth(110)
|
||||
select_all_btn.setStyleSheet("font-size: 11px; padding: 5px;")
|
||||
select_all_btn.clicked.connect(self.files_list.selectAll)
|
||||
sel_layout.addWidget(select_all_btn)
|
||||
|
||||
select_none_btn = QPushButton("Select None")
|
||||
select_none_btn.setMaximumWidth(100)
|
||||
select_none_btn = QPushButton("⬜ Select None")
|
||||
select_none_btn.setMaximumWidth(110)
|
||||
select_none_btn.setStyleSheet("font-size: 11px; padding: 5px;")
|
||||
select_none_btn.clicked.connect(self.files_list.clearSelection)
|
||||
sel_layout.addWidget(select_none_btn)
|
||||
|
||||
sel_layout.addStretch()
|
||||
|
||||
open_folder_btn = QPushButton("Open Output Folder")
|
||||
open_folder_btn.setMaximumWidth(130)
|
||||
open_folder_btn = QPushButton("📂 Open Output Folder")
|
||||
open_folder_btn.setMaximumWidth(140)
|
||||
open_folder_btn.setStyleSheet("font-size: 11px; padding: 5px;")
|
||||
open_folder_btn.clicked.connect(self._open_output_folder)
|
||||
sel_layout.addWidget(open_folder_btn)
|
||||
|
|
@ -556,7 +554,7 @@ class IconExtractorWindow(QMainWindow):
|
|||
layout.addWidget(splitter, 1)
|
||||
|
||||
# Important Information (moved to bottom)
|
||||
notice_group = QGroupBox("Important Information")
|
||||
notice_group = QGroupBox("⚠️ Important Information")
|
||||
notice_group.setStyleSheet("""
|
||||
QGroupBox {
|
||||
font-size: 13px;
|
||||
|
|
@ -588,17 +586,51 @@ class IconExtractorWindow(QMainWindow):
|
|||
notice_layout.addWidget(notice_text)
|
||||
layout.addWidget(notice_group)
|
||||
|
||||
# Footer
|
||||
footer = QLabel(
|
||||
f"Developed by {DEVELOPER} | Discord: {DISCORD}\n"
|
||||
"Entropia Universe Icon Extractor is a fan-made resource and is not affiliated with MindArk PE AB. "
|
||||
"Entropia Universe is a trademark of MindArk PE AB."
|
||||
)
|
||||
footer.setStyleSheet("color: #666; font-size: 10px; padding: 10px;")
|
||||
footer.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
footer.setWordWrap(True)
|
||||
footer.setMinimumHeight(55)
|
||||
layout.addWidget(footer)
|
||||
# Footer with clickable links
|
||||
footer_widget = QWidget()
|
||||
footer_layout = QVBoxLayout(footer_widget)
|
||||
footer_layout.setContentsMargins(10, 10, 10, 10)
|
||||
footer_layout.setSpacing(5)
|
||||
|
||||
# First line - developer info
|
||||
footer_line1 = QLabel(f"👨💻 Developed by {DEVELOPER} | 💬 Discord: {DISCORD} | 📎 GitHub: (coming soon)")
|
||||
footer_line1.setStyleSheet("color: #888; font-size: 11px;")
|
||||
footer_line1.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
footer_layout.addWidget(footer_line1)
|
||||
|
||||
# Second line - disclaimer with links
|
||||
disclaimer_widget = QWidget()
|
||||
disclaimer_layout = QHBoxLayout(disclaimer_widget)
|
||||
disclaimer_layout.setContentsMargins(0, 0, 0, 0)
|
||||
disclaimer_layout.setSpacing(0)
|
||||
|
||||
label1 = QLabel("📜 Entropia Universe Icon Extractor is a fan-made resource and is not affiliated with ")
|
||||
label1.setStyleSheet("color: #666; font-size: 10px;")
|
||||
label1.setOpenExternalLinks(True)
|
||||
|
||||
mindark_link = QLabel('<a href="https://www.mindark.com/" style="color: #888;">MindArk PE AB</a>. ')
|
||||
mindark_link.setStyleSheet("color: #666; font-size: 10px;")
|
||||
mindark_link.setOpenExternalLinks(True)
|
||||
|
||||
label2 = QLabel("")
|
||||
label2.setStyleSheet("color: #666; font-size: 10px;")
|
||||
|
||||
eu_link = QLabel('<a href="https://www.entropiauniverse.com/" style="color: #888;">Entropia Universe</a>')
|
||||
eu_link.setStyleSheet("color: #666; font-size: 10px;")
|
||||
eu_link.setOpenExternalLinks(True)
|
||||
|
||||
label3 = QLabel(" is a trademark of MindArk PE AB.")
|
||||
label3.setStyleSheet("color: #666; font-size: 10px;")
|
||||
|
||||
disclaimer_layout.addStretch()
|
||||
disclaimer_layout.addWidget(label1)
|
||||
disclaimer_layout.addWidget(mindark_link)
|
||||
disclaimer_layout.addWidget(eu_link)
|
||||
disclaimer_layout.addWidget(label3)
|
||||
disclaimer_layout.addStretch()
|
||||
|
||||
footer_layout.addWidget(disclaimer_widget)
|
||||
layout.addWidget(footer_widget)
|
||||
|
||||
def _on_file_double_clicked(self, index):
|
||||
"""Handle double-click on file to preview."""
|
||||
|
|
|
|||
Loading…
Reference in New Issue