diff --git a/src/inibakery.h b/src/inibakery.h
index 2707085aa..a32ef55aa 100644
--- a/src/inibakery.h
+++ b/src/inibakery.h
@@ -7,6 +7,11 @@
class OrganizerCore;
+// small classes that deal with preparing profiles before runs for local saves, bsa
+// invalidation, etc., and providing mapping for local profile files when needed
+//
+// this class replaces the old INI Bakery plugin
+//
class IniBakery
{
public:
diff --git a/src/organizer_en.ts b/src/organizer_en.ts
index 909187f78..6160c314d 100644
--- a/src/organizer_en.ts
+++ b/src/organizer_en.ts
@@ -170,7 +170,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -178,17 +178,17 @@ p, li { white-space: pre-wrap; }
AdvancedConflictListModel
-
+
-
+
-
+
@@ -206,12 +206,12 @@ p, li { white-space: pre-wrap; }
-
+
-
+
@@ -281,12 +281,12 @@ p, li { white-space: pre-wrap; }
-
+
-
+
@@ -294,47 +294,47 @@ p, li { white-space: pre-wrap; }
ConflictsTab
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -588,42 +588,42 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -664,63 +664,25 @@ p, li { white-space: pre-wrap; }
DirectoryRefresher
-
+
-
- DisableProxyPluginDialog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
DownloadList
-
+
-
+
-
+
@@ -730,99 +692,99 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
@@ -830,161 +792,161 @@ p, li { white-space: pre-wrap; }
DownloadListView
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
@@ -992,42 +954,42 @@ Are you absolutely sure you want to proceed?
DownloadManager
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1632,194 +1594,194 @@ Right now the only case I know of where this needs to be overwritten is for the
FileTree
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1827,54 +1789,54 @@ Right now the only case I know of where this needs to be overwritten is for the
FileTreeModel
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
@@ -1893,7 +1855,7 @@ Right now the only case I know of where this needs to be overwritten is for the
-
+
@@ -1928,48 +1890,48 @@ Right now the only case I know of where this needs to be overwritten is for the
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -1977,63 +1939,26 @@ Right now the only case I know of where this needs to be overwritten is for the
FilterList
-
+
-
+
-
+
-
+
-
- FindDialog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ForcedLoadDialog
@@ -2113,142 +2038,15 @@ Right now the only case I know of where this needs to be overwritten is for the
-
- GamebryoModDataContent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- GamebryoSaveGameInfoWidget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
GeneralConflictsTab
-
+
-
+
@@ -2266,119 +2064,119 @@ Right now the only case I know of where this needs to be overwritten is for the
InstallationManager
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2473,96 +2271,96 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2583,47 +2381,47 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
LogList
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2631,33 +2429,33 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
Loot
-
+
-
+
-
+
-
+
-
+
-
+
@@ -2690,12 +2488,12 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
-
+
-
+
@@ -2703,135 +2501,41 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
MOApplication
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
- MOBase::FilterWidget
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- leave "(/i)" verbatim
-
-
-
-
-
-
-
-
-
-
- leave "(/x)" verbatim
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MOBase::TextViewer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MOBase::TutorialControl
-
-
-
-
-
-
-
- MOBase::TutorialManager
-
-
-
-
-
-
MOMultiProcess
@@ -2840,17 +2544,17 @@ This is likely due to a corrupted or incompatible download or unrecognized archi
-
+
-
+
-
+
@@ -3188,7 +2892,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -3446,7 +3150,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -3530,429 +3234,429 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -3969,32 +3673,32 @@ You will have to visit the mod page on the %1 Nexus site to change your mind.
ModInfo
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4002,7 +3706,7 @@ You will have to visit the mod page on the %1 Nexus site to change your mind.
ModInfoBackup
-
+
@@ -4408,7 +4112,7 @@ p, li { white-space: pre-wrap; }
ModInfoOverwrite
-
+
@@ -4416,12 +4120,12 @@ p, li { white-space: pre-wrap; }
ModInfoRegular
-
+
-
+
@@ -4437,32 +4141,32 @@ p, li { white-space: pre-wrap; }
ModList
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4472,228 +4176,228 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -4701,7 +4405,7 @@ p, li { white-space: pre-wrap; }
ModListChangeCategoryMenu
-
+
@@ -4709,236 +4413,236 @@ p, li { white-space: pre-wrap; }
ModListContextMenu
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
@@ -4946,97 +4650,97 @@ p, li { white-space: pre-wrap; }
ModListGlobalContextMenu
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5044,7 +4748,7 @@ p, li { white-space: pre-wrap; }
ModListPrimaryCategoryMenu
-
+
@@ -5052,7 +4756,7 @@ p, li { white-space: pre-wrap; }
ModListSortProxy
-
+
@@ -5060,38 +4764,38 @@ p, li { white-space: pre-wrap; }
ModListView
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5099,313 +4803,313 @@ Please enter the name:
ModListViewActions
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5427,42 +5131,42 @@ Please enter a name:
NexusConnectionUI
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5470,32 +5174,32 @@ Please enter a name:
NexusInterface
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5546,27 +5250,27 @@ Please enter a name:
NexusTab
-
+
-
+
-
+
-
+
-
+
NoConflictListModel
-
+
@@ -5586,120 +5290,112 @@ Please enter a name:
OrganizerCore
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -5709,92 +5405,92 @@ Please enter a name:
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
@@ -5802,12 +5498,12 @@ Continue?
OverwriteConflictListModel
-
+
-
+
@@ -5815,12 +5511,12 @@ Continue?
OverwriteFileSystemModel
-
+
-
+
@@ -5863,43 +5559,43 @@ Continue?
-
+
-
+
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
@@ -5907,90 +5603,41 @@ Continue?
OverwrittenConflictListModel
-
+
-
+
-
- PluginContainer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
PluginList
-
+
-
+
-
+
-
+
-
+
@@ -6000,107 +5647,107 @@ Continue?
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6108,7 +5755,7 @@ Continue?
PluginListContextMenu
-
+
@@ -6118,78 +5765,78 @@ Continue?
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6197,7 +5844,7 @@ Continue?
PluginListSortProxy
-
+
@@ -6205,77 +5852,77 @@ Continue?
PluginListView
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
- PluginTypeName
+ PluginManager
-
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
+
@@ -6315,18 +5962,18 @@ p, li { white-space: pre-wrap; }
-
-
+
+
-
+
-
+
@@ -6334,22 +5981,22 @@ p, li { white-space: pre-wrap; }
Profile
-
+
-
+
-
+
-
+
@@ -6359,46 +6006,46 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6581,103 +6228,103 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -6685,51 +6332,51 @@ p, li { white-space: pre-wrap; }
QObject
-
+
-
+
-
-
+
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
@@ -6739,361 +6386,353 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
-
-
-
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -7250,208 +6887,203 @@ Destination:
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
+
-
+
-
-
-
+
+
+
-
+
-
+
@@ -7461,205 +7093,180 @@ Destination:
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -7697,475 +7304,264 @@ Example:
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
+
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
QueryOverwriteDialog
@@ -8212,19 +7608,6 @@ p, li { white-space: pre-wrap; }
-
- QuestionBoxMemory
-
-
-
-
-
-
-
-
-
-
-
SaveTextAsDialog
@@ -8248,17 +7631,17 @@ p, li { white-space: pre-wrap; }
-
+
-
+
-
+
@@ -8266,17 +7649,17 @@ p, li { white-space: pre-wrap; }
SavesTab
-
+
-
+
-
+
@@ -8284,12 +7667,12 @@ p, li { white-space: pre-wrap; }
-
+
-
+
@@ -8297,7 +7680,7 @@ p, li { white-space: pre-wrap; }
-
+
@@ -8323,42 +7706,42 @@ p, li { white-space: pre-wrap; }
SelfUpdater
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -9250,7 +8633,7 @@ For the other games this is not a sufficient replacement for AI!
StatusBar
-
+
@@ -9273,80 +8656,21 @@ For the other games this is not a sufficient replacement for AI!
-
+
-
+
-
+
-
- T
-
-
-
-
-
-
-
- TaskDialog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- TextViewer
-
-
-
-
-
-
-
-
-
-
-
TransferSavesDialog
@@ -9420,22 +8744,22 @@ On Windows XP:
-
+
-
+
-
+
-
+
@@ -9463,7 +8787,7 @@ On Windows XP:
-
+
@@ -9471,7 +8795,7 @@ On Windows XP:
UsvfsConnector
-
+
@@ -9485,7 +8809,7 @@ On Windows XP:
-
+
@@ -9500,7 +8824,7 @@ On Windows XP:
-
+
@@ -10059,25 +9383,4 @@ Please open the "Nexus"-tab
-
- uibase
-
-
-
- Time remaining hours
-
-
-
-
-
- Time remaining minutes
-
-
-
-
-
- Time remaining seconds
-
-
-
diff --git a/themes/CMakeLists.txt b/themes/CMakeLists.txt
index 18871c885..58fc857d6 100644
--- a/themes/CMakeLists.txt
+++ b/themes/CMakeLists.txt
@@ -6,6 +6,8 @@ file(GLOB theme_directories
foreach(theme_directory ${theme_directories})
if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${theme_directory}")
- install(DIRECTORY ${theme_directory} DESTINATION bin/extensions)
+ file(READ ${theme_directory}/metadata.json JSON_METADATA)
+ string(JSON theme_identifier GET ${JSON_METADATA} id)
+ install(DIRECTORY ${theme_directory}/ DESTINATION bin/extensions/${theme_identifier})
endif()
endforeach()
diff --git a/themes/dark-theme/metadata.json b/themes/dark-theme/metadata.json
index 0bd00fa70..9075b2c5f 100644
--- a/themes/dark-theme/metadata.json
+++ b/themes/dark-theme/metadata.json
@@ -1,13 +1,15 @@
{
- "identifier": "dark-theme",
- "type": "theme",
+ "id": "mo2-theme-dark",
"name": "Dark Theme",
"description": "Dark theme for ModOrganizer2.",
"version": "1.0.0",
- "themes": {
- "dark": {
- "name": "Dark",
- "path": "dark.qss"
+ "type": "theme",
+ "content": {
+ "themes": {
+ "dark": {
+ "name": "Dark",
+ "path": "dark.qss"
+ }
}
}
}
diff --git a/themes/dracula-theme/metadata.json b/themes/dracula-theme/metadata.json
index 4e1cb8543..b811bf853 100644
--- a/themes/dracula-theme/metadata.json
+++ b/themes/dracula-theme/metadata.json
@@ -1,13 +1,15 @@
{
- "identifier": "dracula-theme",
+ "id": "mo2-theme-dracula",
"type": "theme",
"name": "Dracula Theme",
"description": "Dracula theme for ModOrganizer2.",
"version": "1.0.0",
- "themes": {
- "dracula": {
- "name": "Dracula",
- "path": "dracula.qss"
+ "content": {
+ "themes": {
+ "dracula": {
+ "name": "Dracula",
+ "path": "dracula.qss"
+ }
}
}
}
diff --git a/themes/make-metadata.ps1 b/themes/make-metadata.ps1
index 4143291c8..1625f3377 100644
--- a/themes/make-metadata.ps1
+++ b/themes/make-metadata.ps1
@@ -1,25 +1,46 @@
-$fixNames = @{
- dark = "Dark";
- dracula = "Dracula";
- nighteyes = "Night Eyes";
- parchment = "Parchment";
- skyrim = "Skyrim";
-}
-
-Get-ChildItem -Directory -Exclude "vs15" | ForEach-Object {
- $name = $fixNames[$_.Name];
+Get-ChildItem -Directory | ForEach-Object {
+ $metadata = Get-Content "$_/metadata.json" | ConvertFrom-Json
+ $metadata
+ $name = $metadata.identifier -replace "-themes?"
$data = [ordered]@{
- identifier = $_.Name + "-theme";
+ id = "mo2-theme-" + $name;
type = "theme";
- name = "$name Theme";
- description = "$name theme for ModOrganizer2.";
+ name = $metadata.name;
+ description = $metadata.description;
version = "1.0.0";
- themes = @{
- $_.Name = [ordered]@{
- name = $name;
- path = (Get-ChildItem $_ -Filter "*.qss")[0].Name;
- }
+ content = @{
+ themes = $metadata.themes;
};
}
- ConvertTo-Json -InputObject $data | Set-Content (Join-Path $_ "metadata.json")
+ $data
+ # ConvertTo-Json -InputObject $data # | Set-Content (Join-Path $_ "metadata.json")
}
+
+# $fixNames = @{
+# dark = "Dark";
+# dracula = "Dracula";
+# nighteyes = "Night Eyes";
+# parchment = "Parchment";
+# skyrim = "Skyrim";
+# }
+
+# Get-ChildItem -Directory -Exclude "vs15" | ForEach-Object {
+# $name = $fixNames[$_.Name];
+# $data = [ordered]@{
+# identifier = "mo2-theme-" + $_.Name;
+# type = "theme";
+# name = "$name Theme";
+# description = "$name theme for ModOrganizer2.";
+# version = "1.0.0";
+# content = @{
+# themes = @{
+# $_.Name = [ordered]@{
+# name = $name;
+# path = (Get-ChildItem $_ -Filter "*.qss")[0].Name;
+# }
+# };
+# };
+# ;
+# }
+# ConvertTo-Json -InputObject $data | Set-Content (Join-Path $_ "metadata.json")
+# }
diff --git a/themes/nighteyes-theme/metadata.json b/themes/nighteyes-theme/metadata.json
index f8d8b3261..cf9d8fc7b 100644
--- a/themes/nighteyes-theme/metadata.json
+++ b/themes/nighteyes-theme/metadata.json
@@ -1,13 +1,15 @@
{
- "identifier": "nighteyes-theme",
+ "id": "mo2-theme-nighteyes",
"type": "theme",
"name": "Night Eyes Theme",
"description": "Night Eyes theme for ModOrganizer2.",
"version": "1.0.0",
- "themes": {
- "nighteyes": {
- "name": "Night Eyes",
- "path": "nigheyes.qss"
+ "content": {
+ "themes": {
+ "nighteyes": {
+ "name": "Night Eyes",
+ "path": "nigheyes.qss"
+ }
}
}
}
diff --git a/themes/parchment-theme/metadata.json b/themes/parchment-theme/metadata.json
index 4e53ba407..09448ec76 100644
--- a/themes/parchment-theme/metadata.json
+++ b/themes/parchment-theme/metadata.json
@@ -1,13 +1,15 @@
{
- "identifier": "parchment-theme",
+ "id": "mo2-theme-parchment",
"type": "theme",
"name": "Parchment Theme",
"description": "Parchment theme for ModOrganizer2.",
"version": "1.0.0",
- "themes": {
- "parchment": {
- "name": "Parchment",
- "path": "parchment.qss"
+ "content": {
+ "themes": {
+ "parchment": {
+ "name": "Parchment",
+ "path": "parchment.qss"
+ }
}
}
}
diff --git a/themes/skyrim-theme/metadata.json b/themes/skyrim-theme/metadata.json
index b28358b1b..f2f78ec09 100644
--- a/themes/skyrim-theme/metadata.json
+++ b/themes/skyrim-theme/metadata.json
@@ -1,13 +1,15 @@
{
- "identifier": "skyrim-theme",
+ "id": "mo2-theme-skyrim",
"type": "theme",
"name": "Skyrim Theme",
"description": "Skyrim theme for ModOrganizer2.",
"version": "1.0.0",
- "themes": {
- "skyrim": {
- "name": "Skyrim",
- "path": "skyrim.qss"
+ "content": {
+ "themes": {
+ "skyrim": {
+ "name": "Skyrim",
+ "path": "skyrim.qss"
+ }
}
}
}
diff --git a/themes/vs15-themes/metadata.json b/themes/vs15-themes/metadata.json
index 0f6ea552d..c6404d462 100644
--- a/themes/vs15-themes/metadata.json
+++ b/themes/vs15-themes/metadata.json
@@ -1,37 +1,39 @@
{
- "identifier": "vs15-dark-themes",
+ "id": "mo2-theme-vs15-dark",
"type": "theme",
"name": "VS15 Themes",
"description": "Set of dark themes, inspired by Visual Studio, for ModOrganizer2.",
"version": "1.0.0",
- "themes": {
- "vs15-dark-blue": {
- "name": "VS15 - Dark Blue",
- "path": "vs15 Dark-Blue.qss"
- },
- "vs15-dark-green": {
- "name": "VS15 - Dark Green",
- "path": "vs15 Dark-Green.qss"
- },
- "vs15-dark-orange": {
- "name": "VS15 - Dark Orange",
- "path": "vs15 Dark-Orange.qss"
- },
- "vs15-dark-pink": {
- "name": "VS15 - Dark Pink",
- "path": "vs15 Dark-Pink.qss"
- },
- "vs15-dark-purple": {
- "name": "VS15 - Dark Purple",
- "path": "vs15 Dark-Purple.qss"
- },
- "vs15-dark-red": {
- "name": "VS15 - Dark Red",
- "path": "vs15 Dark-Red.qss"
- },
- "vs15-dark-yellow": {
- "name": "VS15 - Dark Yellow",
- "path": "vs15 Dark-Yellow.qss"
+ "content": {
+ "themes": {
+ "vs15-dark-blue": {
+ "name": "VS15 - Dark Blue",
+ "path": "vs15 Dark-Blue.qss"
+ },
+ "vs15-dark-green": {
+ "name": "VS15 - Dark Green",
+ "path": "vs15 Dark-Green.qss"
+ },
+ "vs15-dark-orange": {
+ "name": "VS15 - Dark Orange",
+ "path": "vs15 Dark-Orange.qss"
+ },
+ "vs15-dark-pink": {
+ "name": "VS15 - Dark Pink",
+ "path": "vs15 Dark-Pink.qss"
+ },
+ "vs15-dark-purple": {
+ "name": "VS15 - Dark Purple",
+ "path": "vs15 Dark-Purple.qss"
+ },
+ "vs15-dark-red": {
+ "name": "VS15 - Dark Red",
+ "path": "vs15 Dark-Red.qss"
+ },
+ "vs15-dark-yellow": {
+ "name": "VS15 - Dark Yellow",
+ "path": "vs15 Dark-Yellow.qss"
+ }
}
}
}