diff --git a/src/cantor.cpp b/src/cantor.cpp index d99e648219288ff9eb2a1de5db03ec805c538628..aea5659a01172375869f228f31f4b3c895b9f817 100644 --- a/src/cantor.cpp +++ b/src/cantor.cpp @@ -351,6 +351,9 @@ void CantorShell::addWorksheet(const QString& backendName) // Setting focus on worksheet view, because Qt clear focus of added widget inside addTab // This fix https://bugs.kde.org/show_bug.cgi?id=395976 part->widget()->findChild()->setFocus(); + + // Force run updateCaption for getting proper backend icon + QMetaObject::invokeMethod(part, "updateCaption"); } else { @@ -405,12 +408,11 @@ void CantorShell::activateWorksheet(int index) void CantorShell::setTabCaption(const QString& caption, const QIcon& icon) { - if (caption.isEmpty()) return; - KParts::ReadWritePart* part=dynamic_cast(sender()); if (part) { - m_tabWidget->setTabText(m_tabWidget->indexOf(part->widget()), caption); + if (!caption.isEmpty()) + m_tabWidget->setTabText(m_tabWidget->indexOf(part->widget()), caption); m_tabWidget->setTabIcon(m_tabWidget->indexOf(part->widget()), icon); } } diff --git a/src/cantor_part.cpp b/src/cantor_part.cpp index e8b4e104be2a9d3df7da7507d4001ef1f8c2dfbb..503ef6f6b371cf08e7ea20ccbd3d1451bbbb83a1 100644 --- a/src/cantor_part.cpp +++ b/src/cantor_part.cpp @@ -724,11 +724,11 @@ void CantorPart::updateCaption() //strip away the extension filename=filename.left(filename.lastIndexOf(QLatin1Char('.'))); - if (filename.isEmpty()) - filename = i18n("Unnamed"); - if (!m_worksheet->isReadOnly()) - emit setCaption(filename, QIcon::fromTheme(m_worksheet->session()->backend()->icon())); + { + if (m_worksheet->session()) + emit setCaption(filename, QIcon::fromTheme(m_worksheet->session()->backend()->icon())); + } else emit setCaption(filename+QLatin1Char(' ') + i18n("[read-only]"), QIcon()); } diff --git a/src/cantor_part.h b/src/cantor_part.h index ef68e7896c269434e3ad74279f692599a20cc03b..452198ac9298d69697848676f4afc74e63bc4133 100644 --- a/src/cantor_part.h +++ b/src/cantor_part.h @@ -84,6 +84,9 @@ Q_SIGNALS: void showHelp(const QString& help); void worksheetSave(const QUrl& url); +public Q_SLOTS: + void updateCaption(); + protected: /** * This must be implemented by each part @@ -123,7 +126,6 @@ protected Q_SLOTS: void worksheetSessionLoginStarted(); void worksheetSessionLoginDone(); void initialized(); - void updateCaption(); void pluginsChanged(); void runCommand(const QString& value);