From be73eb3322b6bb5ab1144f9942ef9bd188c704a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 8 Jun 2014 21:26:48 +0200 Subject: [PATCH] Version revert logic improvements, colorful icons for mod lists and resource pack list. Icons are from Oxygen. --- gui/pages/LegacyJarModPage.cpp | 2 +- gui/pages/LegacyUpgradePage.cpp | 2 +- gui/pages/ResourcePackPage.h | 23 +++++++++ gui/pages/TexturePackPage.h | 20 ++++++++ gui/pages/VersionPage.cpp | 28 ++++++----- logic/LegacyInstance.cpp | 4 +- logic/OneSixInstance.cpp | 4 +- logic/minecraft/InstanceVersion.cpp | 58 +++++++++++++++++++++- logic/minecraft/InstanceVersion.h | 8 +-- resources/multimc/16x16/plugin-blue.png | Bin 0 -> 731 bytes resources/multimc/16x16/plugin-green.png | Bin 0 -> 702 bytes resources/multimc/16x16/plugin-red.png | Bin 0 -> 693 bytes resources/multimc/16x16/resourcepacks.png | Bin 0 -> 1207 bytes resources/multimc/24x24/plugin-blue.png | Bin 0 -> 1240 bytes resources/multimc/24x24/plugin-green.png | Bin 0 -> 1281 bytes resources/multimc/24x24/plugin-red.png | Bin 0 -> 1170 bytes resources/multimc/24x24/resourcepacks.png | Bin 0 -> 2000 bytes resources/multimc/32x32/plugin-blue.png | Bin 0 -> 1708 bytes resources/multimc/32x32/plugin-green.png | Bin 0 -> 1758 bytes resources/multimc/32x32/plugin-red.png | Bin 0 -> 1566 bytes resources/multimc/32x32/resourcepacks.png | Bin 0 -> 2818 bytes resources/multimc/64x64/plugin-blue.png | Bin 0 -> 4406 bytes resources/multimc/64x64/plugin-green.png | Bin 0 -> 5036 bytes resources/multimc/64x64/plugin-red.png | Bin 0 -> 4003 bytes resources/multimc/64x64/resourcepacks.png | Bin 0 -> 6805 bytes resources/multimc/multimc.qrc | 24 +++++++++ 26 files changed, 150 insertions(+), 23 deletions(-) create mode 100644 gui/pages/ResourcePackPage.h create mode 100644 gui/pages/TexturePackPage.h create mode 100644 resources/multimc/16x16/plugin-blue.png create mode 100644 resources/multimc/16x16/plugin-green.png create mode 100644 resources/multimc/16x16/plugin-red.png create mode 100644 resources/multimc/16x16/resourcepacks.png create mode 100644 resources/multimc/24x24/plugin-blue.png create mode 100644 resources/multimc/24x24/plugin-green.png create mode 100644 resources/multimc/24x24/plugin-red.png create mode 100644 resources/multimc/24x24/resourcepacks.png create mode 100644 resources/multimc/32x32/plugin-blue.png create mode 100644 resources/multimc/32x32/plugin-green.png create mode 100644 resources/multimc/32x32/plugin-red.png create mode 100644 resources/multimc/32x32/resourcepacks.png create mode 100644 resources/multimc/64x64/plugin-blue.png create mode 100644 resources/multimc/64x64/plugin-green.png create mode 100644 resources/multimc/64x64/plugin-red.png create mode 100644 resources/multimc/64x64/resourcepacks.png diff --git a/gui/pages/LegacyJarModPage.cpp b/gui/pages/LegacyJarModPage.cpp index 7ec53d80..f0f3d753 100644 --- a/gui/pages/LegacyJarModPage.cpp +++ b/gui/pages/LegacyJarModPage.cpp @@ -56,7 +56,7 @@ QString LegacyJarModPage::displayName() QIcon LegacyJarModPage::icon() { - return QIcon::fromTheme("settings"); + return QIcon::fromTheme("plugin-red"); } QString LegacyJarModPage::id() diff --git a/gui/pages/LegacyUpgradePage.cpp b/gui/pages/LegacyUpgradePage.cpp index 9aa97543..02729c79 100644 --- a/gui/pages/LegacyUpgradePage.cpp +++ b/gui/pages/LegacyUpgradePage.cpp @@ -8,7 +8,7 @@ QString LegacyUpgradePage::displayName() QIcon LegacyUpgradePage::icon() { - return QIcon::fromTheme("bug"); + return QIcon::fromTheme("checkupdate"); } QString LegacyUpgradePage::id() diff --git a/gui/pages/ResourcePackPage.h b/gui/pages/ResourcePackPage.h new file mode 100644 index 00000000..14321b9b --- /dev/null +++ b/gui/pages/ResourcePackPage.h @@ -0,0 +1,23 @@ +#pragma once +#include "ModFolderPage.h" + +class ResourcePackPage : public ModFolderPage +{ +public: + explicit ResourcePackPage(BaseInstance *instance, QWidget *parent = 0) + : ModFolderPage(instance->texturePackList(), "resourcepacks", "resourcepacks", + tr("Resource packs"), parent) + { + m_inst = instance; + } + + virtual ~ResourcePackPage() {}; + virtual bool shouldDisplay() override + { + return !m_inst->traits().contains("no-texturepacks") && + !m_inst->traits().contains("texturepacks"); + } + +private: + BaseInstance *m_inst; +}; diff --git a/gui/pages/TexturePackPage.h b/gui/pages/TexturePackPage.h new file mode 100644 index 00000000..ddb1fa49 --- /dev/null +++ b/gui/pages/TexturePackPage.h @@ -0,0 +1,20 @@ +#pragma once +#include "ModFolderPage.h" + +class TexturePackPage : public ModFolderPage +{ +public: + explicit TexturePackPage(BaseInstance *instance, QWidget *parent = 0) + : ModFolderPage(instance->texturePackList(), "texturepacks", "resourcepacks", + tr("Texture packs"), parent) + { + m_inst = instance; + } + virtual ~TexturePackPage() {}; + virtual bool shouldDisplay() override + { + return m_inst->traits().contains("texturepacks"); + } +private: + BaseInstance *m_inst; +}; diff --git a/gui/pages/VersionPage.cpp b/gui/pages/VersionPage.cpp index 74c3c2af..7cee0610 100644 --- a/gui/pages/VersionPage.cpp +++ b/gui/pages/VersionPage.cpp @@ -44,6 +44,7 @@ #include #include +#include #include #include @@ -57,7 +58,7 @@ QString VersionPage::displayName() QIcon VersionPage::icon() { - return QIcon::fromTheme("settings"); + return MMC->icons()->getIcon(m_inst->iconKey()); } QString VersionPage::id() @@ -157,7 +158,7 @@ void VersionPage::on_jarmodBtn_clicked() auto f = [&](QStandardPaths::StandardLocation l) { QString location = QStandardPaths::writableLocation(l); - if(!QFileInfo::exists(location)) + if (!QFileInfo::exists(location)) return; locations.insert(location); }; @@ -166,7 +167,7 @@ void VersionPage::on_jarmodBtn_clicked() f(QStandardPaths::DownloadLocation); f(QStandardPaths::HomeLocation); QList urls; - for(auto location: locations) + for (auto location : locations) { urls.append(QUrl::fromLocalFile(location)); } @@ -178,8 +179,9 @@ void VersionPage::on_jarmodBtn_clicked() w.setDirectory(modsFolder); w.setSidebarUrls(urls); - if(w.exec()); - m_version->installJarMods(w.selectedFiles()); + if (w.exec()) + ; + m_version->installJarMods(w.selectedFiles()); } void VersionPage::on_resetLibraryOrderBtn_clicked() @@ -292,15 +294,16 @@ void VersionPage::on_forgeBtn_clicked() m_version->removeFtbPack(); reloadInstanceVersion(); } - if (m_version->usesLegacyCustomJson()) + if (m_version->hasDeprecatedVersionFiles()) { if (QMessageBox::question(this, tr("Revert?"), - tr("This action will remove your custom.json. Continue?")) != + tr("This action will remove deprecated version files " + "(custom.json and version.json). Continue?")) != QMessageBox::Yes) { return; } - m_version->revertToVanilla(); + m_version->removeDeprecatedVersionFiles(); reloadInstanceVersion(); } VersionSelectDialog vselect(MMC->forgelist().get(), tr("Select Forge version"), this); @@ -329,15 +332,16 @@ void VersionPage::on_liteloaderBtn_clicked() m_version->removeFtbPack(); reloadInstanceVersion(); } - if (m_version->usesLegacyCustomJson()) + if (m_version->hasDeprecatedVersionFiles()) { if (QMessageBox::question(this, tr("Revert?"), - tr("This action will remove your custom.json. Continue?")) != + tr("This action will remove deprecated version files " + "(custom.json and version.json). Continue?")) != QMessageBox::Yes) { return; } - m_version->revertToVanilla(); + m_version->removeDeprecatedVersionFiles(); reloadInstanceVersion(); } VersionSelectDialog vselect(MMC->liteloaderlist().get(), tr("Select LiteLoader version"), @@ -369,7 +373,7 @@ void VersionPage::versionCurrent(const QModelIndex ¤t, const QModelIndex & ui->moveLibraryUpBtn->setEnabled(enabled); } QString selectedId = m_version->versionFileId(current.row()); - if(selectedId == "net.minecraft" || selectedId == "org.multimc.custom.json") + if (selectedId == "net.minecraft" || selectedId == "org.multimc.custom.json") { ui->changeMCVersionBtn->setEnabled(true); } diff --git a/logic/LegacyInstance.cpp b/logic/LegacyInstance.cpp index 15332c41..378c058b 100644 --- a/logic/LegacyInstance.cpp +++ b/logic/LegacyInstance.cpp @@ -49,8 +49,8 @@ QList LegacyInstance::getPages() QList values; values.append(new LegacyUpgradePage(this)); values.append(new LegacyJarModPage(this)); - values.append(new ModFolderPage(loaderModList(), "mods", "centralmods", tr("Loader Mods"))); - values.append(new ModFolderPage(coreModList(), "coremods", "viewfolder", tr("Core Mods"))); + values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader Mods"))); + values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core Mods"))); values.append(new TexturePackPage(this)); return values; } diff --git a/logic/OneSixInstance.cpp b/logic/OneSixInstance.cpp index d306470c..6de789df 100644 --- a/logic/OneSixInstance.cpp +++ b/logic/OneSixInstance.cpp @@ -60,8 +60,8 @@ QList OneSixInstance::getPages() { QList values; values.append(new VersionPage(this)); - values.append(new ModFolderPage(loaderModList(), "mods", "centralmods", tr("Loader Mods"))); - values.append(new ModFolderPage(coreModList(), "coremods", "viewfolder", tr("Core Mods"))); + values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader Mods"))); + values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core Mods"))); values.append(new ResourcePackPage(this)); values.append(new TexturePackPage(this)); return values; diff --git a/logic/minecraft/InstanceVersion.cpp b/logic/minecraft/InstanceVersion.cpp index 73beceb3..baf34404 100644 --- a/logic/minecraft/InstanceVersion.cpp +++ b/logic/minecraft/InstanceVersion.cpp @@ -161,12 +161,35 @@ bool InstanceVersion::isVanilla() return false; if(QFile::exists(PathCombine(m_instance->instanceRoot(), "custom.json"))) return false; + if(QFile::exists(PathCombine(m_instance->instanceRoot(), "version.json"))) + return false; return true; } bool InstanceVersion::revertToVanilla() { beginResetModel(); + // remove custom.json, if present + QString customPath = PathCombine(m_instance->instanceRoot(), "custom.json"); + if(QFile::exists(customPath)) + { + if(!QFile::remove(customPath)) + { + endResetModel(); + return false; + } + } + // remove version.json, if present + QString versionPath = PathCombine(m_instance->instanceRoot(), "version.json"); + if(QFile::exists(versionPath)) + { + if(!QFile::remove(versionPath)) + { + endResetModel(); + return false; + } + } + // remove patches, if present auto it = VersionPatches.begin(); while (it != VersionPatches.end()) { @@ -195,9 +218,40 @@ bool InstanceVersion::revertToVanilla() return true; } -bool InstanceVersion::usesLegacyCustomJson() +bool InstanceVersion::hasDeprecatedVersionFiles() { - return QFile::exists(PathCombine(m_instance->instanceRoot(), "custom.json")); + if(QFile::exists(PathCombine(m_instance->instanceRoot(), "custom.json"))) + return true; + if(QFile::exists(PathCombine(m_instance->instanceRoot(), "version.json"))) + return true; + return false; +} + +bool InstanceVersion::removeDeprecatedVersionFiles() +{ + beginResetModel(); + // remove custom.json, if present + QString customPath = PathCombine(m_instance->instanceRoot(), "custom.json"); + if(QFile::exists(customPath)) + { + if(!QFile::remove(customPath)) + { + endResetModel(); + return false; + } + } + // remove version.json, if present + QString versionPath = PathCombine(m_instance->instanceRoot(), "version.json"); + if(QFile::exists(versionPath)) + { + if(!QFile::remove(versionPath)) + { + endResetModel(); + return false; + } + } + endResetModel(); + return true; } QList > InstanceVersion::getActiveNormalLibs() diff --git a/logic/minecraft/InstanceVersion.h b/logic/minecraft/InstanceVersion.h index 60df59df..6b69ab47 100644 --- a/logic/minecraft/InstanceVersion.h +++ b/logic/minecraft/InstanceVersion.h @@ -51,6 +51,11 @@ public: // remove any customizations on top of vanilla bool revertToVanilla(); + // does this version consist of obsolete files? + bool hasDeprecatedVersionFiles(); + // remove obsolete files + bool removeDeprecatedVersionFiles(); + // does this version have an FTB pack patch file? bool hasFtbPack(); // remove FTB pack @@ -61,9 +66,6 @@ public: void installJarMods(QStringList selectedFiles); void installJarModByFilename(QString filepath); - // does this version still use a legacy custom.json file? - bool usesLegacyCustomJson(); - enum MoveDirection { MoveUp, MoveDown }; void move(const int index, const MoveDirection direction); void resetOrder(); diff --git a/resources/multimc/16x16/plugin-blue.png b/resources/multimc/16x16/plugin-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ab3fcedc3af1193fb03fb4a168b24439ae4659 GIT binary patch literal 731 zcmV<10wn#3P)6StFn zz1=sv+f&B~A<^O@otl{47`l6f< zY(Gqy0wDwq2@54hf-(h{X((l|Ru-U4q2x&19~rx}nSo_D62@q>xhaZ@>pxnr_j46nK0nO_odX(!X;KL-A48v zzjayha=v?aYM0|FcwB>estU;C8paqfVf+lFfs%|^iA=}Q^QYP_=Cd}0G@tvnvjFgwxhK~FM6&JuhsreD{5NK$s-+2O5UFo!{h6-;Ahq=PT1os< zf(nYlg+|D-(^Z0<<(blAJQqOvegD&fd!wPHC&}-h5WqJ4pBVs4KLCC|fi-=`OXC0l N002ovPDHLkV1hs1P4@r* literal 0 HcmV?d00001 diff --git a/resources/multimc/16x16/plugin-green.png b/resources/multimc/16x16/plugin-green.png new file mode 100644 index 0000000000000000000000000000000000000000..af0f116675630adcdc4618fc718860b316126f70 GIT binary patch literal 702 zcmV;v0zv(WP)-Vp%xQbRr@nu%$0f3P(h56+QLR!(J*wXim)@GKHkDK#5+G zdMF~2q!1-@se~v51&LBPl;Qr|yL)$c@42UQuiM(HK?i>P{_y*L&hMOaFM=Ga#cMUy zIc*~ime$hls`-YB{H2^EIuq|%GgM}N5&)sv4 zIRPhn4qFj}DhL4y<)P-|CtY{kmFFoS3d_OI@M>mkLXIngvPcq&LXa4hSF!-@WA>@8 zwgD$E#{i)`*kve%NFofJ%z+^DfE5Ws@gT%x79wI8-cL++rvZAi4z={v&kkRB;)qJB zh}BGOj!CQr(c+{}U=b!qXZq3rV}${=^*WY2JA5^)9LZ|t@lMREHOxUm5kZi6n0mN; z3l$wIKuw+1KEyE{1%5s;Jwd>H=Gk1WpJu7O8AZ}t`M z1(}{vfQTj#l7Kkofx}@s0i6od%k+oWHka51bEVO?Iv((%17|JX;d?#Z3_~cHo*jp% z4{0KGR~3W_){coWftR<}2RFt8*J-MwCZhcv7T-l*)6F;u?_37SbSRx`00rR1{qG~e zkD+V2a(!WJHnfF|wxV{|ko|RuQHMlHf#Sk^$V3nVS!-=WW|eq>z!5?3zdCPKUqN5& zD7}(ju0L|rb?{78mC=$ZAQ?d_W{?gxIRV~vt(;0dqXx3~H-56(4RwEs)02>NO`y|G z-~Hyv{1Ta3uVb#PmNforSCRz+km!Xjj;{7*0ZJ}czBSdGT2lf-e)}{eSyN~+`0S_m k&%bdGH8cF*QaM|{0E(^b literal 0 HcmV?d00001 diff --git a/resources/multimc/16x16/plugin-red.png b/resources/multimc/16x16/plugin-red.png new file mode 100644 index 0000000000000000000000000000000000000000..1a97c9c00143fdb9771880cc7034c501dc9699cb GIT binary patch literal 693 zcmV;m0!safP)w6_3W7 z2?ygrA5Cv+Kmr#yL~erTAoya_$8CaIf0?v~5CY!7 z0H{_2hapI7fC%y49!P6Yt%g_2%lDHG`aMr5qCgG~f|P2Js#Q=Ffs_I_8X&E~#(={R zXf{!CP9_3W(EKV-^cTMeQ}{$z1x04BMq|`t*ijnwpwhH6A*Qr zGeY!Cr&8&nl<7BG?~1cQaP7t9gM+Ln7IUE>U+hJY3y+Kblo9Q;D`*pqkUIMU7T0a7ix}M2gB&CLqs?2fx zkDv4XiGw|00L_ruMoOJHLfpP13m_08*YOuNtgQ{UcZ-=pM+nfNm|<>;zv8C=^yB}) b0Cs-^LHuuSZ=9n100000NkvXXu0mjf!mciX literal 0 HcmV?d00001 diff --git a/resources/multimc/16x16/resourcepacks.png b/resources/multimc/16x16/resourcepacks.png new file mode 100644 index 0000000000000000000000000000000000000000..d862f5ca64b01627470dc0000e6d3c2ea3bfd1ca GIT binary patch literal 1207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zK-vS0-A-oPfdtD69Mgd`SU*F|v9*U87?@i=X}75PkouxoSoU*b^@O*c<{4Xm7#8-d%TO1| zva;_s37A#(U{|Ts2M6vXeZ_wVzw|b*yN__ z?^lx5^m%iOUm^dHMIrP2*I(2c1b*i3w=bwFe}04DHzmIPi0IfuYW7pkA}d}}$Z(9)nTZSmpP z+k#(i3J=d(&(CoVpTf#3$nehMI`?^_p7o876LK>hHG~|GA7HrC+pEyxpnoKB;_QpJ zJ~hm@Nw-alI~Lnev~eA0PmXoRQns1fPqfGXxLE(s=IM=HqB^IW5+!C_6-`OEYf!nF z@avbN$(zI99^c>o$7t)*HO7Ja&efE#@|XYqFw5WI$W?ipkZhGl(^F?I%9KiZte&x1 zf8ng(yje33WR*7w-bt8{*7|DB?&4RgB|bm0lv&nbJK>CbmVDS^&h_E^EKH2^o->}~ z%=)Vp5WYaG(qN9LNqRdcx7Md3Wz&s$mwt*I;}kIeza{4L$33|f887aJXf3_|x-{U8 z*o9to#i+L%x#}@*@7|Ml{!ffv_=Wv+s!`bLyJu63 zHum-PJ?3jati-{jux-&iX;%xWfzZ)ZTHga;bA6~b=>ENe#4h~bY zx88a5Y16}RRn?Mhjz>2*uPzSAT|eQab>DscxLr5wEiEP48NLZW2&wizAANh)tZkQN z+$CqZ72RC(>+XpYAGVvl4mrPX-UN-Vt3Q7x)zthsB+kvveO<(L<)6=wtV+2o9tyW~ ztlb-HGJCeS_RTd$w&vx((?ffoHHgkyrh3_gv*GtOh7}AV3`h4fichZaoU=i#6PP>w zOI#yLlJj$OQ}ap~9Ft2j^Ye-o(lT>$6q56E@{1Ibit@{gQ;QVJGxJjN%N5d!@^ckD zlk@Ww+!J$hQj01TGD=Dctn~FWfnw>2IeI{&^ozG|mIWHE3Nkt+u_Vv6y z>PAomL5eQag;=%NRE@m=KGl|WCpL_55Ip25gch0^4 zZ?H*w?&PIyzGq$??$12lza<=XtkK-f^sjnMA5`k}&gZ8lb-lP?GvJ4goy!9F?)cNi z@ts@q8mDZmlWyx|@{0=#lNYBdy#QWYFV@=(0omw)D8>s}ALW`uwLz%V3FVqY6f>#~ zI~1s3kG83n}InQ&+CJB_fF&D+4g|Wt+~< z&OOmlgL3KIXm0Ys`%fO*V^Yg-teRLcal&XMjKoU&Ar=&JKE}4?0w6b%l7dJyO2v4l zj!WNvJ>EfJ8}nh{d#E-@Q`-hq7DZwOamsL{npy^ns&%(~)(IRd5-SP-X>HbY5QtEr zD>SeqCQ1d?iKdnf2@t0Y>qH%?u};*nn&wW>@+lmPGOG~`!h(aC{YtU zwXDRziUcIk7Pt~ONqx^~=zFL}4kAzh5K2st9~d+Ff!(h^|KzS0M+UmgC*Rzy2kz;C zbz)k8>PU?v1&gj|ZCF%AVT>_Q6`fnM=K6es-tJJh{J_8`X#qC#)^NcBYOLstQ$AM~XOQO{@R_u3T%-g->5TkslnN=pLFl5LZgmwHv=* z48r`tL~%5iZ^W#`VwUTSlvEw7VO9_~i=0@2rDjK2CkB85FxiX;X6W_O^wd)6?1xLG zvkpKAfB>WcfZkRHNG+q)%W%|eOO|HV|7VT`E-qI+zsm}z7C_p*?ASKyH!Bv`=3~?% zzAf-hz-J z#;iuyHN?8szpJ=?YyHqmrw4W(J~GtbmHFw**%tu3=c}@HaXIAP2M$*w_NHbQDGW1S zHscu`OANF z6^3>I2(~}-_NkTb*vQtC&pJW1K_CVSgL@9DaCYS+FGq`4PDhJZy!^n}W1>KuavMPu zYteKa>28|`VWG#*6oyw{6%2rdk{YujPT8yqG`H@m_IkBn0T|JCeGCAsC1?V$WmQEZ zW{7smA{#W8$Xc8fevs?yAW&htF~0ymEUdeIRqm8Xr9&ci4Jb6*LEz%0($({CzU7C7 zkyXKK^S$HQ5TAUSe;j6m;%>$mK>Qyo4_vEDn&S@u0000azAlO2&V1Xt!F_zdL8i_U5N34I;#*!d5(D-V^ z*xJ?~HjRmzm>8Q-ize6_15zPXq(QJeR@?GgU|}Egp6i|2U07I%O>c7Mo_puc_kH)9 zb7v54vOU{gkbwrKIo0B>b(qs!q9TMQf}WwE=sPV0n#)1e!QvJc2{aobLlBaG$ayE<|zTE z6P@>*g)5%(KYaJppF3}vV9N`cR#%C=e_MWicAa}Sa0&;U%)x@_gOgPF%!Qc-qt$Sx zr)7-%FG1u7nb4%L@K3NVjv!~3Gq>oKyrEAkztwC2Q5AKdfaHgO901K4>OTsR zURy(jP~`;aTF~ANCkJuFI|yB$_g2Rdq?g(As+x)i4ws#PU>GnQDi4C5FZaC4(VW-s z3#-PyMIT&v@6ygVg0vEQQC-W{p4T60!GP@76$_fu$iupFHM|2s?{#2(jSv<>Bvrt` zq6nR>J@EwT*Q_BNH>Q4T^>waUlj+Ixx2DLSD(W{?S6BYEjNQNZh! zq37+Zb!gdW#+-WB(U+ci@xblYRQz)A3(}Ck56~!M zvp6#=g3W3mtQm2N68zRQQiE(}VoF6@{y z5JxCjST*5DP+mX{j8pv-)UV&8m?V0RWCh5@b8`cOZw;5xS&2@Wv}qawZpgFM?KxK2 zUXs0u1Qj3B3eat#M6||3AQ6Gk7F!HaV0xak9zm2;((%ny*VxgqN2!0}ij&OdSjwx~ z3N9A7(}-W1!w3RJMAVZQrAq`PLZGdojhit&W6WPhZ~eZ=XJ; zp(G?%IS=JM=Weu_jm&i~C*`Kwjj2h-2m{eREf^NQ%A&~5v|ZAV1zH&wB%3W{d~qB* zz90YDd&09LD$|~r%|2#GHf7OW8_OFD-%Yiv2rB_s5`_7XL`B4sses*o%`bS~xRMp? zgMkKPaY@WwemPC10 zShQ+a+HF1mdzy#w=E2f90>+t8RC#PykHk!@K|mnJniaN0Dr>3g{+$=#+WW(`aRiuR z+OqLTVIP|)$2zlQ5Lq#fwGI5YEnI5jm#YZJG=epBN3Q`>HTbYNwL!{Q1%N&fxr-6H_L zn|$-l{n5e#+36@+J4R!U#OKc+;gu^B0Nx)K8|(xi5jhNz{Xw}5sn_A#ZTMyrzR>_X z9cW{od06a@04{5Nmd`0RHkmQeg;bwMeZ&V<2fth=5u{(iF%tN|pi6vHLq{Es3Dfo69>~si`t&9N?KqTL5O&S9LXs@oi z*VotI*;gzcJXkCq{?oZz*R$+OVOJO)9GRalOOg=IDc@}7@_4U$j3rG~e>{6l2M9o^ zQVDR5Kc(q!m$d%;lGYYL1i%3>1ppHOV3(JBQ__pJM4y4t>|1nyNJyEn!4T9+D(b1VFqNw(ZF+YEsBn;c6d8u4}ty(G-Ap#~z z&br&wVXHru1AUoJlJRli=quIgnG@ym8$YJ$yM+h00p>PaIEN*7}PAfb8oyK6AsE>oZ|E51{Z_ z6n!9R`ePC}u~}5i>2c%5}>nmo74t``mY78@AI~W^+#%R>@s)!lBej zE>S~vM7bRz{BkR0ghL~A_M7w1@2}tE{dm8hkI(Dzc)cF)zdrA@^RD)aa+-1g04O>- zpf8FE*=?}2cuvKg*%U)M@SHsw5baiJ>u&+mxp0$E<&*OwIlOJ8F7sEJk*9vs zn0V>Tub>Z26h-Dd2wGl^-RSj$L{uM}%*nmiVWQAE8{HX*P*75WY247wcZS6a3uoV5 zq08(|Zj-SF`h#@WI)2d75RB;GQnf)U7|Db}cF%1R{XzYwrk$PBV3u|9JZE`(ZrjrR z@?jubFRl33h@}NDdIA=#r^N6^0HA>Ob~47@TC={{D7>$JR>7dFQ>ZJ0FDpW#s7P8%ciG9UUsy6PKc1$4npZ zz^cdY0o@AbMIUUe>)~>_VG$95Hp=IpdiLG4d^1)+5Po@Nq{C2yJ5PS$sVKuX^}&W% zzQ>?^?UUl7#Z4f$O1%PfAM_T$$*{AXoRojBo=Gt$RW?`ZYhXBc4j@;xH~d;G8aG@b z1A3~OF}e-{NTZbh?L_c`O&EyH_9=09ir>s*0c)Y1+-@ASa)^eTL>;@nVxz2bx=(V{ z&XuV0v)oos+vsz={YoBkFEoj%DUFxiqo^RwG_1IERJp!AL-{4r=*jbDl<|0@N{p5n z)Z9wv@v$d_@u=U`BWEnot=itxa@W_>>Irt&J{7vF;wS&ne$6$>G@hHa1KxB5R}IBt zkkxJw4(pqs>W^m4>56l7;d8n=SX$RnH8nLYb#yT_UFUFOBoGejX}WQ=aH94>!G8C@ z1rv5qHZMhVLdK9}y<}h~9L-7oFwgiX@bi8YEKl`GF-TWVZ0Y>u!uxzpl6_`d`REmv zHBKro%E;lb0KOZ{k~}sky7zLn1~u`*sIMUe1B`al0xv+ciYN4YyT2EC|AIN1&V_rK zTB*x%4AM)#v~OO^YuzDu)|&+$NpkimE40o=p9EA-NbG?D5$YZ_KdU**) zz%5IM`|JL4lveqD+dOrHgZ$CYfN6KY#A89UVTDEL+d_Kn_EwDF4*uZj!|7|sb8~eL zt^VMkVZ6$4-|B}CMYr@E+cWUGp8&lMm*Rw3+6qHUEm`_|!fk{lw@*gtAZ@9?%{f9q{m_Hrf)ddWOo3T#_f53ipBubl86ks~ z$xaXo%P2)f%YT@gH5zG|wOzb=HG{>HNG%5sAt%3nUE80jeMT4?A1`W2L$@Pc*0f9R z`@HjY{()s4Zmk`aFbCqKoYW|U*+nV-${J5rt^vTulIugiW z==ix-=%;{a;-C8xkTGtYr2w#trC=MNzFxVch>9Fl$D_s#s?~Qh`Lp@O2?+(QYHB*K z7@{ufR@%_^q~o7Md)}_UcFi3Fp2tf#odPA@nOkiTpDi~k#*-REA`pU!RKO;P8crfo zpdsOSJT!=eCy}9nWKtX@m<){zC*nwP&=4|-0Cfx^5ux@0cziIK4h^GHqfl^oxL6Af zz#EIB;FM=i4vC`=??&SSsKKZpaRxP202MY zK~z}7tygV`Tvr)>&OPVO$Ik3zcV{!3q}%4h+9b`|*3!mmD2*smij-6l`~(sFZ~qmv zAkx24u%Leg5vhVdqEO?a7VDoNNQq5?#;j}F#A(vqnc1D4oxOAKIp=*}f83ebnaymr zS$g1b5BFZq^SsadzR$T=VVC2ZuUwi96kY`ItWxTT(a_FIiv`yJ{6R!s{l&|VwRYM^ z?FRho-~Y!GTB|>Q?&S2u$%iLUnasd>K_?;HZX~#Hc@-BIS_|Iu)4%?~AsX9bdt8ZN*6*176(jK5u3MPdn2!ssM~PC|$+ zgz4F|r zDhL#iI03OBmkCfVg}8qv4c!NSdU zw0Pw&rI890D<{iCoAYAl;)b!NSzmKbO@f(wRLF?^xlc$&HKdCC+|JO zI>AKI0Kiy%@lSdr0U@VsRM(+aNGuJ>+>4|S=r`Air6EA;8J;i{ec~B`0$6~gy`)AG zVD<=fCT~oD*fJ8EDqubLK|KT3F+8QR6Q!WeOCOLK@WdbzcrS3>bzl^T1?=N(2)IZo zrAlMjlt63;a!3Nt7><@wazw-G5DSObt9eLE(EJOtCqD=yG&;QgED|269A5Sj4@xA$M zapv&MR5mTZfrw~e-2>?5d~iB1X`})aavF(c)SEW#eI2CgkWC33c;qW#m@oh4skx~$ zGgDdoKKr9asbETn_KyvL_aYxGs$O(NDPXVYf&d5t1+s$wEq4F_xl9116hfmmQ;^$p zztWlUZyZ1N(K9c8`7qYn4o41*m5Bv=CqgvV9IRuA$dK$kH3qLD0;2(9)py0!mc!-6 zmSuq|?+L@wSZZEz95sa!7$IjSW>0?g=|?BA)^>D-=!N5=CSA^>%57D(G=)a;wmz})Huy<&_p zeJoeH@AS;^=U?4>-|??mYfr_k>T7nRMj8No+$6K_GiM5Uqga5YMuLCe*ub7b2&FJ= zFnzGmq=pDEkk4w&?0;bYp$F&Yo_Tz)nwiR?+AJKbEzHl`japR$;AH*Qdp26(PWI>% zx9iSSZ(OZ*+V!YX*;h0s*wPK#Pog_Xi2z0`lnNRvEsu8O(P%MR@Bj1Nc>UG|13&<* zE?xcI4{Hna=X7?w?4tVn51xMctfPxbC4&dUX-EHuuS9H1d;&=j6X{^uGrP zK%FURa+CxBGOp98OV@G-H~XOAck3Xdfy~&{K@l>8r=bAo^`Ro4tg~RqWOmyPqn_)` zcm=}Yb|0l8-nu{m8wr0XEjgGzB7w;k$3;YM`&CRnA|O>@$B1?^q%CQ)j-i6E2*8-_ zU5sS0+C~rr_gr{)fN!x(W)A>a2nE{_;ArLgrD*lKRZ3?@`L95B^yVSbTb@NLir6yvPUP+4Sh5K0000e0j6h800>}lH2HlZs^k)Ii_^1Q}*T z1%IF@@&gn>ehCbffkG)sn-(Z7knRgjUh?+qeOXGrlu{=Ta&o~Jc0*Uk;8=r zPOc>uL`>$0eGjy|YQH?bq;m69B{1jX4AMF&w%cgPHtopU2_lj(@MCb9$V2)ee1Gc; z(Drzao+`1GJXHcyHl>qlJ@sA8v*wal$83Zg%j7U{PU7HL?GfncsTS^@Y?*62+H~QG z2)uk^{2)?Aya@zB0Rk2Q;t>LocZ+7%Lv}`Dc6`CA>@r9(rul$n0x}Vqz-8xosCHg< zyPKGEdW)ukP!ld3umS?WF$)B?MTw$x<H6unI$6;w4|hpXG`bczIG z(sktUMV5WjigMrGGIZz!_y#~w!>*MJUgHrU{5nM1EgKyTGhBbE<7JZI(1 zlC@*YFo7Q65T{@~6vW@}Z6jqeay+S!1}f_vaIMT?P$XbT(W*wjmh$VO!i7r~k67W4 z0Tk{{B%t8BzH22AK}Q+D#dkxyryW|FSh)ILwXv7Lgl!orQ-*%2#7To{4m~(CvLxkH z@%+`}$66+a843dS0)zmD&IQTHCr3l-z$?0;gKP0&2|R+v`z&00+aBX1kXn$aPM#Hi zJU1_=Fxi+2=WEV&s10On*^F&!l7fDog#n>Ho(KAJijj@eq6=ExZ6Ke1wVLp4flT1` zT?Q&P*iD2!MN3$wnM?CZGY{{beF!>uC)nF#`)n9crdt|mZ1I~%Sku^#h56y(Le%^2{b#oZri5nbV6%Ut4FOLa;9|IEAwWh z&jz>H;{zZG(r1MC84h?I02NTE!~#xkk`GLl*(G%0KJrP8aO%8$kAtd14|a84?EEb* z*StVKTt7i#B~SOIt{>SJ_HTmHlZM>=S@j#|zGY1|C50ImLIDG^OBj$vUJT|3^h$0Y zxD47iqIsNruh|%=+*m!1Z|CapkO~(y$SE0s!G$Amo{pV*WL(F_nXju%TD?D8Nen*o zG?voquSMD?D~tPH$rae+fv*=YBSCqUhpSq9D;cp;r}AnN%u|j|Xj_^yMb#`+htHw` z?kuEiGWal@1Q+ctRI}NhBy{qv%Bu-5k3TThu`n;&%95?}#zh4~|AUZ#1G)T857|~+hN_z#<%G6n=3@VD(#}Rj`@I83Kna|bIoJ>Gt9BW!Js%*rO%w&8l)f9Bl95g** zAS*c*v?`*%;i#zLYXs~F$0XoEHH@)Zp_^-i({=~k-R+ppIq1toK+lA@{KO9iFH7E} z!56;E>3x83%AP(sJ;|sQ1_Va^8vW-Csu+A@GQMm1mXiki5BGL38Z_RA0F*pHmVSjd^wI zw{utI6j7S)D8P}n21Q-l=H}u0#kO+y!TNcTqD*HhO5UHpdfFQT*)p*7QPl}u>;LZY zig3NM>n^>!E=QRF0a`<0(!K?yv)8$$hW=m*vi2i|6vhH=4<|y^9ao#@qna_16wvAl zta}%&Tlh{hgkf6rt@iJR&!y*#U%(s3%dS&JYQswD)=8+PiC?5A! zjK>M8p@Wh54{fQD2&kznQ;Dv0$N_>PG-1GjJytS|`s_c7qKwesxenjd&yPev9#6z& z7%qBv`j3c98%Al2_Sa0FQ^OPff&CAUoZ-ZO0XX&Be;!uR9{>OV07*qoM6N<$f{eI6 Ar2qf` literal 0 HcmV?d00001 diff --git a/resources/multimc/32x32/plugin-red.png b/resources/multimc/32x32/plugin-red.png new file mode 100644 index 0000000000000000000000000000000000000000..5cda173a96e9301a2f7a56d9868e8e81ec1aed8a GIT binary patch literal 1566 zcmV+(2I2XMP)9$E~)1RzZS`yJ>(?VNO!9qzvs!yWmoA35bP<-;W zMJV*i2f-i2hk{ZXq#}K313p-SNNbC&Ns}gavzu*pXLe`i-gA7I-N|mcNt)<|%g)Xn z&i9?~{M>s5wm9w`Iy5ANI1AtufC7}Vp!G5{{|VpIAl5vQ?0_3 zN}%OsAdx`o*fCi7{C*I9w2>jTS>&&G?v%`Yz`u11rdkDp033#3W5D$~I1Hf|7SNcP zL5(QCk-beT@Q*S0xm>;!&ds4dISFbsK#d02b)#S3hj;B7EFtuF%gbMES%JHSLZ4LX z14wCs$YNk2L{l4`ZU;eBLi(fRI5dR z&39}}oDVUnFpNpDG4Zp^<$&qw)K%BDx)LzVqG*gIY&&A_`=B6*0Ggh(1Gb(i2s!{` zRhr~mgdruE84FsAt^@)ANg*6z+Yxx9(P_BNSbOZ_cdc)TV$Wmp#z0630^l=uC(s}g z637b2i8H(1_!C|db&%sQi~&K^K}uK_Km-CnKz9PR5F&3`IhoC_$lNYroA;{$VkMY6 zZHo4h*P~Wb&;BQQxPFixd4y4XghCD4|;MUhUB;HDbWlGc!O0 znNEZ2b(mr?>i@P4!@LrLw=)^L&$7PXS16pZ1_p3`a;1j?MQtz z00b&zR=q-OgHmx%k7M1|LSwLINp>76EURlfXCl;@g9_0@0Dg0JZbk->8i1aig;`qa zTqRn6E8Aeb849~s2oeV+g znF}xW^t|g49e<$pH;cv?3jiua=D1R4GJp`wFbfMPE-WCGOg49?Hp4B@R$^{2h2vnq zoDjKyK{_y?3A8LJF0bl@2Kh$dHCtUYZMu>cgXyKE5{v3zl zAO*pulds#i?WO7nfqjX@sP?@0JYWDU2F#TbvjmVR8M6o?pp8JQw{IySR~j+w9fz4Yxja+3V;#oTw1pS*ayJD|33_XB7hmO!Ohv;>J9oSh6Z5%1;C}ut@DqZ QA^-pY07*qoM6N<$f+LQ}?*IS* literal 0 HcmV?d00001 diff --git a/resources/multimc/32x32/resourcepacks.png b/resources/multimc/32x32/resourcepacks.png new file mode 100644 index 0000000000000000000000000000000000000000..c14759ef7e92827de9587c21bdc16d467ed4aa88 GIT binary patch literal 2818 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 L8^S6zpNIb!lfGe7 literal 0 HcmV?d00001 diff --git a/resources/multimc/64x64/plugin-blue.png b/resources/multimc/64x64/plugin-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..24618fd0b4d7128c97ba8d9bab538a60976327aa GIT binary patch literal 4406 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 literal 0 HcmV?d00001 diff --git a/resources/multimc/64x64/plugin-green.png b/resources/multimc/64x64/plugin-green.png new file mode 100644 index 0000000000000000000000000000000000000000..668be3341c4ed1e174819cd5b214fe23ca632be2 GIT binary patch literal 5036 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 literal 0 HcmV?d00001 diff --git a/resources/multimc/multimc.qrc b/resources/multimc/multimc.qrc index 1df22c29..887e94ac 100644 --- a/resources/multimc/multimc.qrc +++ b/resources/multimc/multimc.qrc @@ -102,6 +102,30 @@ 32x32/status-good.png 48x48/status-good.png 64x64/status-good.png + + + 16x16/plugin-blue.png + 24x24/plugin-blue.png + 32x32/plugin-blue.png + 64x64/plugin-blue.png + + + 16x16/plugin-red.png + 24x24/plugin-red.png + 32x32/plugin-red.png + 64x64/plugin-red.png + + + 16x16/plugin-green.png + 24x24/plugin-green.png + 32x32/plugin-green.png + 64x64/plugin-green.png + + + 16x16/resourcepacks.png + 24x24/resourcepacks.png + 32x32/resourcepacks.png + 64x64/resourcepacks.png 16x16/refresh.png