void PropertyWidget_Distance::handleTabs() { if (m_doc && m_item) { PageItem_TextFrame *tItem = m_item->asTextFrame(); if (tItem == 0) return; const ParagraphStyle& style(m_doc->appMode == modeEdit ? tItem->currentStyle() : tItem->itemText.defaultStyle()); TabManager *dia = new TabManager(this, m_doc->unitIndex(), style.tabValues(), tItem->columnWidth()); if (dia->exec()) { if (m_doc->appMode != modeEdit) { ParagraphStyle newStyle(m_item->itemText.defaultStyle()); newStyle.setTabValues(dia->tmpTab); Selection tempSelection(this, false); tempSelection.addItem(m_item, true); m_doc->itemSelection_ApplyParagraphStyle(newStyle, &tempSelection); } else { ParagraphStyle newStyle; newStyle.setTabValues(dia->tmpTab); m_doc->itemSelection_ApplyParagraphStyle(newStyle); } m_item->update(); } delete dia; } }
void PropertyWidget_Distance::setCurrentItem(PageItem *item) { if (!m_ScMW || m_ScMW->scriptIsRunning()) return; //CB We shouldn't really need to process this if our item is the same one //maybe we do if the item has been changed by scripter.. but that should probably //set some status if so. //FIXME: This won't work until when a canvas deselect happens, m_item must be NULL. //if (m_item == i) // return; if (item && m_doc.isNull()) setDoc(item->doc()); m_item = item; disconnectSignals(); configureWidgets(); if (!m_item) return; PageItem_TextFrame *textItem = m_item->asTextFrame(); if (m_doc->appMode == modeEditTable) textItem = m_item->asTable()->activeCell().textFrame(); if (!textItem) return; columns->setMaximum(qMax(qRound(textItem->width() / qMax(textItem->ColGap, 10.0)), 1)); columns->setMinimum(1); columns->setValue(textItem->Cols); columnGap->setMinimum(0); if (columnGapLabel->currentIndex() == 0) { columnGap->setMaximum(qMax((textItem->width() / textItem->Cols - textItem->textToFrameDistLeft() - textItem->textToFrameDistRight()) * m_unitRatio, 0.0)); columnGap->setValue(textItem->ColGap*m_unitRatio); } else { columnGap->setMaximum(qMax((textItem->width() / textItem->Cols) * m_unitRatio, 0.0)); columnGap->setValue(textItem->columnWidth() * m_unitRatio); } leftDistance->setValue(textItem->textToFrameDistLeft()*m_unitRatio); topDistance->setValue(textItem->textToFrameDistTop()*m_unitRatio); bottomDistance->setValue(textItem->textToFrameDistBottom()*m_unitRatio); rightDistance->setValue(textItem->textToFrameDistRight()*m_unitRatio); if (columns->value() == 1) { columnGap->setEnabled(false); columnGapLabel->setEnabled(false); } else { columnGap->setEnabled(true); columnGapLabel->setEnabled(true); } showTextDistances(textItem->textToFrameDistLeft(), textItem->textToFrameDistTop(), textItem->textToFrameDistBottom(), textItem->textToFrameDistRight()); verticalAlign->setCurrentIndex(textItem->verticalAlignment()); connectSignals(); }
void PropertyWidget_Distance::showColumns(int r, double g) { if (!m_ScMW || m_ScMW->scriptIsRunning()) return; bool cSigWasBlocked = columns->blockSignals(true); bool cGapSigWasBlocked = columnGap->blockSignals(true); columns->setValue(r); columnGap->setValue(g * m_unitRatio); if (m_item) { PageItem_TextFrame *textItem = m_item->asTextFrame(); if (m_doc->appMode == modeEditTable) textItem = m_item->asTable()->activeCell().textFrame(); if (textItem != 0) { columns->setMaximum(qMax(qRound(textItem->width() / qMax(textItem->ColGap, 10.0)), 1)); if (columnGapLabel->currentIndex() == 0) { columnGap->setMaximum(qMax((textItem->width() / textItem->Cols - textItem->textToFrameDistLeft() - textItem->textToFrameDistRight()) * m_unitRatio, 0.0)); columnGap->setValue(textItem->ColGap * m_unitRatio); } else { columnGap->setMaximum(qMax((textItem->width() / textItem->Cols) * m_unitRatio, 0.0)); columnGap->setValue(textItem->columnWidth() * m_unitRatio); } } } columns->setMinimum(1); columnGap->setMinimum(0); columnGap->setEnabled(columns->value() != 1); columnGapLabel->setEnabled(columns->value() != 1); columns->blockSignals(cSigWasBlocked); columnGap->blockSignals(cGapSigWasBlocked); }