FancyTabWidget: Set tab text after setting data
Fixes crash when enabling a tab.
This commit is contained in:
@@ -93,8 +93,8 @@ bool FancyTabWidget::EnableTab(QWidget *widget_view) {
|
|||||||
FancyTabData *tab = tabs_.value(widget_view);
|
FancyTabData *tab = tabs_.value(widget_view);
|
||||||
|
|
||||||
if (QTabWidget::indexOf(tab->page()) >= 0) return true;
|
if (QTabWidget::indexOf(tab->page()) >= 0) return true;
|
||||||
const int idx = QTabWidget::insertTab(count(), tab->page(), tab->icon(), tab->label());
|
|
||||||
tabBar()->setTabData(idx, QVariant(tab->name()));
|
(void)InsertTab(count(), tab);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -126,11 +126,8 @@ void FancyTabWidget::LoadSettings(const QString &settings_group) {
|
|||||||
}
|
}
|
||||||
s.endGroup();
|
s.endGroup();
|
||||||
|
|
||||||
QMultiMap <int, FancyTabData*> ::iterator i;
|
for (QMultiMap <int, FancyTabData*> ::iterator it = tabs.begin(); it != tabs.end(); ++it) {
|
||||||
for (i = tabs.begin(); i != tabs.end(); ++i) {
|
(void)InsertTab(it.key(), it.value());
|
||||||
FancyTabData *tab = i.value();
|
|
||||||
const int idx = insertTab(i.key(), tab->page(), tab->icon(), tab->label());
|
|
||||||
tabBar()->setTabData(idx, QVariant::fromValue<FancyTabData*>(tab));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -208,15 +205,13 @@ void FancyTabWidget::SetMode(const Mode mode) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ((previous_mode == Mode::IconOnlyTabs || previous_mode == Mode::IconsSidebar) &&
|
if ((previous_mode == Mode::IconOnlyTabs || previous_mode == Mode::IconsSidebar) && (mode != Mode::IconOnlyTabs && mode != Mode::IconsSidebar)) {
|
||||||
(mode != Mode::IconOnlyTabs && mode != Mode::IconsSidebar)) {
|
|
||||||
for (int i = 0; i < count(); ++i) {
|
for (int i = 0; i < count(); ++i) {
|
||||||
tabBar()->setTabText(i, tabBar()->tabData(i).value<FancyTabData*>()->label());
|
tabBar()->setTabText(i, tabBar()->tabData(i).value<FancyTabData*>()->label());
|
||||||
tabBar()->setTabToolTip(i, ""_L1);
|
tabBar()->setTabToolTip(i, ""_L1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ((previous_mode != Mode::IconOnlyTabs && previous_mode != Mode::IconsSidebar) &&
|
else if ((previous_mode != Mode::IconOnlyTabs && previous_mode != Mode::IconsSidebar) && (mode == Mode::IconOnlyTabs || mode == Mode::IconsSidebar)) {
|
||||||
(mode == Mode::IconOnlyTabs || mode == Mode::IconsSidebar)) {
|
|
||||||
for (int i = 0; i < count(); ++i) {
|
for (int i = 0; i < count(); ++i) {
|
||||||
tabBar()->setTabText(i, ""_L1);
|
tabBar()->setTabText(i, ""_L1);
|
||||||
tabBar()->setTabToolTip(i, tabBar()->tabData(i).value<FancyTabData*>()->label());
|
tabBar()->setTabToolTip(i, tabBar()->tabData(i).value<FancyTabData*>()->label());
|
||||||
@@ -233,6 +228,28 @@ void FancyTabWidget::SetMode(const Mode mode) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int FancyTabWidget::InsertTab(const int preffered_index, FancyTabData *tab) {
|
||||||
|
|
||||||
|
const int actual_index = InsertTab(preffered_index, tab->page(), tab->icon(), QString());
|
||||||
|
tabBar()->setTabData(actual_index, QVariant::fromValue<FancyTabData*>(tab));
|
||||||
|
|
||||||
|
if (mode_ == Mode::IconOnlyTabs || mode_ == Mode::IconsSidebar) {
|
||||||
|
for (int i = 0; i < count(); ++i) {
|
||||||
|
tabBar()->setTabText(i, ""_L1);
|
||||||
|
tabBar()->setTabToolTip(i, tabBar()->tabData(i).value<FancyTabData*>()->label());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (int i = 0; i < count(); ++i) {
|
||||||
|
tabBar()->setTabText(i, tabBar()->tabData(i).value<FancyTabData*>()->label());
|
||||||
|
tabBar()->setTabToolTip(i, ""_L1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return actual_index;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int FancyTabWidget::InsertTab(const int idx, QWidget *page, const QIcon &icon, const QString &label) {
|
int FancyTabWidget::InsertTab(const int idx, QWidget *page, const QIcon &icon, const QString &label) {
|
||||||
return QTabWidget::insertTab(idx, page, icon, label);
|
return QTabWidget::insertTab(idx, page, icon, label);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ class FancyTabWidget : public QTabWidget {
|
|||||||
int iconsize_largesidebar() const { return iconsize_largesidebar_; }
|
int iconsize_largesidebar() const { return iconsize_largesidebar_; }
|
||||||
|
|
||||||
void AddTab(QWidget *widget_view, const QString &name, const QIcon &icon, const QString &label);
|
void AddTab(QWidget *widget_view, const QString &name, const QIcon &icon, const QString &label);
|
||||||
|
|
||||||
bool EnableTab(QWidget *widget_view);
|
bool EnableTab(QWidget *widget_view);
|
||||||
bool DisableTab(QWidget *widget_view);
|
bool DisableTab(QWidget *widget_view);
|
||||||
|
|
||||||
@@ -64,7 +65,9 @@ class FancyTabWidget : public QTabWidget {
|
|||||||
void SaveSettings(const QString &settings_group);
|
void SaveSettings(const QString &settings_group);
|
||||||
void ReloadSettings();
|
void ReloadSettings();
|
||||||
|
|
||||||
|
int InsertTab(const int preffered_index, FancyTabData *tab);
|
||||||
int InsertTab(const int idx, QWidget *page, const QIcon &icon, const QString &label);
|
int InsertTab(const int idx, QWidget *page, const QIcon &icon, const QString &label);
|
||||||
|
|
||||||
void AddSpacer();
|
void AddSpacer();
|
||||||
void AddBottomWidget(QWidget *widget_view);
|
void AddBottomWidget(QWidget *widget_view);
|
||||||
void SetBackgroundPixmap(const QPixmap &pixmap);
|
void SetBackgroundPixmap(const QPixmap &pixmap);
|
||||||
|
|||||||
Reference in New Issue
Block a user