Author: jghali
Date: Sun Aug  9 09:59:29 2020
New Revision: 23976

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=23976
Log:
#16209: Modifications in Document Setup->Tables of Contents not being applied

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

Modified: trunk/Scribus/scribus/ui/prefs_tableofcontents.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=23976&path=/trunk/Scribus/scribus/ui/prefs_tableofcontents.cpp
==============================================================================
--- trunk/Scribus/scribus/ui/prefs_tableofcontents.cpp  (original)
+++ trunk/Scribus/scribus/ui/prefs_tableofcontents.cpp  Sun Aug  9 09:59:29 2020
@@ -5,12 +5,14 @@
 for which a new license (GPL+exception) is in place.
 */
 
+#include <QSignalBlocker>
+
+#include "commonstrings.h"
 #include "ui/prefs_tableofcontents.h"
 #include "pagestructs.h"
 #include "prefsstructs.h"
 #include "scpage.h"
 #include "scribusdoc.h"
-#include "commonstrings.h"
 #include "util.h"
 
 Prefs_TableOfContents::Prefs_TableOfContents(QWidget* parent, ScribusDoc* doc)
@@ -38,6 +40,13 @@
        connect( itemNumberPlacementComboBox, SIGNAL( activated(const QString&) 
), this, SLOT( itemPageNumberPlacedSelected(const QString&)));
        connect( tocNameLineEdit, SIGNAL( textChanged(const QString&)), this, 
SLOT( setToCName(const QString&)));
        connect( itemListNonPrintingCheckBox, SIGNAL( toggled(bool) ), this, 
SLOT( nonPrintingFramesSelected(bool)));
+
+       itemAttrComboBox->setEnabled(false);
+       itemDestFrameComboBox->setEnabled(false);
+       itemParagraphStyleComboBox->setEnabled(false);
+       itemNumberPlacementComboBox->setEnabled(false);
+       itemListNonPrintingCheckBox->setEnabled(false);
+
        setCurrentComboItem(itemNumberPlacementComboBox, trStrPNEnd);
        numSelected = 999;
 }
@@ -62,7 +71,7 @@
        {
                updateToCListBox();
                updateParagraphStyleComboBox();
-               tocListBox->setCurrentItem(nullptr);
+               tocListBox->setCurrentRow(0);
                selectToC(0);
        }
        else
@@ -86,7 +95,7 @@
        strPNNotShown = "Not Shown";
 
        disconnect(itemNumberPlacementComboBox, SIGNAL(activated(const 
QString&)), this, SLOT(itemPageNumberPlacedSelected(const QString&)));
-       int i=itemNumberPlacementComboBox->currentIndex();
+       int i = itemNumberPlacementComboBox->currentIndex();
        itemNumberPlacementComboBox->clear();
        itemNumberPlacementComboBox->addItem(trStrPNEnd);
        itemNumberPlacementComboBox->addItem(trStrPNBeginning);
@@ -133,7 +142,7 @@
        itemAttrComboBox->clear();
        itemAttrComboBox->addItem(CommonStrings::tr_None);
        itemAttrComboBox->addItems(newNames);
-       if (numSelected!=999 && numSelected != -1)
+       if (numSelected != 999 && numSelected != -1)
        {
                if (localToCSetupVector[numSelected].itemAttrName == 
CommonStrings::None)
                        setCurrentComboItem(itemAttrComboBox, 
CommonStrings::tr_None);
@@ -147,7 +156,10 @@
 {
        numSelected = numberSelected;
        if (numSelected < 0)
-               return;
+       {
+               enableGUIWidgets();
+               return;
+       }
        if (localToCSetupVector.isEmpty())
                return;
        if (localToCSetupVector.count() < numSelected)
@@ -261,11 +273,14 @@
 {
        bool enabled = (localToCSetupVector.count() > 0);
        tocListBox->setEnabled(enabled);
-       tocDeleteButton->setEnabled(enabled);
-       itemAttrComboBox->setEnabled(enabled);
-       itemNumberPlacementComboBox->setEnabled(enabled);
-
-       bool haveDoc = (enabled && m_Doc != nullptr);
+
+       bool haveCurrToc = (enabled && (tocListBox->currentRow() >=0));
+       tocDeleteButton->setEnabled(haveCurrToc);
+       itemAttrComboBox->setEnabled(haveCurrToc);
+       itemNumberPlacementComboBox->setEnabled(haveCurrToc);
+       itemListNonPrintingCheckBox->setEnabled(haveCurrToc);
+
+       bool haveDoc = (haveCurrToc && m_Doc != nullptr);
        itemDestFrameComboBox->setEnabled(haveDoc);
        itemParagraphStyleComboBox->setEnabled(haveDoc);
 }
@@ -285,7 +300,19 @@
                ++i;
        }
        localToCSetupVector.erase(it);
+
+       QSignalBlocker sigBlocker(tocListBox);
        updateToCListBox();
+       if (numberSelected > 0)
+       {
+               tocListBox->setCurrentRow(numberSelected - 1);
+               selectToC(numberSelected - 1);
+       }
+       else if (numberSelected == 0 && localToCSetupVector.count() > 0)
+       {
+               tocListBox->setCurrentRow(0);
+               selectToC(0);
+       }
        enableGUIWidgets();
 }
 


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

Reply via email to