summaryrefslogtreecommitdiffstats
path: root/sw/source/ui/envelp/label1.cxx
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sw/source/ui/envelp/label1.cxx725
1 files changed, 725 insertions, 0 deletions
diff --git a/sw/source/ui/envelp/label1.cxx b/sw/source/ui/envelp/label1.cxx
new file mode 100644
index 000000000..4ac097718
--- /dev/null
+++ b/sw/source/ui/envelp/label1.cxx
@@ -0,0 +1,725 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <memory>
+#include <vcl/svapp.hxx>
+#include <rtl/ustring.hxx>
+#include <tools/lineend.hxx>
+#include <svtools/unitconv.hxx>
+#include <com/sun/star/uno/Sequence.h>
+#include <swtypes.hxx>
+#include <labimp.hxx>
+#include "swuilabimp.hxx"
+#include "labfmt.hxx"
+#include "labprt.hxx"
+#include <dbmgr.hxx>
+#include <uitool.hxx>
+#include <cmdid.h>
+#include <helpids.h>
+#include <strings.hrc>
+#include <envimg.hxx>
+
+void SwLabRec::SetFromItem( const SwLabItem& rItem )
+{
+ m_nHDist = rItem.m_lHDist;
+ m_nVDist = rItem.m_lVDist;
+ m_nWidth = rItem.m_lWidth;
+ m_nHeight = rItem.m_lHeight;
+ m_nLeft = rItem.m_lLeft;
+ m_nUpper = rItem.m_lUpper;
+ m_nCols = rItem.m_nCols;
+ m_nRows = rItem.m_nRows;
+ m_nPWidth = rItem.m_lPWidth;
+ m_nPHeight = rItem.m_lPHeight;
+ m_bCont = rItem.m_bCont;
+}
+
+void SwLabRec::FillItem( SwLabItem& rItem ) const
+{
+ rItem.m_lHDist = m_nHDist;
+ rItem.m_lVDist = m_nVDist;
+ rItem.m_lWidth = m_nWidth;
+ rItem.m_lHeight = m_nHeight;
+ rItem.m_lLeft = m_nLeft;
+ rItem.m_lUpper = m_nUpper;
+ rItem.m_nCols = m_nCols;
+ rItem.m_lPWidth = m_nPWidth;
+ rItem.m_lPHeight = m_nPHeight;
+ rItem.m_nRows = m_nRows;
+}
+
+void SwLabDlg::ReplaceGroup_( const OUString &rMake )
+{
+ // Remove old entries
+ m_pRecs->erase(m_pRecs->begin() + 1, m_pRecs->end());
+ aLabelsCfg.FillLabels(rMake, *m_pRecs);
+ aLstGroup = rMake;
+}
+
+void SwLabDlg::PageCreated(const OString &rId, SfxTabPage &rPage)
+{
+ if (rId == "labels")
+ {
+ if (m_bLabel)
+ {
+ static_cast<SwLabPage*>(&rPage)->SetDBManager(pDBManager);
+ static_cast<SwLabPage*>(&rPage)->InitDatabaseBox();
+ }
+ else
+ static_cast<SwLabPage*>(&rPage)->SetToBusinessCard();
+ }
+ else if (rId == "options")
+ m_pPrtPage = static_cast<SwLabPrtPage*>(&rPage);
+}
+
+SwLabDlg::SwLabDlg(weld::Window* pParent, const SfxItemSet& rSet,
+ SwDBManager* pDBManager_, bool bLabel)
+ : SfxTabDialogController(pParent, "modules/swriter/ui/labeldialog.ui", "LabelDialog", &rSet)
+ , pDBManager(pDBManager_)
+ , m_pPrtPage(nullptr)
+ , aTypeIds(50, 10)
+ , m_pRecs(new SwLabRecs)
+ , m_bLabel(bLabel)
+{
+ weld::WaitObject aWait(pParent);
+
+ // Read user label from writer.cfg
+ SwLabItem aItem(static_cast<const SwLabItem&>(rSet.Get( FN_LABEL )));
+ std::unique_ptr<SwLabRec> pRec(new SwLabRec);
+ pRec->m_aMake = pRec->m_aType = SwResId(STR_CUSTOM_LABEL);
+ pRec->SetFromItem( aItem );
+
+ bool bDouble = false;
+
+ for (const std::unique_ptr<SwLabRec> & i : *m_pRecs)
+ {
+ if (pRec->m_aMake == i->m_aMake &&
+ pRec->m_aType == i->m_aType)
+ {
+ bDouble = true;
+ break;
+ }
+ }
+
+ if (!bDouble)
+ m_pRecs->insert( m_pRecs->begin(), std::move(pRec));
+
+ size_t nLstGroup = 0;
+ const std::vector<OUString>& rMan = aLabelsCfg.GetManufacturers();
+ for(size_t nMan = 0; nMan < rMan.size(); ++nMan)
+ {
+ aMakes.push_back(rMan[nMan]);
+ if ( rMan[nMan] == aItem.m_aLstMake )
+ nLstGroup = nMan;
+ }
+
+ if ( !aMakes.empty() )
+ ReplaceGroup_( aMakes[nLstGroup] );
+
+ if (m_xExampleSet)
+ m_xExampleSet->Put(aItem);
+
+ AddTabPage("format", SwLabFormatPage::Create, nullptr);
+ AddTabPage("options", SwLabPrtPage::Create, nullptr);
+ m_sBusinessCardDlg = SwResId(STR_BUSINESS_CARDS);
+
+ if (m_bLabel)
+ {
+ RemoveTabPage("business");
+ RemoveTabPage("private");
+ RemoveTabPage("medium");
+ AddTabPage("labels", SwLabPage::Create, nullptr);
+ }
+ else
+ {
+ RemoveTabPage("labels");
+ AddTabPage("medium", SwLabPage::Create, nullptr);
+ AddTabPage("business", SwBusinessDataPage::Create, nullptr );
+ AddTabPage("private", SwPrivateDataPage::Create, nullptr);
+ m_xDialog->set_title(m_sBusinessCardDlg);
+ }
+
+ pParent->set_busy_cursor(false);
+}
+
+SwLabDlg::~SwLabDlg()
+{
+ m_pRecs.reset();
+}
+
+void SwLabDlg::GetLabItem(SwLabItem &rItem)
+{
+ const SwLabItem& rActItem = static_cast<const SwLabItem&>(GetExampleSet()->Get(FN_LABEL));
+ const SwLabItem& rOldItem = static_cast<const SwLabItem&>(GetInputSetImpl()->Get(FN_LABEL));
+
+ if (rActItem != rOldItem)
+ {
+ // Was already "put" with (hopefully) correct content
+ rItem = rActItem;
+ }
+ else
+ {
+ rItem = rOldItem;
+
+ // In rItem there are only settings defined by users.
+ // Therefore get the real settings directly from Record
+ SwLabRec* pRec = GetRecord(rItem.m_aType, rItem.m_bCont);
+ pRec->FillItem( rItem );
+ }
+}
+
+SwLabRec* SwLabDlg::GetRecord(const OUString &rRecName, bool bCont)
+{
+ SwLabRec* pRec = nullptr;
+ bool bFound = false;
+ const OUString sCustom(SwResId(STR_CUSTOM_LABEL));
+
+ const size_t nCount = Recs().size();
+ for (size_t i = 0; i < nCount; ++i)
+ {
+ pRec = Recs()[i].get();
+ if (pRec->m_aType != sCustom &&
+ rRecName == pRec->m_aType && bCont == pRec->m_bCont)
+ {
+ bFound = true;
+ break;
+ }
+ }
+ if (!bFound) // User defined
+ pRec = Recs()[0].get();
+
+ return pRec;
+}
+
+Printer *SwLabDlg::GetPrt()
+{
+ if (m_pPrtPage)
+ return m_pPrtPage->GetPrt();
+ else
+ return nullptr;
+}
+
+SwLabPage::SwLabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
+ : SfxTabPage(pPage, pController, "modules/swriter/ui/cardmediumpage.ui", "CardMediumPage", &rSet)
+ , pDBManager(nullptr)
+ , aItem(static_cast<const SwLabItem&>(rSet.Get(FN_LABEL)))
+ , m_xAddressFrame(m_xBuilder->weld_widget("addressframe"))
+ , m_xAddrBox(m_xBuilder->weld_check_button("address"))
+ , m_xWritingEdit(m_xBuilder->weld_text_view("textview"))
+ , m_xDatabaseLB(m_xBuilder->weld_combo_box("database"))
+ , m_xTableLB(m_xBuilder->weld_combo_box("table"))
+ , m_xInsertBT(m_xBuilder->weld_button("insert"))
+ , m_xDBFieldLB(m_xBuilder->weld_combo_box("field"))
+ , m_xContButton(m_xBuilder->weld_radio_button("continuous"))
+ , m_xSheetButton(m_xBuilder->weld_radio_button("sheet"))
+ , m_xMakeBox(m_xBuilder->weld_combo_box("brand"))
+ , m_xTypeBox(m_xBuilder->weld_combo_box("type"))
+ , m_xHiddenSortTypeBox(m_xBuilder->weld_combo_box("hiddentype"))
+ , m_xFormatInfo(m_xBuilder->weld_label("formatinfo"))
+{
+ weld::WaitObject aWait(GetFrameWeld());
+
+ m_xWritingEdit->set_size_request(m_xWritingEdit->get_approximate_digit_width() * 30,
+ m_xWritingEdit->get_height_rows(10));
+ m_xHiddenSortTypeBox->make_sorted();
+
+ long nListBoxWidth = m_xWritingEdit->get_approximate_digit_width() * 25;
+ m_xTableLB->set_size_request(nListBoxWidth, -1);
+ m_xDatabaseLB->set_size_request(nListBoxWidth, -1);
+ m_xDBFieldLB->set_size_request(nListBoxWidth, -1);
+
+ SetExchangeSupport();
+
+ // Install handlers
+ m_xAddrBox->connect_toggled(LINK(this, SwLabPage, AddrHdl));
+ m_xDatabaseLB->connect_changed(LINK(this, SwLabPage, DatabaseHdl));
+ m_xTableLB->connect_changed(LINK(this, SwLabPage, DatabaseHdl));
+ m_xDBFieldLB->connect_changed(LINK(this, SwLabPage, DatabaseHdl));
+ m_xInsertBT->connect_clicked(LINK(this, SwLabPage, FieldHdl));
+ // Disable insert button first,
+ // it'll be enabled if m_xDatabaseLB, m_pTableLB and m_pInsertBT are filled
+ m_xInsertBT->set_sensitive(false);
+ m_xContButton->connect_toggled(LINK(this, SwLabPage, PageHdl));
+ m_xSheetButton->connect_toggled(LINK(this, SwLabPage, PageHdl));
+ auto nMaxWidth = m_xMakeBox->get_approximate_digit_width() * 32;
+ m_xMakeBox->set_size_request(nMaxWidth, -1);
+ m_xTypeBox->set_size_request(nMaxWidth, -1);
+ m_xMakeBox->connect_changed(LINK(this, SwLabPage, MakeHdl));
+ m_xTypeBox->connect_changed(LINK(this, SwLabPage, TypeHdl));
+
+ InitDatabaseBox();
+}
+
+SwLabPage::~SwLabPage()
+{
+}
+
+void SwLabPage::SetToBusinessCard()
+{
+ m_xContainer->set_help_id(HID_BUSINESS_FMT_PAGE);
+ m_xContButton->set_help_id(HID_BUSINESS_FMT_PAGE_CONT);
+ m_xSheetButton->set_help_id(HID_BUSINESS_FMT_PAGE_SHEET);
+ m_xMakeBox->set_help_id(HID_BUSINESS_FMT_PAGE_BRAND);
+ m_xTypeBox->set_help_id(HID_BUSINESS_FMT_PAGE_TYPE);
+ m_xAddressFrame->hide();
+};
+
+IMPL_LINK_NOARG(SwLabPage, AddrHdl, weld::ToggleButton&, void)
+{
+ OUString aWriting;
+
+ if (m_xAddrBox->get_active())
+ aWriting = convertLineEnd(MakeSender(), GetSystemLineEnd());
+
+ m_xWritingEdit->set_text(aWriting);
+ m_xWritingEdit->grab_focus();
+}
+
+IMPL_LINK( SwLabPage, DatabaseHdl, weld::ComboBox&, rListBox, void )
+{
+ sActDBName = m_xDatabaseLB->get_active_text();
+
+ weld::WaitObject aObj(GetParentSwLabDlg()->getDialog());
+
+ if (&rListBox == m_xDatabaseLB.get())
+ GetDBManager()->GetTableNames(*m_xTableLB, sActDBName);
+
+ if (&rListBox == m_xDatabaseLB.get() || &rListBox == m_xTableLB.get())
+ GetDBManager()->GetColumnNames(*m_xDBFieldLB, sActDBName, m_xTableLB->get_active_text());
+
+ if (!m_xDatabaseLB->get_active_text().isEmpty() && !m_xTableLB->get_active_text().isEmpty()
+ && !m_xDBFieldLB->get_active_text().isEmpty())
+ m_xInsertBT->set_sensitive(true);
+ else
+ m_xInsertBT->set_sensitive(false);
+}
+
+IMPL_LINK_NOARG(SwLabPage, FieldHdl, weld::Button&, void)
+{
+ OUString aStr("<" + m_xDatabaseLB->get_active_text() + "." +
+ m_xTableLB->get_active_text() + "." +
+ m_xTableLB->get_active_id() + "." +
+ m_xDBFieldLB->get_active_text() + ">");
+ m_xWritingEdit->replace_selection(aStr);
+ int nStartPos, nEndPos;
+ m_xWritingEdit->get_selection_bounds(nStartPos, nEndPos);
+ m_xWritingEdit->grab_focus();
+ m_xWritingEdit->select_region(nStartPos, nEndPos);
+}
+
+IMPL_LINK_NOARG(SwLabPage, PageHdl, weld::ToggleButton&, void)
+{
+ MakeHdl(*m_xMakeBox);
+}
+
+IMPL_LINK_NOARG(SwLabPage, MakeHdl, weld::ComboBox&, void)
+{
+ weld::WaitObject aWait(GetParentSwLabDlg()->getDialog());
+
+ m_xTypeBox->clear();
+ m_xHiddenSortTypeBox->clear();
+ GetParentSwLabDlg()->TypeIds().clear();
+
+ const OUString aMake = m_xMakeBox->get_active_text();
+ GetParentSwLabDlg()->ReplaceGroup( aMake );
+ aItem.m_aLstMake = aMake;
+
+ const bool bCont = m_xContButton->get_active();
+ const size_t nCount = GetParentSwLabDlg()->Recs().size();
+ size_t nLstType = 0;
+
+ const OUString sCustom(SwResId(STR_CUSTOM_LABEL));
+ //insert the entries into the sorted list box
+ for ( size_t i = 0; i < nCount; ++i )
+ {
+ const OUString aType(GetParentSwLabDlg()->Recs()[i]->m_aType);
+ bool bInsert = false;
+ if (GetParentSwLabDlg()->Recs()[i]->m_aType == sCustom)
+ {
+ bInsert = true;
+ m_xTypeBox->append_text(aType );
+ }
+ else if (GetParentSwLabDlg()->Recs()[i]->m_bCont == bCont)
+ {
+ if (m_xHiddenSortTypeBox->find_text(aType) == -1)
+ {
+ bInsert = true;
+ m_xHiddenSortTypeBox->append_text( aType );
+ }
+ }
+ if(bInsert)
+ {
+ GetParentSwLabDlg()->TypeIds().push_back(i);
+ if ( !nLstType && aType == aItem.m_aLstType )
+ nLstType = GetParentSwLabDlg()->TypeIds().size();
+ }
+ }
+ for (int nEntry = 0; nEntry < m_xHiddenSortTypeBox->get_count(); ++nEntry)
+ {
+ m_xTypeBox->append_text(m_xHiddenSortTypeBox->get_text(nEntry));
+ }
+ if (nLstType)
+ m_xTypeBox->set_active_text(aItem.m_aLstType);
+ else
+ m_xTypeBox->set_active(0);
+ TypeHdl(*m_xTypeBox);
+}
+
+IMPL_LINK_NOARG(SwLabPage, TypeHdl, weld::ComboBox&, void)
+{
+ DisplayFormat();
+ aItem.m_aType = m_xTypeBox->get_active_text();
+}
+
+void SwLabPage::DisplayFormat()
+{
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "cui/ui/spinbox.ui"));
+ std::unique_ptr<weld::MetricSpinButton> xField(xBuilder->weld_metric_spin_button("spin", FieldUnit::CM));
+ SetFieldUnit(*xField, ::GetDfltMetric(false));
+ xField->set_digits(2);
+ xField->set_range(0, INT_MAX - 1, FieldUnit::NONE);
+
+ SwLabRec* pRec = GetSelectedEntryPos();
+ aItem.m_aLstType = pRec->m_aType;
+ setfldval(*xField, pRec->m_nWidth);
+ xField->reformat();
+ const OUString aWString = xField->get_text();
+
+ setfldval(*xField, pRec->m_nHeight);
+ xField->reformat();
+
+ OUString aText = pRec->m_aType + ": " + aWString +
+ " x " + xField->get_text() +
+ " (" + OUString::number( pRec->m_nCols ) +
+ " x " + OUString::number( pRec->m_nRows ) + ")";
+ m_xFormatInfo->set_label(aText);
+}
+
+SwLabRec* SwLabPage::GetSelectedEntryPos()
+{
+ OUString sSelEntry(m_xTypeBox->get_active_text());
+
+ return GetParentSwLabDlg()->GetRecord(sSelEntry, m_xContButton->get_active());
+}
+
+void SwLabPage::InitDatabaseBox()
+{
+ if( GetDBManager() )
+ {
+ m_xDatabaseLB->clear();
+ const css::uno::Sequence<OUString> aDataNames = SwDBManager::GetExistingDatabaseNames();
+ for (const OUString& rDataName : aDataNames)
+ m_xDatabaseLB->append_text(rDataName);
+ sal_Int32 nIdx{ 0 };
+ OUString sDBName = sActDBName.getToken( 0, DB_DELIM, nIdx );
+ OUString sTableName = sActDBName.getToken( 0, DB_DELIM, nIdx );
+ m_xDatabaseLB->set_active_text(sDBName);
+ if( !sDBName.isEmpty() && GetDBManager()->GetTableNames(*m_xTableLB, sDBName))
+ {
+ m_xTableLB->set_active_text(sTableName);
+ GetDBManager()->GetColumnNames(*m_xDBFieldLB, sActDBName, sTableName);
+ }
+ else
+ m_xDBFieldLB->clear();
+ }
+}
+
+std::unique_ptr<SfxTabPage> SwLabPage::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet)
+{
+ return std::make_unique<SwLabPage>(pPage, pController, *rSet);
+}
+
+void SwLabPage::ActivatePage(const SfxItemSet& rSet)
+{
+ Reset( &rSet );
+}
+
+DeactivateRC SwLabPage::DeactivatePage(SfxItemSet* _pSet)
+{
+ if (_pSet)
+ FillItemSet(_pSet);
+
+ return DeactivateRC::LeavePage;
+}
+
+void SwLabPage::FillItem(SwLabItem& rItem)
+{
+ rItem.m_bAddr = m_xAddrBox->get_active();
+ rItem.m_aWriting = m_xWritingEdit->get_text();
+ rItem.m_bCont = m_xContButton->get_active();
+ rItem.m_aMake = m_xMakeBox->get_active_text();
+ rItem.m_aType = m_xTypeBox->get_active_text();
+ rItem.m_sDBName = sActDBName;
+
+ SwLabRec* pRec = GetSelectedEntryPos();
+ pRec->FillItem( rItem );
+
+ rItem.m_aLstMake = m_xMakeBox->get_active_text();
+ rItem.m_aLstType = m_xTypeBox->get_active_text();
+}
+
+bool SwLabPage::FillItemSet(SfxItemSet* rSet)
+{
+ FillItem( aItem );
+ rSet->Put( aItem );
+
+ return true;
+}
+
+void SwLabPage::Reset(const SfxItemSet* rSet)
+{
+ m_xMakeBox->clear();
+
+ size_t nLstGroup = 0;
+
+ const size_t nCount = GetParentSwLabDlg()->Makes().size();
+ for(size_t i = 0; i < nCount; ++i)
+ {
+ OUString& rStr = GetParentSwLabDlg()->Makes()[i];
+ m_xMakeBox->append_text(rStr);
+
+ if ( rStr == aItem.m_aLstMake)
+ nLstGroup = i;
+ }
+
+ m_xMakeBox->set_active( nLstGroup );
+ MakeHdl(*m_xMakeBox);
+
+ aItem = static_cast<const SwLabItem&>( rSet->Get(FN_LABEL));
+ OUString sDBName = aItem.m_sDBName;
+
+ OUString aWriting(convertLineEnd(aItem.m_aWriting, GetSystemLineEnd()));
+
+ m_xAddrBox->set_active( aItem.m_bAddr );
+ m_xWritingEdit->set_text( aWriting );
+
+ for(const auto& rMake : GetParentSwLabDlg()->Makes())
+ {
+ if (m_xMakeBox->find_text(rMake) == -1)
+ m_xMakeBox->append_text(rMake);
+ }
+
+ m_xMakeBox->set_active_text(aItem.m_aMake);
+ //save the current type
+ OUString sType(aItem.m_aType);
+ MakeHdl(*m_xMakeBox);
+ aItem.m_aType = sType;
+ //#102806# a newly added make may not be in the type ListBox already
+ if (m_xTypeBox->find_text(aItem.m_aType) == -1 && !aItem.m_aMake.isEmpty())
+ GetParentSwLabDlg()->UpdateGroup( aItem.m_aMake );
+ if (m_xTypeBox->find_text(aItem.m_aType) != -1)
+ {
+ m_xTypeBox->set_active_text(aItem.m_aType);
+ TypeHdl(*m_xTypeBox);
+ }
+ if (m_xDatabaseLB->find_text(sDBName) != -1)
+ {
+ m_xDatabaseLB->set_active_text(sDBName);
+ DatabaseHdl(*m_xDatabaseLB);
+ }
+
+ if (aItem.m_bCont)
+ m_xContButton->set_active(true);
+ else
+ m_xSheetButton->set_active(true);
+}
+
+SwPrivateDataPage::SwPrivateDataPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
+ : SfxTabPage(pPage, pController, "modules/swriter/ui/privateuserpage.ui", "PrivateUserPage", &rSet)
+ , m_xFirstNameED(m_xBuilder->weld_entry("firstname"))
+ , m_xNameED(m_xBuilder->weld_entry("lastname"))
+ , m_xShortCutED(m_xBuilder->weld_entry("shortname"))
+ , m_xFirstName2ED(m_xBuilder->weld_entry("firstname2"))
+ , m_xName2ED(m_xBuilder->weld_entry("lastname2"))
+ , m_xShortCut2ED(m_xBuilder->weld_entry("shortname2"))
+ , m_xStreetED(m_xBuilder->weld_entry("street"))
+ , m_xZipED(m_xBuilder->weld_entry("izip"))
+ , m_xCityED(m_xBuilder->weld_entry("icity"))
+ , m_xCountryED(m_xBuilder->weld_entry("country"))
+ , m_xStateED(m_xBuilder->weld_entry("state"))
+ , m_xTitleED(m_xBuilder->weld_entry("title"))
+ , m_xProfessionED(m_xBuilder->weld_entry("job"))
+ , m_xPhoneED(m_xBuilder->weld_entry("phone"))
+ , m_xMobilePhoneED(m_xBuilder->weld_entry("mobile"))
+ , m_xFaxED(m_xBuilder->weld_entry("fax"))
+ , m_xHomePageED(m_xBuilder->weld_entry("url"))
+ , m_xMailED(m_xBuilder->weld_entry("email"))
+{
+ SetExchangeSupport();
+}
+
+SwPrivateDataPage::~SwPrivateDataPage()
+{
+}
+
+std::unique_ptr<SfxTabPage> SwPrivateDataPage::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet)
+{
+ return std::make_unique<SwPrivateDataPage>(pPage, pController, *rSet);
+}
+
+void SwPrivateDataPage::ActivatePage(const SfxItemSet& rSet)
+{
+ Reset(&rSet);
+}
+
+DeactivateRC SwPrivateDataPage::DeactivatePage(SfxItemSet* _pSet)
+{
+ if (_pSet)
+ FillItemSet(_pSet);
+ return DeactivateRC::LeavePage;
+}
+
+bool SwPrivateDataPage::FillItemSet(SfxItemSet* rSet)
+{
+ const SfxItemSet* pExampleSet = GetDialogExampleSet();
+ assert(pExampleSet);
+ SwLabItem aItem = static_cast<const SwLabItem&>(pExampleSet->Get(FN_LABEL));
+
+ aItem.m_aPrivFirstName = m_xFirstNameED->get_text();
+ aItem.m_aPrivName = m_xNameED->get_text();
+ aItem.m_aPrivShortCut = m_xShortCutED->get_text();
+ aItem.m_aPrivFirstName2 = m_xFirstName2ED->get_text();
+ aItem.m_aPrivName2 = m_xName2ED->get_text();
+ aItem.m_aPrivShortCut2 = m_xShortCut2ED->get_text();
+ aItem.m_aPrivStreet = m_xStreetED->get_text();
+ aItem.m_aPrivZip = m_xZipED->get_text();
+ aItem.m_aPrivCity = m_xCityED->get_text();
+ aItem.m_aPrivCountry = m_xCountryED->get_text();
+ aItem.m_aPrivState = m_xStateED->get_text();
+ aItem.m_aPrivTitle = m_xTitleED->get_text();
+ aItem.m_aPrivProfession= m_xProfessionED->get_text();
+ aItem.m_aPrivPhone = m_xPhoneED->get_text();
+ aItem.m_aPrivMobile = m_xMobilePhoneED->get_text();
+ aItem.m_aPrivFax = m_xFaxED->get_text();
+ aItem.m_aPrivWWW = m_xHomePageED->get_text();
+ aItem.m_aPrivMail = m_xMailED->get_text();
+
+ rSet->Put(aItem);
+ return true;
+}
+
+void SwPrivateDataPage::Reset(const SfxItemSet* rSet)
+{
+ const SwLabItem& aItem = static_cast<const SwLabItem&>( rSet->Get(FN_LABEL) );
+ m_xFirstNameED->set_text(aItem.m_aPrivFirstName);
+ m_xNameED->set_text(aItem.m_aPrivName);
+ m_xShortCutED->set_text(aItem.m_aPrivShortCut);
+ m_xFirstName2ED->set_text(aItem.m_aPrivFirstName2);
+ m_xName2ED->set_text(aItem.m_aPrivName2);
+ m_xShortCut2ED->set_text(aItem.m_aPrivShortCut2);
+ m_xStreetED->set_text(aItem.m_aPrivStreet);
+ m_xZipED->set_text(aItem.m_aPrivZip);
+ m_xCityED->set_text(aItem.m_aPrivCity);
+ m_xCountryED->set_text(aItem.m_aPrivCountry);
+ m_xStateED->set_text(aItem.m_aPrivState);
+ m_xTitleED->set_text(aItem.m_aPrivTitle);
+ m_xProfessionED->set_text(aItem.m_aPrivProfession);
+ m_xPhoneED->set_text(aItem.m_aPrivPhone);
+ m_xMobilePhoneED->set_text(aItem.m_aPrivMobile);
+ m_xFaxED->set_text(aItem.m_aPrivFax);
+ m_xHomePageED->set_text(aItem.m_aPrivWWW);
+ m_xMailED->set_text(aItem.m_aPrivMail);
+}
+
+SwBusinessDataPage::SwBusinessDataPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet)
+ : SfxTabPage(pPage, pController, "modules/swriter/ui/businessdatapage.ui", "BusinessDataPage", &rSet)
+ , m_xCompanyED(m_xBuilder->weld_entry("company"))
+ , m_xCompanyExtED(m_xBuilder->weld_entry("company2"))
+ , m_xSloganED(m_xBuilder->weld_entry("slogan"))
+ , m_xStreetED(m_xBuilder->weld_entry("street"))
+ , m_xZipED(m_xBuilder->weld_entry("izip"))
+ , m_xCityED(m_xBuilder->weld_entry("icity"))
+ , m_xCountryED(m_xBuilder->weld_entry("country"))
+ , m_xStateED(m_xBuilder->weld_entry("state"))
+ , m_xPositionED(m_xBuilder->weld_entry("position"))
+ , m_xPhoneED(m_xBuilder->weld_entry("phone"))
+ , m_xMobilePhoneED(m_xBuilder->weld_entry("mobile"))
+ , m_xFaxED(m_xBuilder->weld_entry("fax"))
+ , m_xHomePageED(m_xBuilder->weld_entry("url"))
+ , m_xMailED(m_xBuilder->weld_entry("email"))
+{
+ SetExchangeSupport();
+}
+
+SwBusinessDataPage::~SwBusinessDataPage()
+{
+}
+
+std::unique_ptr<SfxTabPage> SwBusinessDataPage::Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet)
+{
+ return std::make_unique<SwBusinessDataPage>(pPage, pController, *rSet);
+}
+
+void SwBusinessDataPage::ActivatePage(const SfxItemSet& rSet)
+{
+ Reset(&rSet);
+}
+
+DeactivateRC SwBusinessDataPage::DeactivatePage(SfxItemSet* _pSet)
+{
+ if (_pSet)
+ FillItemSet(_pSet);
+ return DeactivateRC::LeavePage;
+}
+
+bool SwBusinessDataPage::FillItemSet(SfxItemSet* rSet)
+{
+ const SfxItemSet* pExampleSet = GetDialogExampleSet();
+ assert(pExampleSet);
+ SwLabItem aItem = static_cast<const SwLabItem&>(pExampleSet->Get(FN_LABEL));
+
+ aItem.m_aCompCompany = m_xCompanyED->get_text();
+ aItem.m_aCompCompanyExt= m_xCompanyExtED->get_text();
+ aItem.m_aCompSlogan = m_xSloganED->get_text();
+ aItem.m_aCompStreet = m_xStreetED->get_text();
+ aItem.m_aCompZip = m_xZipED->get_text();
+ aItem.m_aCompCity = m_xCityED->get_text();
+ aItem.m_aCompCountry = m_xCountryED->get_text();
+ aItem.m_aCompState = m_xStateED->get_text();
+ aItem.m_aCompPosition = m_xPositionED->get_text();
+ aItem.m_aCompPhone = m_xPhoneED->get_text();
+ aItem.m_aCompMobile = m_xMobilePhoneED->get_text();
+ aItem.m_aCompFax = m_xFaxED->get_text();
+ aItem.m_aCompWWW = m_xHomePageED->get_text();
+ aItem.m_aCompMail = m_xMailED->get_text();
+
+ rSet->Put(aItem);
+ return true;
+}
+
+void SwBusinessDataPage::Reset(const SfxItemSet* rSet)
+{
+ const SwLabItem& aItem = static_cast<const SwLabItem&>( rSet->Get(FN_LABEL) );
+ m_xCompanyED->set_text(aItem.m_aCompCompany);
+ m_xCompanyExtED->set_text(aItem.m_aCompCompanyExt);
+ m_xSloganED->set_text(aItem.m_aCompSlogan);
+ m_xStreetED->set_text(aItem.m_aCompStreet);
+ m_xZipED->set_text(aItem.m_aCompZip);
+ m_xCityED->set_text(aItem.m_aCompCity);
+ m_xCountryED->set_text(aItem.m_aCompCountry);
+ m_xStateED->set_text(aItem.m_aCompState);
+ m_xPositionED->set_text(aItem.m_aCompPosition);
+ m_xPhoneED->set_text(aItem.m_aCompPhone);
+ m_xMobilePhoneED->set_text(aItem.m_aCompMobile);
+ m_xFaxED->set_text(aItem.m_aCompFax);
+ m_xHomePageED->set_text(aItem.m_aCompWWW);
+ m_xMailED->set_text(aItem.m_aCompMail);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */