Author: jghali
Date: Sat Oct 12 23:54:44 2013
New Revision: 18550

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=18550
Log:
#11777: master page rename on double click

Modified:
    trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp

Modified: trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=18550&path=/trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp (original)
+++ trunk/Scribus/scribus/ui/pagepalette_masterpages.cpp Sat Oct 12 23:54:44 
2013
@@ -102,7 +102,7 @@
        connect(importButton   , SIGNAL(clicked()), this, SLOT(importPage()));
        connect(masterPageListBox, SIGNAL(itemClicked(QListWidgetItem*)),
                         this, SLOT(selectMasterPage(QListWidgetItem*)));
-       connect(masterPageListBox, SIGNAL(itemDoubleClicked(QListWidgetItem*)),
+       connect(masterPageListBox, SIGNAL(itemChanged(QListWidgetItem*)),
                         this, SLOT(renameMasterPage( QListWidgetItem*)));
        connect(finishButton   , SIGNAL(released()), this, SIGNAL(finished()));
 }
@@ -115,7 +115,7 @@
        disconnect(importButton   , SIGNAL(clicked()), this, 
SLOT(importPage()));
        disconnect(masterPageListBox, SIGNAL(itemClicked(QListWidgetItem*)),
                           this, SLOT(selectMasterPage(QListWidgetItem*)));
-       disconnect(masterPageListBox, 
SIGNAL(itemDoubleClicked(QListWidgetItem*)),
+       disconnect(masterPageListBox, SIGNAL(itemChanged(QListWidgetItem*)),
                           this, SLOT(renameMasterPage( QListWidgetItem*)));
        disconnect(finishButton   , SIGNAL(released()), this, 
SIGNAL(finished()));
 }
@@ -448,7 +448,26 @@
 
        masterPageListBox->clear();
        for (QMap<QString,int>::Iterator it = m_doc->MasterNames.begin(); it != 
m_doc->MasterNames.end(); ++it)
-               masterPageListBox->addItem(it.key() == 
CommonStrings::masterPageNormal ? CommonStrings::trMasterPageNormal : it.key());
+       {
+               QString mpName = it.key();
+               qDebug() << mpName;
+               if (it.key() == CommonStrings::masterPageNormal)
+                       CommonStrings::trMasterPageNormal;
+               QListWidgetItem* mpItem = new QListWidgetItem(mpName);
+               if ((mpName != CommonStrings::masterPageNormal)  && (mpName != 
CommonStrings::trMasterPageNormal) &&
+                       (mpName != CommonStrings::masterPageNormalLeft)  && 
(mpName != CommonStrings::trMasterPageNormalLeft) &&
+                       (mpName != CommonStrings::masterPageNormalMiddle) && 
(mpName != CommonStrings::trMasterPageNormalMiddle) &&
+                       (mpName != CommonStrings::masterPageNormalRight)  && 
(mpName != CommonStrings::trMasterPageNormalRight))
+               {
+                       mpItem->setFlags(mpItem->flags() |= Qt::ItemIsEditable);
+               }
+               else
+               {
+                       mpItem->setFlags(mpItem->flags() &= 
~Qt::ItemIsEditable);
+               }
+               mpItem->setData(Qt::UserRole, it.key());
+               masterPageListBox->addItem(mpItem);
+       }
        deleteButton->setEnabled(m_doc->MasterNames.count() == 1 ? false : 
true);
        if (masterPageName == CommonStrings::masterPageNormal)
        {
@@ -462,19 +481,45 @@
 
 void PagePalette_MasterPages::renameMasterPage(QListWidgetItem * item)
 {
-       QString oldName(item->text());
-       if ((oldName == CommonStrings::masterPageNormal) || (oldName == 
CommonStrings::trMasterPageNormal) || (oldName == 
CommonStrings::trMasterPageNormalLeft) || (oldName == 
CommonStrings::trMasterPageNormalMiddle) || (oldName == 
CommonStrings::trMasterPageNormalRight))
+       bool success = true;
+       QString oldName(item->data(Qt::UserRole).toString());
+       QString newName(item->text());
+       if (oldName == newName)
+               return;
+
+       bool sigBlocked = masterPageListBox->blockSignals(true);
+       if ((newName == CommonStrings::masterPageNormal) || (newName == 
CommonStrings::trMasterPageNormal) ||
+               (newName == CommonStrings::masterPageNormalLeft)   || (newName 
== CommonStrings::trMasterPageNormalLeft) ||
+               (newName == CommonStrings::masterPageNormalMiddle) || (newName 
== CommonStrings::trMasterPageNormalMiddle) ||
+               (newName == CommonStrings::masterPageNormalRight)  || (newName 
== CommonStrings::trMasterPageNormalRight))
        {
                QMessageBox::information( this, tr("Unable to Rename Master 
Page"), tr("The Normal page is not allowed to be renamed."), QMessageBox::Ok );
+               success = false;
+       }
+       if (newName.isEmpty())
+               success = false;
+
+       if (success)
+               success = m_doc->renameMasterPage(oldName, newName);
+       if (success)
+       {
+               item->setData(Qt::UserRole, newName);
+               masterPageListBox->blockSignals(sigBlocked);
+               updateMasterPageList(newName);
                return;
        }
-       bool ok;
-       QString newName = QInputDialog::getText( this, tr("Rename Master 
Page"), tr("New Name:"), QLineEdit::Normal, oldName, &ok);
-       if (ok && !newName.isEmpty())
-       {
-               if (m_doc->renameMasterPage( oldName, newName))
-                       updateMasterPageList(newName);
-       }
+
+       QString masterPageName = oldName;
+       if (masterPageName == CommonStrings::masterPageNormal)
+               masterPageName = CommonStrings::trMasterPageNormal;
+       if (masterPageName == CommonStrings::masterPageNormalLeft)
+               masterPageName = CommonStrings::trMasterPageNormalLeft;
+       if (masterPageName == CommonStrings::masterPageNormalMiddle)
+               masterPageName = CommonStrings::trMasterPageNormalMiddle;
+       if (masterPageName == CommonStrings::masterPageNormalRight)
+               masterPageName = CommonStrings::trMasterPageNormalRight;
+       item->setText(masterPageName);
+       masterPageListBox->blockSignals(sigBlocked);
 }
 
 


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to