OSDN Git Service

[denncoCreator] prepare for supporting external editors for the code editor.
[dennco/denncoCreator.git] / Source / codeeditor / dccellscriptseditortabwidget.cpp
index 54cc057..09ea1a9 100644 (file)
@@ -151,10 +151,7 @@ void DCCellScriptsEditorTabWidget::slotTabPageContentModifiedStatusChanged(QWidg
     QMap<QWidget*, DCCell*>::iterator it = d_targets.find(tabPage);
     if (it != d_targets.end())
     {
-        QString tabTitle = QString::fromStdString(it.value()->getName());
-        if (modified)
-            tabTitle.append(" * ");
-        setTabText(index, tabTitle);
+        setTabText(index, getTabTitle(it.value(), tabPage));
         emit editTabContentModifiedStatusChanged(it.value(), modified);
     }
 }
@@ -174,7 +171,7 @@ void DCCellScriptsEditorTabWidget::slotTabPageContentSaved(QWidget *tabPage)
     QMap<QWidget*, DCCell*>::iterator it = d_targets.find(tabPage);
     if (it != d_targets.end())
     {
-        QString tabTitle = QString::fromStdString(it.value()->getName());
+        QString tabTitle = getTabTitle(it.value(), tabPage);
         setTabText(index, tabTitle);
 
         emit editTabContentModifiedStatusChanged(it.value(), false);
@@ -193,6 +190,16 @@ void DCCellScriptsEditorTabWidget::setCurrentTabReadOnly(bool readOnly)
     }
 }
 
+QString DCCellScriptsEditorTabWidget::getTabTitle(DCCell *cell, QWidget *tabPageWidget)
+{
+    QString tabTitle = QString::fromStdString(cell->getName());
+    DCCellScriptsEditorPageWidget *w = dynamic_cast<DCCellScriptsEditorPageWidget*>(tabPageWidget);
+    if (w && w->getIsModified())
+        tabTitle.append(" * ");
+
+    return tabTitle;
+}
+
 void DCCellScriptsEditorTabWidget::openTab(DCCell *target, bool focusInCellCodeScriptFirst)
 {
     DCCellScriptsEditorPageWidget *targetWidget = NULL;
@@ -219,7 +226,8 @@ void DCCellScriptsEditorTabWidget::openTab(DCCell *target, bool focusInCellCodeS
     {
         targetWidget = new DCCellScriptsEditorPageWidget(target, this);
         d_targets.insert(targetWidget, target);
-        setCurrentIndex(addTab(targetWidget, QString::fromStdString(target->getName())));
+
+        setCurrentIndex(addTab(targetWidget, getTabTitle(target, targetWidget)));
         connect(targetWidget, SIGNAL(editingCellDestroyed(DCCell*)), this, SLOT(slotCellDestroyed(DCCell*)));
         connect(targetWidget, SIGNAL(cellScriptsModifiedStatusChanged(QWidget*, bool)), this, SLOT(slotTabPageContentModifiedStatusChanged(QWidget*, bool)));
         connect(targetWidget, SIGNAL(cellScriptsSaved(QWidget*)), this, SLOT(slotTabPageContentSaved(QWidget*)));