1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-25 22:42:04 +02:00

Adjustments to Mods screen layout in Launcher

This commit is contained in:
Ivan Savenko
2023-01-26 01:01:41 +02:00
parent 8cdc9985d2
commit e87a157b32
5 changed files with 288 additions and 454 deletions

View File

@@ -21,8 +21,6 @@ static const QString names[ModFields::COUNT] =
"", "",
"modType", "modType",
"version", "version",
"size",
"author"
}; };
} }
@@ -72,8 +70,6 @@ QVariant CModListModel::getText(const CModEntry & mod, int field) const
case ModFields::STATUS_ENABLED: case ModFields::STATUS_ENABLED:
case ModFields::STATUS_UPDATE: case ModFields::STATUS_UPDATE:
return ""; return "";
case ModFields::SIZE:
return CModEntry::sizeToString(getValue(mod, field).toDouble());
default: default:
return getValue(mod, field); return getValue(mod, field);
} }
@@ -96,10 +92,6 @@ QVariant CModListModel::getIcon(const CModEntry & mod, int field) const
QVariant CModListModel::getTextAlign(int field) const QVariant CModListModel::getTextAlign(int field) const
{ {
if(field == ModFields::SIZE)
return QVariant(Qt::AlignRight | Qt::AlignVCenter);
//if (field == ModFields::NAME)
// return QVariant(Qt::AlignHCenter | Qt::AlignVCenter);
return QVariant(Qt::AlignLeft | Qt::AlignVCenter); return QVariant(Qt::AlignLeft | Qt::AlignVCenter);
} }
@@ -152,8 +144,6 @@ QVariant CModListModel::headerData(int section, Qt::Orientation orientation, int
QT_TR_NOOP(""), // status icon QT_TR_NOOP(""), // status icon
QT_TR_NOOP("Type"), QT_TR_NOOP("Type"),
QT_TR_NOOP("Version"), QT_TR_NOOP("Version"),
QT_TR_NOOP("Size"),
QT_TR_NOOP("Author")
}; };
if(role == Qt::DisplayRole && orientation == Qt::Horizontal) if(role == Qt::DisplayRole && orientation == Qt::Horizontal)

View File

@@ -23,8 +23,6 @@ enum EModFields
STATUS_UPDATE, STATUS_UPDATE,
TYPE, TYPE,
VERSION, VERSION,
SIZE,
AUTHOR,
COUNT COUNT
}; };
} }

View File

