NOISSUE convert accounts page to use a toolbar for the side menu
This commit is contained in:
parent
3d5869e1cf
commit
81fdde6fdd
@ -34,10 +34,14 @@
|
|||||||
#include "MultiMC.h"
|
#include "MultiMC.h"
|
||||||
|
|
||||||
AccountListPage::AccountListPage(QWidget *parent)
|
AccountListPage::AccountListPage(QWidget *parent)
|
||||||
: QWidget(parent), ui(new Ui::AccountListPage)
|
: QMainWindow(parent), ui(new Ui::AccountListPage)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->tabWidget->tabBar()->hide();
|
ui->listView->setEmptyString(tr(
|
||||||
|
"Welcome!\n"
|
||||||
|
"If you're new here, you can click the \"Add\" button to add your Mojang or Minecraft account."
|
||||||
|
));
|
||||||
|
ui->listView->setEmptyMode(VersionListView::String);
|
||||||
|
|
||||||
m_accounts = MMC->accounts();
|
m_accounts = MMC->accounts();
|
||||||
|
|
||||||
@ -64,18 +68,27 @@ AccountListPage::~AccountListPage()
|
|||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AccountListPage::changeEvent(QEvent* event)
|
||||||
|
{
|
||||||
|
if (event->type() == QEvent::LanguageChange)
|
||||||
|
{
|
||||||
|
ui->retranslateUi(this);
|
||||||
|
}
|
||||||
|
QMainWindow::changeEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
void AccountListPage::listChanged()
|
void AccountListPage::listChanged()
|
||||||
{
|
{
|
||||||
updateButtonStates();
|
updateButtonStates();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountListPage::on_addAccountBtn_clicked()
|
void AccountListPage::on_actionAdd_triggered()
|
||||||
{
|
{
|
||||||
addAccount(tr("Please enter your Mojang or Minecraft account username and password to add "
|
addAccount(tr("Please enter your Mojang or Minecraft account username and password to add "
|
||||||
"your account."));
|
"your account."));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountListPage::on_rmAccountBtn_clicked()
|
void AccountListPage::on_actionRemove_triggered()
|
||||||
{
|
{
|
||||||
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
|
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
|
||||||
if (selection.size() > 0)
|
if (selection.size() > 0)
|
||||||
@ -85,7 +98,7 @@ void AccountListPage::on_rmAccountBtn_clicked()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountListPage::on_setDefaultBtn_clicked()
|
void AccountListPage::on_actionSetDefault_triggered()
|
||||||
{
|
{
|
||||||
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
|
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
|
||||||
if (selection.size() > 0)
|
if (selection.size() > 0)
|
||||||
@ -97,7 +110,7 @@ void AccountListPage::on_setDefaultBtn_clicked()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountListPage::on_noDefaultBtn_clicked()
|
void AccountListPage::on_actionNoDefault_triggered()
|
||||||
{
|
{
|
||||||
m_accounts->setActiveAccount("");
|
m_accounts->setActiveAccount("");
|
||||||
}
|
}
|
||||||
@ -107,11 +120,19 @@ void AccountListPage::updateButtonStates()
|
|||||||
// If there is no selection, disable buttons that require something selected.
|
// If there is no selection, disable buttons that require something selected.
|
||||||
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
|
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
|
||||||
|
|
||||||
ui->rmAccountBtn->setEnabled(selection.size() > 0);
|
ui->actionRemove->setEnabled(selection.size() > 0);
|
||||||
ui->setDefaultBtn->setEnabled(selection.size() > 0);
|
ui->actionSetDefault->setEnabled(selection.size() > 0);
|
||||||
ui->uploadSkinBtn->setEnabled(selection.size() > 0);
|
ui->actionUploadSkin->setEnabled(selection.size() > 0);
|
||||||
|
|
||||||
|
if(m_accounts->activeAccount().get() == nullptr) {
|
||||||
|
ui->actionNoDefault->setEnabled(false);
|
||||||
|
ui->actionNoDefault->setChecked(true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ui->actionNoDefault->setEnabled(true);
|
||||||
|
ui->actionNoDefault->setChecked(false);
|
||||||
|
}
|
||||||
|
|
||||||
ui->noDefaultBtn->setDown(m_accounts->activeAccount().get() == nullptr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountListPage::addAccount(const QString &errMsg)
|
void AccountListPage::addAccount(const QString &errMsg)
|
||||||
@ -140,7 +161,7 @@ void AccountListPage::addAccount(const QString &errMsg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountListPage::on_uploadSkinBtn_clicked()
|
void AccountListPage::on_actionUploadSkin_triggered()
|
||||||
{
|
{
|
||||||
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
|
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
|
||||||
if (selection.size() > 0)
|
if (selection.size() > 0)
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QMainWindow>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "pages/BasePage.h"
|
#include "pages/BasePage.h"
|
||||||
@ -30,7 +30,7 @@ class AccountListPage;
|
|||||||
|
|
||||||
class AuthenticateTask;
|
class AuthenticateTask;
|
||||||
|
|
||||||
class AccountListPage : public QWidget, public BasePage
|
class AccountListPage : public QMainWindow, public BasePage
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
@ -59,17 +59,20 @@ public:
|
|||||||
return "Getting-Started#adding-an-account";
|
return "Getting-Started#adding-an-account";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
void changeEvent(QEvent * event) override;
|
||||||
|
|
||||||
public
|
public
|
||||||
slots:
|
slots:
|
||||||
void on_addAccountBtn_clicked();
|
void on_actionAdd_triggered();
|
||||||
|
|
||||||
void on_rmAccountBtn_clicked();
|
void on_actionRemove_triggered();
|
||||||
|
|
||||||
void on_setDefaultBtn_clicked();
|
void on_actionSetDefault_triggered();
|
||||||
|
|
||||||
void on_noDefaultBtn_clicked();
|
void on_actionNoDefault_triggered();
|
||||||
|
|
||||||
void on_uploadSkinBtn_clicked();
|
void on_actionUploadSkin_triggered();
|
||||||
|
|
||||||
void listChanged();
|
void listChanged();
|
||||||
|
|
||||||
|
@ -1,16 +1,20 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>AccountListPage</class>
|
<class>AccountListPage</class>
|
||||||
<widget class="QWidget" name="AccountListPage">
|
<widget class="QMainWindow" name="AccountListPage">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>694</width>
|
<width>800</width>
|
||||||
<height>609</height>
|
<height>600</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
<property name="windowTitle">
|
||||||
|
<string>MainWindow</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralwidget">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
@ -24,99 +28,74 @@
|
|||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="VersionListView" name="listView"/>
|
||||||
<property name="currentIndex">
|
</item>
|
||||||
<number>0</number>
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<widget class="QToolBar" name="toolBar">
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>toolBar</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab">
|
<property name="movable">
|
||||||
<attribute name="title">
|
|
||||||
<string notr="true">Tab 1</string>
|
|
||||||
</attribute>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="welcomeLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string><html><head/><body><p>Welcome! If you're new here, you can click the &quot;Add&quot; button to add your Mojang or Minecraft account.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="wordWrap">
|
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="allowedAreas">
|
||||||
|
<set>Qt::LeftToolBarArea|Qt::RightToolBarArea</set>
|
||||||
|
</property>
|
||||||
|
<property name="toolButtonStyle">
|
||||||
|
<enum>Qt::ToolButtonTextOnly</enum>
|
||||||
|
</property>
|
||||||
|
<property name="floatable">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<attribute name="toolBarArea">
|
||||||
|
<enum>RightToolBarArea</enum>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="toolBarBreak">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
<addaction name="actionAdd"/>
|
||||||
|
<addaction name="actionRemove"/>
|
||||||
|
<addaction name="actionSetDefault"/>
|
||||||
|
<addaction name="actionNoDefault"/>
|
||||||
|
<addaction name="actionUploadSkin"/>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
<action name="actionAdd">
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QTreeView" name="listView"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QVBoxLayout" name="manageAcctsBtnBox">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="addAccountBtn">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Add</string>
|
<string>Add</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</action>
|
||||||
</item>
|
<action name="actionRemove">
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="rmAccountBtn">
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Remove</string>
|
<string>Remove</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</action>
|
||||||
</item>
|
<action name="actionSetDefault">
|
||||||
<item>
|
<property name="text">
|
||||||
<spacer name="buttonSpacer">
|
<string>Set Default</string>
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Vertical</enum>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
</action>
|
||||||
<size>
|
<action name="actionNoDefault">
|
||||||
<width>20</width>
|
<property name="checkable">
|
||||||
<height>40</height>
|
<bool>true</bool>
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="setDefaultBtn">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><html><head/><body><p>Set the currently selected account as the active account. The active account is the account that is used to log in (unless it is overridden in an instance-specific setting).</p></body></html></string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&Set Default</string>
|
<string>No Default</string>
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="noDefaultBtn">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Set no default account. This will cause MultiMC to prompt you to select an account every time you launch an instance that doesn't have its own default set.</string>
|
|
||||||
</property>
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionUploadSkin">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>&No Default</string>
|
<string>Upload Skin</string>
|
||||||
</property>
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
<customwidgets>
|
||||||
<item>
|
<customwidget>
|
||||||
<widget class="QPushButton" name="uploadSkinBtn">
|
<class>VersionListView</class>
|
||||||
<property name="toolTip">
|
<extends>QTreeView</extends>
|
||||||
<string>Opens a dialog to select and upload a skin image to the selected account.</string>
|
<header>widgets/VersionListView.h</header>
|
||||||
</property>
|
</customwidget>
|
||||||
<property name="text">
|
</customwidgets>
|
||||||
<string>&Upload Skin</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
@ -29,9 +29,8 @@ VersionListView::VersionListView(QWidget *parent)
|
|||||||
|
|
||||||
void VersionListView::rowsInserted(const QModelIndex &parent, int start, int end)
|
void VersionListView::rowsInserted(const QModelIndex &parent, int start, int end)
|
||||||
{
|
{
|
||||||
if(!m_itemCount)
|
|
||||||
viewport()->update();
|
|
||||||
m_itemCount += end-start+1;
|
m_itemCount += end-start+1;
|
||||||
|
updateEmptyViewPort();
|
||||||
QTreeView::rowsInserted(parent, start, end);
|
QTreeView::rowsInserted(parent, start, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,16 +38,14 @@ void VersionListView::rowsInserted(const QModelIndex &parent, int start, int end
|
|||||||
void VersionListView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
|
void VersionListView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
|
||||||
{
|
{
|
||||||
m_itemCount -= end-start+1;
|
m_itemCount -= end-start+1;
|
||||||
if(!m_itemCount)
|
updateEmptyViewPort();
|
||||||
viewport()->update();
|
|
||||||
QTreeView::rowsInserted(parent, start, end);
|
QTreeView::rowsInserted(parent, start, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VersionListView::setModel(QAbstractItemModel *model)
|
void VersionListView::setModel(QAbstractItemModel *model)
|
||||||
{
|
{
|
||||||
m_itemCount = model->rowCount();
|
m_itemCount = model->rowCount();
|
||||||
if(!m_itemCount)
|
updateEmptyViewPort();
|
||||||
viewport()->update();
|
|
||||||
QTreeView::setModel(model);
|
QTreeView::setModel(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,7 +55,10 @@ void VersionListView::reset()
|
|||||||
{
|
{
|
||||||
m_itemCount = model()->rowCount();
|
m_itemCount = model()->rowCount();
|
||||||
}
|
}
|
||||||
viewport()->update();
|
else {
|
||||||
|
m_itemCount = 0;
|
||||||
|
}
|
||||||
|
updateEmptyViewPort();
|
||||||
QTreeView::reset();
|
QTreeView::reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,6 +82,8 @@ void VersionListView::setEmptyMode(VersionListView::EmptyMode mode)
|
|||||||
|
|
||||||
void VersionListView::updateEmptyViewPort()
|
void VersionListView::updateEmptyViewPort()
|
||||||
{
|
{
|
||||||
|
setAccessibleDescription(currentEmptyString());
|
||||||
|
|
||||||
if(!m_itemCount)
|
if(!m_itemCount)
|
||||||
{
|
{
|
||||||
viewport()->update();
|
viewport()->update();
|
||||||
@ -100,20 +102,28 @@ void VersionListView::paintEvent(QPaintEvent *event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void VersionListView::paintInfoLabel(QPaintEvent *event)
|
QString VersionListView::currentEmptyString() const
|
||||||
{
|
{
|
||||||
QString emptyString;
|
if(m_itemCount) {
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
switch(m_emptyMode)
|
switch(m_emptyMode)
|
||||||
{
|
{
|
||||||
|
default:
|
||||||
case VersionListView::Empty:
|
case VersionListView::Empty:
|
||||||
return;
|
return QString();
|
||||||
case VersionListView::String:
|
case VersionListView::String:
|
||||||
emptyString = m_emptyString;
|
return m_emptyString;
|
||||||
break;
|
|
||||||
case VersionListView::ErrorString:
|
case VersionListView::ErrorString:
|
||||||
emptyString = m_emptyErrorString;
|
return m_emptyErrorString;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void VersionListView::paintInfoLabel(QPaintEvent *event) const
|
||||||
|
{
|
||||||
|
QString emptyString = currentEmptyString();
|
||||||
|
|
||||||
//calculate the rect for the overlay
|
//calculate the rect for the overlay
|
||||||
QPainter painter(viewport());
|
QPainter painter(viewport());
|
||||||
painter.setRenderHint(QPainter::Antialiasing, true);
|
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||||
@ -122,55 +132,30 @@ void VersionListView::paintInfoLabel(QPaintEvent *event)
|
|||||||
|
|
||||||
QRect bounds = viewport()->geometry();
|
QRect bounds = viewport()->geometry();
|
||||||
bounds.moveTop(0);
|
bounds.moveTop(0);
|
||||||
QTextLayout layout(emptyString, font);
|
auto innerBounds = bounds;
|
||||||
qreal height = 0.0;
|
innerBounds.adjust(10, 10, -10, -10);
|
||||||
qreal widthUsed = 0.0;
|
|
||||||
QStringList lines = viewItemTextLayout(layout, bounds.width() - 20, height, widthUsed);
|
|
||||||
QRect rect (0,0, widthUsed, height);
|
|
||||||
rect.setWidth(rect.width()+20);
|
|
||||||
rect.setHeight(rect.height()+20);
|
|
||||||
rect.moveCenter(bounds.center());
|
|
||||||
//check if we are allowed to draw in our area
|
|
||||||
if (!event->rect().intersects(rect)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
//draw the letter of the topmost item semitransparent in the middle
|
|
||||||
QColor background = QApplication::palette().color(QPalette::Foreground);
|
QColor background = QApplication::palette().color(QPalette::Foreground);
|
||||||
QColor foreground = QApplication::palette().color(QPalette::Base);
|
QColor foreground = QApplication::palette().color(QPalette::Base);
|
||||||
/*
|
foreground.setAlpha(190);
|
||||||
background.setAlpha(128 - scrollFade);
|
painter.setFont(font);
|
||||||
foreground.setAlpha(128 - scrollFade);
|
auto fontMetrics = painter.fontMetrics();
|
||||||
*/
|
auto textRect = fontMetrics.boundingRect(innerBounds, Qt::AlignHCenter | Qt::TextWordWrap, emptyString);
|
||||||
|
textRect.moveCenter(bounds.center());
|
||||||
|
|
||||||
|
auto wrapRect = textRect;
|
||||||
|
wrapRect.adjust(-10, -10, 10, 10);
|
||||||
|
|
||||||
|
//check if we are allowed to draw in our area
|
||||||
|
if (!event->rect().intersects(wrapRect)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
painter.setBrush(QBrush(background));
|
painter.setBrush(QBrush(background));
|
||||||
painter.setPen(foreground);
|
painter.setPen(foreground);
|
||||||
painter.drawRoundedRect(rect, 5.0, 5.0);
|
painter.drawRoundedRect(wrapRect, 5.0, 5.0);
|
||||||
foreground.setAlpha(190);
|
|
||||||
painter.setPen(foreground);
|
painter.setPen(foreground);
|
||||||
painter.setFont(font);
|
painter.setFont(font);
|
||||||
painter.drawText(rect, Qt::AlignCenter, lines.join("\n"));
|
painter.drawText(textRect, Qt::AlignHCenter | Qt::TextWordWrap, emptyString);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
void ModListView::setModel ( QAbstractItemModel* model )
|
|
||||||
{
|
|
||||||
QTreeView::setModel ( model );
|
|
||||||
auto head = header();
|
|
||||||
head->setStretchLastSection(false);
|
|
||||||
// HACK: this is true for the checkbox column of mod lists
|
|
||||||
auto string = model->headerData(0,head->orientation()).toString();
|
|
||||||
if(!string.size())
|
|
||||||
{
|
|
||||||
head->setSectionResizeMode(0, QHeaderView::ResizeToContents);
|
|
||||||
head->setSectionResizeMode(1, QHeaderView::Stretch);
|
|
||||||
for(int i = 2; i < head->count(); i++)
|
|
||||||
head->setSectionResizeMode(i, QHeaderView::ResizeToContents);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
head->setSectionResizeMode(0, QHeaderView::Stretch);
|
|
||||||
for(int i = 1; i < head->count(); i++)
|
|
||||||
head->setSectionResizeMode(i, QHeaderView::ResizeToContents);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
@ -46,8 +46,9 @@ protected slots:
|
|||||||
virtual void rowsInserted(const QModelIndex &parent, int start, int end) override;
|
virtual void rowsInserted(const QModelIndex &parent, int start, int end) override;
|
||||||
|
|
||||||
private: /* methods */
|
private: /* methods */
|
||||||
void paintInfoLabel(QPaintEvent *event);
|
void paintInfoLabel(QPaintEvent *event) const;
|
||||||
void updateEmptyViewPort();
|
void updateEmptyViewPort();
|
||||||
|
QString currentEmptyString() const;
|
||||||
|
|
||||||
private: /* variables */
|
private: /* variables */
|
||||||
int m_itemCount = 0;
|
int m_itemCount = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user