summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/modlist.cpp29
-rw-r--r--src/settings.cpp22
-rw-r--r--src/settings.h6
-rw-r--r--src/settingsdialog.cpp56
-rw-r--r--src/settingsdialog.h10
-rw-r--r--src/settingsdialog.ui92
6 files changed, 141 insertions, 74 deletions
diff --git a/src/modlist.cpp b/src/modlist.cpp
index 0b66a663..44ca6eaf 100644
--- a/src/modlist.cpp
+++ b/src/modlist.cpp
@@ -411,21 +411,26 @@ QVariant ModList::data(const QModelIndex &modelIndex, int role) const
bool archiveOverwritten = m_ArchiveOverwritten.find(modIndex) != m_ArchiveOverwritten.end();
bool archiveLooseOverwritten = m_ArchiveLooseOverwritten.find(modIndex) != m_ArchiveLooseOverwritten.end();
if (modInfo->getHighlight() & ModInfo::HIGHLIGHT_PLUGIN) {
+
return Settings::instance().modlistContainsPluginColor();
- } else if ((overwrite && (archiveOverwritten || archiveLooseOverwritten)) ||
- (overwritten && (archiveOverwrite || archiveLooseOverwrite)) ||
- (archiveOverwrite && (overwritten || archiveLooseOverwritten)) ||
- (archiveOverwritten && (overwrite || archiveLooseOverwrite)) ||
- (archiveLooseOverwrite && (overwritten || archiveOverwritten)) ||
- (archiveLooseOverwritten && (overwrite || archiveLooseOverwrite))
- ) {
+
+ } else if (overwritten || archiveLooseOverwritten) {
+
return Settings::instance().modlistOverwrittenLooseColor();
- }
- else if (overwrite || archiveOverwrite || archiveLooseOverwrite) {
+
+ } else if (overwrite || archiveLooseOverwrite) {
+
return Settings::instance().modlistOverwritingLooseColor();
- } else if (overwritten || archiveOverwritten || archiveLooseOverwritten) {
- return QColor(255, 0, 0, 64); //TODO: Make configurable
- } else if (modInfo->hasFlag(ModInfo::FLAG_SEPARATOR)
+
+ } else if (archiveOverwritten) {
+
+ return Settings::instance().modlistOverwrittenArchiveColor();
+
+ } else if (archiveOverwrite) {
+
+ return Settings::instance().modlistOverwritingArchiveColor();
+
+ } else if (modInfo->hasFlag(ModInfo::FLAG_SEPARATOR)
&& modInfo->getColor().isValid()
&& ((role != ViewMarkingScrollBar::DEFAULT_ROLE)
|| Settings::instance().colorSeparatorScrollbar())) {
diff --git a/src/settings.cpp b/src/settings.cpp
index 2bad749f..3202dffe 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -391,6 +391,16 @@ QColor Settings::modlistOverwritingLooseColor() const
return m_Settings.value("Settings/overwritingLooseFilesColor", QColor(255, 0, 0, 64)).value<QColor>();
}
+QColor Settings::modlistOverwrittenArchiveColor() const
+{
+ return m_Settings.value("Settings/overwrittenArchiveFilesColor", QColor(0, 255, 255, 64)).value<QColor>();
+}
+
+QColor Settings::modlistOverwritingArchiveColor() const
+{
+ return m_Settings.value("Settings/overwritingArchiveFilesColor", QColor(255, 0, 255, 64)).value<QColor>();
+}
+
QColor Settings::modlistContainsPluginColor() const
{
return m_Settings.value("Settings/containsPluginColor", QColor(0, 0, 255, 64)).value<QColor>();
@@ -729,6 +739,8 @@ Settings::GeneralTab::GeneralTab(Settings *m_parent, SettingsDialog &m_dialog)
, m_usePrereleaseBox(m_dialog.findChild<QCheckBox *>("usePrereleaseBox"))
, m_overwritingBtn(m_dialog.findChild<QPushButton *>("overwritingBtn"))
, m_overwrittenBtn(m_dialog.findChild<QPushButton *>("overwrittenBtn"))
+ , m_overwritingArchiveBtn(m_dialog.findChild<QPushButton *>("overwritingArchiveBtn"))
+ , m_overwrittenArchiveBtn(m_dialog.findChild<QPushButton *>("overwrittenArchiveBtn"))
, m_containsBtn(m_dialog.findChild<QPushButton *>("containsBtn"))
, m_containedBtn(m_dialog.findChild<QPushButton *>("containedBtn"))
, m_colorSeparatorsBox(m_dialog.findChild<QCheckBox *>("colorSeparatorsBox"))
@@ -789,6 +801,12 @@ Settings::GeneralTab::GeneralTab(Settings *m_parent, SettingsDialog &m_dialog)
m_overwrittenBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg(
m_parent->modlistOverwrittenLooseColor().name()).arg(getIdealTextColor(
m_parent->modlistOverwrittenLooseColor()).name()));
+ m_overwritingArchiveBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg(
+ m_parent->modlistOverwritingArchiveColor().name()).arg(getIdealTextColor(
+ m_parent->modlistOverwritingArchiveColor()).name()));
+ m_overwrittenArchiveBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg(
+ m_parent->modlistOverwrittenArchiveColor().name()).arg(getIdealTextColor(
+ m_parent->modlistOverwrittenArchiveColor()).name()));
m_containsBtn->setStyleSheet(m_dialog.getColoredButtonStyleSheet().arg(
m_parent->modlistContainsPluginColor().name()).arg(getIdealTextColor(
m_parent->modlistContainsPluginColor()).name()));
@@ -798,6 +816,8 @@ Settings::GeneralTab::GeneralTab(Settings *m_parent, SettingsDialog &m_dialog)
m_dialog.setOverwritingColor(m_parent->modlistOverwritingLooseColor());
m_dialog.setOverwrittenColor(m_parent->modlistOverwrittenLooseColor());
+ m_dialog.setOverwritingArchiveColor(m_parent->modlistOverwritingArchiveColor());
+ m_dialog.setOverwrittenArchiveColor(m_parent->modlistOverwrittenArchiveColor());
m_dialog.setContainsColor(m_parent->modlistContainsPluginColor());
m_dialog.setContainedColor(m_parent->pluginListContainedColor());
@@ -825,6 +845,8 @@ void Settings::GeneralTab::update()
m_Settings.setValue("Settings/overwritingLooseFilesColor", m_dialog.getOverwritingColor());
m_Settings.setValue("Settings/overwrittenLooseFilesColor", m_dialog.getOverwrittenColor());
+ m_Settings.setValue("Settings/overwritingArchiveFilesColor", m_dialog.getOverwritingArchiveColor());
+ m_Settings.setValue("Settings/overwrittenArchiveFilesColor", m_dialog.getOverwrittenArchiveColor());
m_Settings.setValue("Settings/containsPluginColor", m_dialog.getContainsColor());
m_Settings.setValue("Settings/containedColor", m_dialog.getContainedColor());
m_Settings.setValue("Settings/compact_downloads", m_compactBox->isChecked());
diff --git a/src/settings.h b/src/settings.h
index 4a932da7..f88f9652 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -233,6 +233,10 @@ public:
QColor modlistOverwritingLooseColor() const;
+ QColor modlistOverwrittenArchiveColor() const;
+
+ QColor modlistOverwritingArchiveColor() const;
+
QColor modlistContainsPluginColor() const;
QColor pluginListContainedColor() const;
@@ -428,6 +432,8 @@ private:
QCheckBox *m_usePrereleaseBox;
QPushButton *m_overwritingBtn;
QPushButton *m_overwrittenBtn;
+ QPushButton *m_overwritingArchiveBtn;
+ QPushButton *m_overwrittenArchiveBtn;
QPushButton *m_containsBtn;
QPushButton *m_containedBtn;
QCheckBox *m_colorSeparatorsBox;
diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp
index 0d96e63a..75e08afd 100644
--- a/src/settingsdialog.cpp
+++ b/src/settingsdialog.cpp
@@ -239,12 +239,6 @@ void SettingsDialog::on_containsBtn_clicked()
ui->containsBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
result.name()).arg(Settings::getIdealTextColor(
result).name()));
-
- /*ui->containsBtn->setAutoFillBackground(true);
- ui->containsBtn->setPalette(QPalette(result));
- QPalette palette = ui->containsBtn->palette();
- palette.setColor(QPalette::Background, result);
- ui->containsBtn->setPalette(palette);*/
}
}
@@ -257,12 +251,6 @@ void SettingsDialog::on_containedBtn_clicked()
ui->containedBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
result.name()).arg(Settings::getIdealTextColor(
result).name()));
-
- /*ui->containedBtn->setAutoFillBackground(true);
- ui->containedBtn->setPalette(QPalette(result));
- QPalette palette = ui->containedBtn->palette();
- palette.setColor(QPalette::Background, result);
- ui->containedBtn->setPalette(palette);*/
}
}
@@ -275,12 +263,6 @@ void SettingsDialog::on_overwrittenBtn_clicked()
ui->overwrittenBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
result.name()).arg(Settings::getIdealTextColor(
result).name()));
-
- /*ui->overwrittenBtn->setAutoFillBackground(true);
- ui->overwrittenBtn->setPalette(QPalette(result));
- QPalette palette = ui->overwrittenBtn->palette();
- palette.setColor(QPalette::Background, result);
- ui->overwrittenBtn->setPalette(palette);*/
}
}
@@ -293,12 +275,30 @@ void SettingsDialog::on_overwritingBtn_clicked()
ui->overwritingBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
result.name()).arg(Settings::getIdealTextColor(
result).name()));
+ }
+}
+
+void SettingsDialog::on_overwrittenArchiveBtn_clicked()
+{
+ QColor result = QColorDialog::getColor(m_OverwrittenArchiveColor, this);
+ if (result.isValid()) {
+ m_OverwrittenArchiveColor = result;
+
+ ui->overwrittenArchiveBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
+ result.name()).arg(Settings::getIdealTextColor(
+ result).name()));
+ }
+}
+
+void SettingsDialog::on_overwritingArchiveBtn_clicked()
+{
+ QColor result = QColorDialog::getColor(m_OverwritingArchiveColor, this);
+ if (result.isValid()) {
+ m_OverwritingArchiveColor = result;
- /*ui->overwritingBtn->setAutoFillBackground(true);
- ui->overwritingBtn->setPalette(QPalette(result));
- QPalette palette = ui->overwritingBtn->palette();
- palette.setColor(QPalette::Background, result);
- ui->overwritingBtn->setPalette(palette);*/
+ ui->overwritingArchiveBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
+ result.name()).arg(Settings::getIdealTextColor(
+ result).name()));
}
}
@@ -306,6 +306,8 @@ void SettingsDialog::on_resetColorsBtn_clicked()
{
m_OverwritingColor = QColor(255, 0, 0, 64);
m_OverwrittenColor = QColor(0, 255, 0, 64);
+ m_OverwritingArchiveColor = QColor(255, 0, 255, 64);
+ m_OverwrittenArchiveColor = QColor(0, 255, 255, 64);
m_ContainsColor = QColor(0, 0, 255, 64);
m_ContainedColor = QColor(0, 0, 255, 64);
@@ -317,6 +319,14 @@ void SettingsDialog::on_resetColorsBtn_clicked()
QColor(0, 255, 0, 64).name()).arg(Settings::getIdealTextColor(
QColor(0, 255, 0, 64)).name()));
+ ui->overwritingArchiveBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
+ QColor(255, 0, 255, 64).name()).arg(Settings::getIdealTextColor(
+ QColor(255, 0, 255, 64)).name()));
+
+ ui->overwrittenArchiveBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
+ QColor(0, 255, 255, 64).name()).arg(Settings::getIdealTextColor(
+ QColor(0, 255, 255, 64)).name()));
+
ui->containsBtn->setStyleSheet(getColoredButtonStyleSheet().arg(
QColor(0, 0, 255, 64).name()).arg(Settings::getIdealTextColor(
QColor(0, 0, 255, 64)).name()));
diff --git a/src/settingsdialog.h b/src/settingsdialog.h
index f0567d87..e3c7d413 100644
--- a/src/settingsdialog.h
+++ b/src/settingsdialog.h
@@ -67,6 +67,8 @@ public:
QColor getOverwritingColor() { return m_OverwritingColor; }
QColor getOverwrittenColor() { return m_OverwrittenColor; }
+ QColor getOverwritingArchiveColor() { return m_OverwritingArchiveColor; }
+ QColor getOverwrittenArchiveColor() { return m_OverwrittenArchiveColor; }
QColor getContainsColor() { return m_ContainsColor; }
QColor getContainedColor() { return m_ContainedColor; }
QString getExecutableBlacklist() { return m_ExecutableBlacklist; }
@@ -74,6 +76,8 @@ public:
void setOverwritingColor(QColor col) { m_OverwritingColor = col; }
void setOverwrittenColor(QColor col) { m_OverwrittenColor = col; }
+ void setOverwritingArchiveColor(QColor col) { m_OverwritingArchiveColor = col; }
+ void setOverwrittenArchiveColor(QColor col) { m_OverwrittenArchiveColor = col; }
void setContainsColor(QColor col) { m_ContainsColor = col; }
void setContainedColor(QColor col) { m_ContainedColor = col; }
void setExecutableBlacklist(QString blacklist) { m_ExecutableBlacklist = blacklist; }
@@ -116,6 +120,10 @@ private slots:
void on_overwrittenBtn_clicked();
+ void on_overwritingArchiveBtn_clicked();
+
+ void on_overwrittenArchiveBtn_clicked();
+
void on_containsBtn_clicked();
void on_containedBtn_clicked();
@@ -140,6 +148,8 @@ private:
QColor m_OverwritingColor;
QColor m_OverwrittenColor;
+ QColor m_OverwritingArchiveColor;
+ QColor m_OverwrittenArchiveColor;
QColor m_ContainsColor;
QColor m_ContainedColor;
diff --git a/src/settingsdialog.ui b/src/settingsdialog.ui
index 832fa71a..58b2b48f 100644
--- a/src/settingsdialog.ui
+++ b/src/settingsdialog.ui
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>586</width>
- <height>462</height>
+ <height>486</height>
</rect>
</property>
<property name="windowTitle">
@@ -99,10 +99,26 @@ If you use pre-releases, never contact me directly by e-mail or via private mess
<string>Colors</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
+ <item row="6" column="0">
+ <widget class="QCheckBox" name="colorSeparatorsBox">
+ <property name="toolTip">
+ <string>When this is enabled, the color defined for a separator will be shown on the mod list scrollbar at the location of the separator. This can be useful for quick navigation between separator sections or to a specific separator section.</string>
+ </property>
+ <property name="whatsThis">
+ <string>When this is enabled, the color defined for a separator will be shown on the mod list scrollbar at the location of the separator. This can be useful for quick navigation between separator sections or to a specific separator section.</string>
+ </property>
+ <property name="text">
+ <string>Show mod list separator colors on the scrollbar</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
<item row="4" column="0" colspan="2">
- <widget class="QPushButton" name="resetColorsBtn">
+ <widget class="QPushButton" name="containedBtn">
<property name="text">
- <string>Reset Colors</string>
+ <string>Plugin is Contained in selected Mod</string>
</property>
</widget>
</item>
@@ -113,40 +129,38 @@ If you use pre-releases, never contact me directly by e-mail or via private mess
</property>
</widget>
</item>
- <item row="2" column="0" colspan="2">
- <widget class="QPushButton" name="containsBtn">
+ <item row="1" column="1">
+ <widget class="QPushButton" name="overwritingBtn">
<property name="text">
- <string>Mod Contains selected Plugin</string>
+ <string>Is overwriting (loose files)</string>
</property>
</widget>
</item>
- <item row="3" column="0" colspan="2">
- <widget class="QPushButton" name="containedBtn">
+ <item row="5" column="0" colspan="2">
+ <widget class="QPushButton" name="resetColorsBtn">
<property name="text">
- <string>Plugin is Contained in selected Mod</string>
+ <string>Reset Colors</string>
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QPushButton" name="overwritingBtn">
+ <item row="3" column="0" colspan="2">
+ <widget class="QPushButton" name="containsBtn">
<property name="text">
- <string>Is overwriting (loose files)</string>
+ <string>Mod Contains selected Plugin</string>
</property>
</widget>
</item>
- <item row="5" column="0">
- <widget class="QCheckBox" name="colorSeparatorsBox">
- <property name="toolTip">
- <string>When this is enabled, the color defined for a separator will be shown on the mod list scrollbar at the location of the separator. This can be useful for quick navigation between separator sections or to a specific separator section.</string>
- </property>
- <property name="whatsThis">
- <string>When this is enabled, the color defined for a separator will be shown on the mod list scrollbar at the location of the separator. This can be useful for quick navigation between separator sections or to a specific separator section.</string>
- </property>
+ <item row="2" column="0">
+ <widget class="QPushButton" name="overwrittenArchiveBtn">
<property name="text">
- <string>Show mod list separator colors on the scrollbar</string>
+ <string>Is overwritten (archive files)</string>
</property>
- <property name="checked">
- <bool>true</bool>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QPushButton" name="overwritingArchiveBtn">
+ <property name="text">
+ <string>Is overwriting (archive files)</string>
</property>
</widget>
</item>
@@ -1114,27 +1128,27 @@ programs you are intentionally running.</string>
</property>
</widget>
</item>
- <item>
- <widget class="QCheckBox" name="enableArchiveParsingBox">
- <property name="toolTip">
- <string>Enable parsing of Archives Archives, has effects on perfromance.</string>
- </property>
- <property name="whatsThis">
- <string>
+ <item>
+ <widget class="QCheckBox" name="enableArchiveParsingBox">
+ <property name="toolTip">
+ <string>Enable parsing of Archives Archives, has effects on perfromance.</string>
+ </property>
+ <property name="whatsThis">
+ <string>
By default Mod Organizer will parse Archive files to calculate conflicts between themselves and loose files, this process has a noticeable cost in performance.
This feature should not be confused from the one offered by ModOrganizer 1, ModOrganizer 2 will only show conflicts with archives NOT load them into the game or program.
If you disable this feature, MO will only display conflicts with Loose files.
</string>
- </property>
- <property name="text">
- <string>Enable parsing of Archives</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
+ </property>
+ <property name="text">
+ <string>Enable parsing of Archives</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
<item>
<widget class="QPushButton" name="resetGeometryBtn">
<property name="toolTip">