@@ -74,7 +74,6 @@ void CModListView::setupModsView()
ui->allModsView->setColumnWidth(ModFields::STATUS_ENABLED, 30); ui->allModsView->setColumnWidth(ModFields::STATUS_ENABLED, 30);
ui->allModsView->setColumnWidth(ModFields::STATUS_UPDATE, 30); ui->allModsView->setColumnWidth(ModFields::STATUS_UPDATE, 30);
ui->allModsView->setColumnWidth(ModFields::TYPE, 75); ui->allModsView->setColumnWidth(ModFields::TYPE, 75);
ui->allModsView->setColumnWidth(ModFields::SIZE, 80);
ui->allModsView->setColumnWidth(ModFields::VERSION, 60); ui->allModsView->setColumnWidth(ModFields::VERSION, 60);
} }
@@ -161,23 +160,6 @@ void CModListView::showEvent(QShowEvent * event)
} }
} }
void CModListView::showModInfo()
{
enableModInfo();
ui->modInfoWidget->show();
ui->hideModInfoButton->setArrowType(Qt::RightArrow);
ui->showInfoButton->setVisible(false);
loadScreenshots();
}
void CModListView::hideModInfo()
{
ui->modInfoWidget->hide();
ui->hideModInfoButton->setArrowType(Qt::LeftArrow);
ui->hideModInfoButton->setEnabled(true);
ui->showInfoButton->setVisible(true);
}
static QString replaceIfNotEmpty(QVariant value, QString pattern) static QString replaceIfNotEmpty(QVariant value, QString pattern)
{ {
if(value.canConvert<QStringList>()) if(value.canConvert<QStringList>())
@@ -255,7 +237,7 @@ QString CModListView::genModInfoText(CModEntry & mod)
result += urlTemplate.arg(tr("License")).arg(mod.getValue("licenseURL").toString()).arg(mod.getValue("licenseName").toString()); result += urlTemplate.arg(tr("License")).arg(mod.getValue("licenseURL").toString()).arg(mod.getValue("licenseName").toString());
if(mod.getValue("contact").isValid()) if(mod.getValue("contact").isValid())
result += urlTemplate.arg(tr("Home")).arg(mod.getValue("contact").toString()).arg(mod.getValue("contact").toString()); result += urlTemplate.arg(tr("Contact")).arg(mod.getValue("contact").toString()).arg(mod.getValue("contact").toString());
//compatibility info //compatibility info
if(mod.isCompatible()) if(mod.isCompatible())
@@ -313,18 +295,8 @@ QString CModListView::genModInfoText(CModEntry & mod)
return result; return result;
} }
void CModListView::enableModInfo()
{
ui->hideModInfoButton->setEnabled(true);
ui->showInfoButton->setVisible(true);
}
void CModListView::disableModInfo() void CModListView::disableModInfo()
{ {
hideModInfo();
ui->hideModInfoButton->setEnabled(false);
ui->showInfoButton->setVisible(false);
ui->disableButton->setVisible(false); ui->disableButton->setVisible(false);
ui->enableButton->setVisible(false); ui->enableButton->setVisible(false);
ui->installButton->setVisible(false); ui->installButton->setVisible(false);
@@ -354,8 +326,6 @@ void CModListView::selectMod(const QModelIndex & index)
bool hasBlockingMods = !findBlockingMods(index.data(ModRoles::ModNameRole).toString()).empty(); bool hasBlockingMods = !findBlockingMods(index.data(ModRoles::ModNameRole).toString()).empty();
bool hasDependentMods = !findDependentMods(index.data(ModRoles::ModNameRole).toString(), true).empty(); bool hasDependentMods = !findDependentMods(index.data(ModRoles::ModNameRole).toString(), true).empty();
ui->hideModInfoButton->setEnabled(true);
ui->showInfoButton->setVisible(!ui->modInfoWidget->isVisible());
ui->disableButton->setVisible(mod.isEnabled()); ui->disableButton->setVisible(mod.isEnabled());
ui->enableButton->setVisible(mod.isDisabled()); ui->enableButton->setVisible(mod.isDisabled());
ui->installButton->setVisible(mod.isAvailable() && !mod.getName().contains('.')); ui->installButton->setVisible(mod.isAvailable() && !mod.getName().contains('.'));
@@ -380,35 +350,15 @@ bool CModListView::isExtraResolutionsModEnabled() const
return manager->isExtraResolutionsModEnabled(); return manager->isExtraResolutionsModEnabled();
} }
void CModListView::keyPressEvent(QKeyEvent * event)
{
if(event->key() == Qt::Key_Escape && ui->modInfoWidget->isVisible())
{
hideModInfo();
}
else
{
return QWidget::keyPressEvent(event);
}
}
void CModListView::modSelected(const QModelIndex & current, const QModelIndex &) void CModListView::modSelected(const QModelIndex & current, const QModelIndex &)
{ {
selectMod(current); selectMod(current);
} }
void CModListView::on_hideModInfoButton_clicked()
{
if(ui->modInfoWidget->isVisible())
hideModInfo();
else
showModInfo();
}
void CModListView::on_allModsView_activated(const QModelIndex & index) void CModListView::on_allModsView_activated(const QModelIndex & index)
{ {
showModInfo();
selectMod(index); selectMod(index);
loadScreenshots();
} }
void CModListView::on_lineEdit_textChanged(const QString & arg1) void CModListView::on_lineEdit_textChanged(const QString & arg1)
@@ -798,7 +748,6 @@ void CModListView::on_pushButton_clicked()
void CModListView::modelReset() void CModListView::modelReset()
{ {
if(ui->modInfoWidget->isVisible())
selectMod(filterModel->rowCount() > 0 ? filterModel->index(0, 0) : QModelIndex()); selectMod(filterModel->rowCount() > 0 ? filterModel->index(0, 0) : QModelIndex());
} }
@@ -820,7 +769,7 @@ void CModListView::on_tabWidget_currentChanged(int index)
void CModListView::loadScreenshots() void CModListView::loadScreenshots()
{ {
if(ui->tabWidget->currentIndex() == 2 && ui->modInfoWidget->isVisible()) if(ui->tabWidget->currentIndex() == 2)
{ {
ui->screenshotsList->clear(); ui->screenshotsList->clear();
QString modName = ui->allModsView->currentIndex().data(ModRoles::ModNameRole).toString(); QString modName = ui->allModsView->currentIndex().data(ModRoles::ModNameRole).toString();
@@ -860,11 +809,6 @@ void CModListView::on_screenshotsList_clicked(const QModelIndex & index)
} }
} }
void CModListView::on_showInfoButton_clicked()
{
showModInfo();
}
const CModList & CModListView::getModList() const const CModList & CModListView::getModList() const
{ {
assert(modModel); assert(modModel);

View File

@@ -40,8 +40,6 @@ class CModListView : public QWidget
void showEvent(QShowEvent * event) override; void showEvent(QShowEvent * event) override;
void keyPressEvent(QKeyEvent * event) override;
void setupModModel(); void setupModModel();
void setupFilterModel(); void setupFilterModel();
void setupModsView(); void setupModsView();
@@ -74,8 +72,6 @@ public:
explicit CModListView(QWidget * parent = 0); explicit CModListView(QWidget * parent = 0);
~CModListView(); ~CModListView();
void showModInfo();
void hideModInfo();
void loadScreenshots(); void loadScreenshots();
void enableModInfo(); void enableModInfo();
@@ -98,8 +94,6 @@ private slots:
void modelReset(); void modelReset();
void hideProgressBar(); void hideProgressBar();
void on_hideModInfoButton_clicked();
void on_lineEdit_textChanged(const QString & arg1); void on_lineEdit_textChanged(const QString & arg1);
void on_comboBox_currentIndexChanged(int index); void on_comboBox_currentIndexChanged(int index);
@@ -124,8 +118,6 @@ private slots:
void on_screenshotsList_clicked(const QModelIndex & index); void on_screenshotsList_clicked(const QModelIndex & index);
void on_showInfoButton_clicked();
private: private:
Ui::CModListView * ui; Ui::CModListView * ui;
}; };

