From 6ea9fdde3f61c788936a70ef2310fc5f402e0ca5 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 18 Aug 2014 14:44:28 +0200 Subject: [PATCH] + fixes #0001689: Show name of the drawing page in the tab of the drawing --- src/Mod/Drawing/Gui/DrawingView.cpp | 21 ++++++++++++++++----- src/Mod/Drawing/Gui/ViewProviderPage.cpp | 18 +++++++++++++++++- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/Mod/Drawing/Gui/DrawingView.cpp b/src/Mod/Drawing/Gui/DrawingView.cpp index 2fc8851d7a..9242b88046 100644 --- a/src/Mod/Drawing/Gui/DrawingView.cpp +++ b/src/Mod/Drawing/Gui/DrawingView.cpp @@ -349,11 +349,22 @@ bool DrawingView::onHasMsg(const char* pMsg) const void DrawingView::onRelabel(Gui::Document *pDoc) { - const char* name = pDoc->getDocument()->Label.getValue(); - QString title = QString::fromAscii("%1 : %2[*]") - .arg(QString::fromUtf8(name)) - .arg(tr("Drawing")); - this->setWindowTitle(title); + if (!bIsPassive) { + // Try to separate document name and object name if there is one + QString cap = windowTitle(); + QRegExp rx(QString::fromLatin1(" : (\\w|\\s){1,}(\\[\\*\\]){0,1}$")); + int pos = rx.lastIndexIn(cap); + if (pos != -1) { + cap = QString::fromUtf8(pDoc->getDocument()->Label.getValue()); + cap += rx.cap(); + setWindowTitle(cap); + } + else { + cap = QString::fromUtf8(pDoc->getDocument()->Label.getValue()); + cap = QString::fromAscii("%1[*]").arg(cap); + setWindowTitle(cap); + } + } } void DrawingView::printPdf() diff --git a/src/Mod/Drawing/Gui/ViewProviderPage.cpp b/src/Mod/Drawing/Gui/ViewProviderPage.cpp index 2047129055..0e576e9e9e 100644 --- a/src/Mod/Drawing/Gui/ViewProviderPage.cpp +++ b/src/Mod/Drawing/Gui/ViewProviderPage.cpp @@ -104,6 +104,16 @@ void ViewProviderDrawingPage::updateData(const App::Property* prop) view->viewAll(); } } + else if (pcObject && prop == &pcObject->Label) { + if (view){ + const char* docname = pcObject->getDocument()->Label.getValue(); + const char* objname = pcObject->Label.getValue(); + QString title = QString::fromAscii("%1 : %2[*]") + .arg(QString::fromUtf8(docname)) + .arg(QString::fromUtf8(objname)); + view->setWindowTitle(title); + } + } } void ViewProviderDrawingPage::setupContextMenu(QMenu* menu, QObject* receiver, const char* member) @@ -136,7 +146,13 @@ DrawingView* ViewProviderDrawingPage::showDrawingView() (this->pcObject->getDocument()); view = new DrawingView(doc, Gui::getMainWindow()); view->setWindowIcon(Gui::BitmapFactory().pixmap("actions/drawing-landscape")); - view->onRelabel(doc); + + const char* docname = pcObject->getDocument()->Label.getValue(); + const char* objname = pcObject->Label.getValue(); + QString title = QString::fromAscii("%1 : %2[*]") + .arg(QString::fromUtf8(docname)) + .arg(QString::fromUtf8(objname)); + view->setWindowTitle(title); Gui::getMainWindow()->addWindow(view); }