View File

@@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>680</width> <width>639</width>
<height>342</height> <height>351</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@@ -30,11 +30,13 @@
<number>3</number> <number>3</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing"> <property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<item row="0" column="1"> <item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLineEdit" name="lineEdit"> <widget class="QLineEdit" name="lineEdit">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed"> <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
@@ -62,7 +64,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="2"> <item>
<widget class="QComboBox" name="comboBox"> <widget class="QComboBox" name="comboBox">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed"> <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
@@ -111,7 +113,7 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="0" column="3"> <item>
<widget class="QPushButton" name="refreshButton"> <widget class="QPushButton" name="refreshButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed"> <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
@@ -124,7 +126,11 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="1" colspan="3"> </layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QTreeView" name="allModsView"> <widget class="QTreeView" name="allModsView">
<property name="selectionMode"> <property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum> <enum>QAbstractItemView::SingleSelection</enum>
@@ -152,73 +158,7 @@
</property> </property>
</widget> </widget>
</item> </item>
</layout> <item>
</item>
<item row="0" column="1">
<widget class="QToolButton" name="hideModInfoButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16</width>
<height>100</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
<property name="arrowType">
<enum>Qt::RightArrow</enum>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QWidget" name="modInfoWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0" colspan="6">
<widget class="QTabWidget" name="tabWidget"> <widget class="QTabWidget" name="tabWidget">
<property name="currentIndex"> <property name="currentIndex">
<number>0</number> <number>0</number>
@@ -337,38 +277,82 @@ p, li { white-space: pre-wrap; }
</widget> </widget>
</item> </item>
</layout> </layout>
</widget>
</item> </item>
<item row="2" column="0" colspan="3"> </layout>
<layout class="QHBoxLayout" name="horizontalLayout_2"> </item>
<property name="spacing"> <item row="1" column="0" colspan="2">
<number>6</number> <widget class="QWidget" name="progressWidget" native="true">
<property name="enabled">
<bool>true</bool>
</property> </property>
<item>
<widget class="QPushButton" name="showInfoButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>51</width> <width>0</width>
<height>0</height> <height>0</height>
</size> </size>
</property> </property>
<property name="maximumSize"> <layout class="QHBoxLayout" name="horizontalLayout">
<size> <property name="leftMargin">
<width>220</width> <number>9</number>
<height>16777215</height>
</size>
</property> </property>
<property name="text"> <property name="topMargin">
<string>Show details</string> <number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QProgressBar" name="progressBar">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>0</number>
</property>
<property name="value">
<number>0</number>
</property>
<property name="textVisible">
<bool>true</bool>
</property>
<property name="invertedAppearance">
<bool>false</bool>
</property>
<property name="format">
<string> %p% (%v KB out of %m KB)</string>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Abort</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>6</number>
</property>
<item> <item>
<spacer name="modButtonSpacer"> <spacer name="modButtonSpacer">
<property name="orientation"> <property name="orientation">
@@ -512,82 +496,8 @@ p, li { white-space: pre-wrap; }
</item> </item>
</layout> </layout>
</item> </item>
<item row="1" column="0" colspan="3">
<widget class="QWidget" name="progressWidget" native="true">
<property name="enabled">
<bool>true</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QProgressBar" name="progressBar">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<number>0</number>
</property>
<property name="value">
<number>0</number>
</property>
<property name="textVisible">
<bool>true</bool>
</property>
<property name="invertedAppearance">
<bool>false</bool>
</property>
<property name="format">
<string> %p% (%v KB out of %m KB)</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Abort</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>lineEdit</tabstop>
<tabstop>comboBox</tabstop>
<tabstop>allModsView</tabstop>
<tabstop>hideModInfoButton</tabstop>
</tabstops>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>