LCOV - code coverage report
Current view: top level - sw/source/ui/envelp - label1.cxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 0 549 0.0 %
Date: 2014-11-03 Functions: 0 59 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <vcl/waitobj.hxx>
      21             : #include <rtl/ustring.hxx>
      22             : #include <svtools/treelistentry.hxx>
      23             : #include <com/sun/star/uno/Sequence.h>
      24             : #include <swtypes.hxx>
      25             : #include <wrtsh.hxx>
      26             : #include <initui.hxx>
      27             : #include <../../uibase/envelp/labimp.hxx>
      28             : #include <labfmt.hxx>
      29             : #include <labprt.hxx>
      30             : #include <unotools.hxx>
      31             : #include <dbmgr.hxx>
      32             : #include "uitool.hxx"
      33             : #include <cmdid.h>
      34             : #include <helpid.h>
      35             : #include <globals.hrc>
      36             : #include <../../uibase/envelp/label.hrc>
      37             : #include <envimg.hxx>
      38             : 
      39           0 : void SwLabRec::SetFromItem( const SwLabItem& rItem )
      40             : {
      41           0 :     lHDist  = rItem.lHDist;
      42           0 :     lVDist  = rItem.lVDist;
      43           0 :     lWidth  = rItem.lWidth;
      44           0 :     lHeight = rItem.lHeight;
      45           0 :     lLeft   = rItem.lLeft;
      46           0 :     lUpper  = rItem.lUpper;
      47           0 :     nCols   = rItem.nCols;
      48           0 :     nRows   = rItem.nRows;
      49           0 :     lPWidth  = rItem.lPWidth;
      50           0 :     lPHeight = rItem.lPHeight;
      51           0 :     bCont   = rItem.bCont;
      52           0 : }
      53             : 
      54           0 : void SwLabRec::FillItem( SwLabItem& rItem ) const
      55             : {
      56           0 :     rItem.lHDist  = lHDist;
      57           0 :     rItem.lVDist  = lVDist;
      58           0 :     rItem.lWidth  = lWidth;
      59           0 :     rItem.lHeight = lHeight;
      60           0 :     rItem.lLeft   = lLeft;
      61           0 :     rItem.lUpper  = lUpper;
      62           0 :     rItem.nCols   = nCols;
      63           0 :     rItem.lPWidth  = lPWidth;
      64           0 :     rItem.lPHeight = lPHeight;
      65           0 :     rItem.nRows   = nRows;
      66           0 : }
      67             : 
      68           0 : void SwLabDlg::_ReplaceGroup( const OUString &rMake )
      69             : {
      70             :     // Remove old entries
      71           0 :     pRecs->erase(pRecs->begin() + 1, pRecs->end());
      72           0 :     aLabelsCfg.FillLabels(rMake, *pRecs);
      73           0 :     aLstGroup = rMake;
      74           0 : }
      75             : 
      76           0 : void SwLabDlg::PageCreated(sal_uInt16 nId, SfxTabPage &rPage)
      77             : {
      78           0 :     if (nId == m_nLabelId)
      79             :     {
      80           0 :         if(m_bLabel)
      81             :         {
      82           0 :             ((SwLabPage*)&rPage)->SetDBManager(pDBManager);
      83           0 :             ((SwLabPage*)&rPage)->InitDatabaseBox();
      84             :         }
      85             :         else
      86           0 :             ((SwLabPage*)&rPage)->SetToBusinessCard();
      87             :     }
      88           0 :     else if (nId == m_nOptionsId)
      89           0 :         pPrtPage = (SwLabPrtPage*)&rPage;
      90           0 : }
      91             : 
      92           0 : SwLabDlg::SwLabDlg(vcl::Window* pParent, const SfxItemSet& rSet,
      93             :                                 SwDBManager* pDBManager_, bool bLabel)
      94             :     : SfxTabDialog(pParent, "LabelDialog",
      95             :         "modules/swriter/ui/labeldialog.ui", &rSet)
      96             :     , pDBManager(pDBManager_)
      97             :     , pPrtPage(0)
      98             :     , aTypeIds(50, 10)
      99           0 :     , pRecs(new SwLabRecs())
     100             :     , m_bLabel(bLabel)
     101             :     , m_nFormatId(0)
     102             :     , m_nOptionsId(0)
     103             :     , m_nLabelId(0)
     104             :     , m_nCardsId(0)
     105             :     , m_nBusinessId(0)
     106           0 :     , m_nPrivateId(0)
     107             : {
     108           0 :     WaitObject aWait( pParent );
     109             : 
     110           0 :     m_nFormatId = AddTabPage("format", SwLabFmtPage::Create, 0);
     111           0 :     m_nOptionsId = AddTabPage("options", SwLabPrtPage::Create, 0);
     112           0 :     m_nCardsId = AddTabPage("cards", SwVisitingCardPage::Create, 0);
     113           0 :     m_sBusinessCardDlg = GetPageText(m_nCardsId);
     114             : 
     115           0 :     if (m_bLabel)
     116             :     {
     117           0 :         RemoveTabPage("business");
     118           0 :         RemoveTabPage("private");
     119           0 :         RemoveTabPage("cards");
     120           0 :         RemoveTabPage("medium");
     121           0 :         m_nLabelId = AddTabPage("labels", SwLabPage::Create, 0);
     122             :     }
     123             :     else
     124             :     {
     125           0 :         RemoveTabPage("labels");
     126           0 :         RemoveTabPage("cards");
     127           0 :         m_nLabelId = AddTabPage("medium", SwLabPage::Create, 0);
     128           0 :         m_nBusinessId = AddTabPage("business", SwBusinessDataPage::Create, 0 );
     129           0 :         m_nPrivateId = AddTabPage("private", SwPrivateDataPage::Create, 0);
     130           0 :         SetText(m_sBusinessCardDlg);
     131             :     }
     132             :     // Read user label from writer.cfg
     133           0 :     SwLabItem aItem((const SwLabItem&)rSet.Get( FN_LABEL ));
     134           0 :     SwLabRec* pRec = new SwLabRec;
     135           0 :     pRec->aMake = pRec->aType = SW_RESSTR( STR_CUSTOM );
     136           0 :     pRec->SetFromItem( aItem );
     137             : 
     138           0 :     bool bDouble = false;
     139             : 
     140           0 :     for (size_t nRecPos = 0; nRecPos < pRecs->size(); ++nRecPos)
     141             :     {
     142           0 :         if (pRec->aMake == (*pRecs)[nRecPos].aMake &&
     143           0 :             pRec->aType == (*pRecs)[nRecPos].aType)
     144             :         {
     145           0 :             bDouble = true;
     146           0 :             break;
     147             :         }
     148             :     }
     149             : 
     150           0 :     if (!bDouble)
     151           0 :         pRecs->insert( pRecs->begin(), pRec );
     152             :     else
     153           0 :         delete pRec;
     154             : 
     155           0 :     size_t nLstGroup = 0;
     156           0 :     const std::vector<OUString>& rMan = aLabelsCfg.GetManufacturers();
     157           0 :     for(size_t nMan = 0; nMan < rMan.size(); ++nMan)
     158             :     {
     159           0 :         aMakes.push_back(rMan[nMan]);
     160           0 :         if ( rMan[nMan] == aItem.aLstMake )
     161           0 :             nLstGroup = nMan;
     162             :     }
     163             : 
     164           0 :     if ( !aMakes.empty() )
     165           0 :         _ReplaceGroup( aMakes[nLstGroup] );
     166             : 
     167           0 :     if (pExampleSet)
     168           0 :         pExampleSet->Put(aItem);
     169           0 : }
     170             : 
     171           0 : SwLabDlg::~SwLabDlg()
     172             : {
     173           0 :     delete pRecs;
     174           0 : }
     175             : 
     176           0 : void SwLabDlg::GetLabItem(SwLabItem &rItem)
     177             : {
     178           0 :     const SwLabItem& rActItem = (const SwLabItem&)GetExampleSet()->Get(FN_LABEL);
     179           0 :     const SwLabItem& rOldItem = (const SwLabItem&)GetInputSetImpl()->Get(FN_LABEL);
     180             : 
     181           0 :     if (rActItem != rOldItem)
     182             :     {
     183             :         // Was already "put" with (hopefully) correct content
     184           0 :         rItem = rActItem;
     185             :     }
     186             :     else
     187             :     {
     188           0 :         rItem = rOldItem;
     189             : 
     190             :         // In rItem there are only settings defined by users.
     191             :         // Therefore get the real settings directly from Record
     192           0 :         SwLabRec* pRec = GetRecord(rItem.aType, rItem.bCont);
     193           0 :         pRec->FillItem( rItem );
     194             :     }
     195           0 : }
     196             : 
     197           0 : SwLabRec* SwLabDlg::GetRecord(const OUString &rRecName, bool bCont)
     198             : {
     199           0 :     SwLabRec* pRec = NULL;
     200           0 :     bool bFound = false;
     201           0 :     const OUString sCustom(SW_RES(STR_CUSTOM));
     202             : 
     203           0 :     const size_t nCount = Recs().size();
     204           0 :     for (size_t i = 0; i < nCount; ++i)
     205             :     {
     206           0 :         pRec = &Recs()[i];
     207           0 :         if (pRec->aType != sCustom &&
     208           0 :             rRecName == pRec->aType && bCont == pRec->bCont)
     209             :         {
     210           0 :             bFound = true;
     211           0 :             break;
     212             :         }
     213             :     }
     214           0 :     if (!bFound)    // User defined
     215           0 :         pRec = &Recs()[0];
     216             : 
     217           0 :     return(pRec);
     218             : }
     219             : 
     220           0 : Printer *SwLabDlg::GetPrt()
     221             : {
     222           0 :     if (pPrtPage)
     223           0 :         return (pPrtPage->GetPrt());
     224             :     else
     225           0 :         return (NULL);
     226             : }
     227             : 
     228           0 : SwLabPage::SwLabPage(vcl::Window* pParent, const SfxItemSet& rSet)
     229             :     : SfxTabPage(pParent, "CardMediumPage",
     230             :         "modules/swriter/ui/cardmediumpage.ui", &rSet)
     231             :     , pDBManager(NULL)
     232           0 :     , aItem((const SwLabItem&)rSet.Get(FN_LABEL))
     233           0 :     , m_bLabel(false)
     234             : {
     235           0 :     WaitObject aWait( pParent );
     236             : 
     237           0 :     get(m_pAddressFrame, "addressframe");
     238           0 :     get(m_pAddrBox, "address");
     239           0 :     get(m_pWritingEdit, "textview");
     240           0 :     m_pWritingEdit->set_height_request(m_pWritingEdit->GetTextHeight() * 10);
     241           0 :     m_pWritingEdit->set_width_request(m_pWritingEdit->approximate_char_width() * 25);
     242           0 :     get(m_pDatabaseLB, "database");
     243           0 :     get(m_pTableLB, "table");
     244           0 :     get(m_pInsertBT, "insert");
     245           0 :     get(m_pDBFieldLB, "field");
     246           0 :     get(m_pContButton, "continuous");
     247           0 :     get(m_pSheetButton, "sheet");
     248           0 :     get(m_pMakeBox, "brand");
     249           0 :     get(m_pTypeBox, "type");
     250           0 :     get(m_pFormatInfo, "formatinfo");
     251           0 :     get(m_pHiddenSortTypeBox, "hiddentype");
     252           0 :     m_pHiddenSortTypeBox->SetStyle(m_pHiddenSortTypeBox->GetStyle() | WB_SORT);
     253             : 
     254           0 :     long nListBoxWidth = approximate_char_width() * 30;
     255           0 :     m_pTableLB->set_width_request(nListBoxWidth);
     256           0 :     m_pDatabaseLB->set_width_request(nListBoxWidth);
     257           0 :     m_pDBFieldLB->set_width_request(nListBoxWidth);
     258             : 
     259           0 :     SetExchangeSupport();
     260             : 
     261             :     // Install handlers
     262           0 :     m_pAddrBox->SetClickHdl (LINK(this, SwLabPage, AddrHdl         ));
     263           0 :     m_pDatabaseLB->SetSelectHdl(LINK(this, SwLabPage, DatabaseHdl     ));
     264           0 :     m_pTableLB->SetSelectHdl(LINK(this, SwLabPage, DatabaseHdl     ));
     265           0 :     m_pInsertBT->SetClickHdl (LINK(this, SwLabPage, FieldHdl        ));
     266           0 :     m_pContButton->SetClickHdl (LINK(this, SwLabPage, PageHdl         ));
     267           0 :     m_pSheetButton->SetClickHdl (LINK(this, SwLabPage, PageHdl         ));
     268           0 :     m_pMakeBox->SetSelectHdl(LINK(this, SwLabPage, MakeHdl         ));
     269           0 :     m_pTypeBox->SetSelectHdl(LINK(this, SwLabPage, TypeHdl         ));
     270             : 
     271           0 :     InitDatabaseBox();
     272             : 
     273           0 :     size_t nLstGroup = 0;
     274             : 
     275           0 :     const size_t nCount = GetParentSwLabDlg()->Makes().size();
     276           0 :     for(size_t i = 0; i < nCount; ++i)
     277             :     {
     278           0 :         OUString& rStr = GetParentSwLabDlg()->Makes()[i];
     279           0 :         m_pMakeBox->InsertEntry( rStr );
     280             : 
     281           0 :         if ( rStr == aItem.aLstMake)
     282           0 :             nLstGroup = i;
     283             :     }
     284             : 
     285           0 :     m_pMakeBox->SelectEntryPos( nLstGroup );
     286           0 :     m_pMakeBox->GetSelectHdl().Call(m_pMakeBox);
     287           0 : }
     288             : 
     289           0 : void SwLabPage::SetToBusinessCard()
     290             : {
     291           0 :     SetHelpId(HID_BUSINESS_FMT_PAGE);
     292           0 :     m_pContButton->SetHelpId(HID_BUSINESS_FMT_PAGE_CONT);
     293           0 :     m_pSheetButton->SetHelpId(HID_BUSINESS_FMT_PAGE_SHEET);
     294           0 :     m_pMakeBox->SetHelpId(HID_BUSINESS_FMT_PAGE_BRAND);
     295           0 :     m_pTypeBox->SetHelpId(HID_BUSINESS_FMT_PAGE_TYPE);
     296           0 :     m_bLabel = false;
     297           0 :     m_pAddressFrame->Hide();
     298           0 : };
     299             : 
     300           0 : IMPL_LINK_NOARG(SwLabPage, AddrHdl)
     301             : {
     302           0 :     OUString aWriting;
     303             : 
     304           0 :     if ( m_pAddrBox->IsChecked() )
     305           0 :         aWriting = convertLineEnd(MakeSender(), GetSystemLineEnd());
     306             : 
     307           0 :     m_pWritingEdit->SetText( aWriting );
     308           0 :     m_pWritingEdit->GrabFocus();
     309           0 :     return 0;
     310             : }
     311             : 
     312           0 : IMPL_LINK( SwLabPage, DatabaseHdl, ListBox *, pListBox )
     313             : {
     314           0 :     sActDBName = m_pDatabaseLB->GetSelectEntry();
     315             : 
     316           0 :     WaitObject aObj( GetParentSwLabDlg() );
     317             : 
     318           0 :     if (pListBox == m_pDatabaseLB)
     319           0 :         GetDBManager()->GetTableNames(m_pTableLB, sActDBName);
     320             : 
     321           0 :     GetDBManager()->GetColumnNames(m_pDBFieldLB, sActDBName, m_pTableLB->GetSelectEntry());
     322           0 :     return 0;
     323             : }
     324             : 
     325           0 : IMPL_LINK_NOARG(SwLabPage, FieldHdl)
     326             : {
     327           0 :     OUString aStr("<" + m_pDatabaseLB->GetSelectEntry() + "." +
     328           0 :                   m_pTableLB->GetSelectEntry() + "." +
     329           0 :                   (m_pTableLB->GetEntryData(m_pTableLB->GetSelectEntryPos()) == 0 ? OUString("0") : OUString("1")) + "." +
     330           0 :                   m_pDBFieldLB->GetSelectEntry() + ">");
     331           0 :     m_pWritingEdit->ReplaceSelected(aStr);
     332           0 :     Selection aSel = m_pWritingEdit->GetSelection();
     333           0 :     m_pWritingEdit->GrabFocus();
     334           0 :     m_pWritingEdit->SetSelection(aSel);
     335           0 :     return 0;
     336             : }
     337             : 
     338           0 : IMPL_LINK_NOARG_INLINE_START(SwLabPage, PageHdl)
     339             : {
     340           0 :     m_pMakeBox->GetSelectHdl().Call(m_pMakeBox);
     341           0 :     return 0;
     342             : }
     343           0 : IMPL_LINK_NOARG_INLINE_END(SwLabPage, PageHdl)
     344             : 
     345           0 : IMPL_LINK_NOARG(SwLabPage, MakeHdl)
     346             : {
     347           0 :     WaitObject aWait( GetParentSwLabDlg() );
     348             : 
     349           0 :     m_pTypeBox->Clear();
     350           0 :     m_pHiddenSortTypeBox->Clear();
     351           0 :     GetParentSwLabDlg()->TypeIds().clear();
     352             : 
     353           0 :     const OUString aMake = m_pMakeBox->GetSelectEntry();
     354           0 :     GetParentSwLabDlg()->ReplaceGroup( aMake );
     355           0 :     aItem.aLstMake = aMake;
     356             : 
     357           0 :     const bool   bCont    = m_pContButton->IsChecked();
     358           0 :     const size_t nCount   = GetParentSwLabDlg()->Recs().size();
     359           0 :     size_t nLstType = 0;
     360             : 
     361           0 :     const OUString sCustom(SW_RES(STR_CUSTOM));
     362             :     //insert the entries into the sorted list box
     363           0 :     for ( size_t i = 0; i < nCount; ++i )
     364             :     {
     365           0 :         const OUString aType ( GetParentSwLabDlg()->Recs()[i].aType );
     366           0 :         bool bInsert = false;
     367           0 :         if ( GetParentSwLabDlg()->Recs()[i].aType == sCustom )
     368             :         {
     369           0 :             bInsert = true;
     370           0 :             m_pTypeBox->InsertEntry(aType );
     371             :         }
     372           0 :         else if ( GetParentSwLabDlg()->Recs()[i].bCont == bCont )
     373             :         {
     374           0 :             if ( m_pHiddenSortTypeBox->GetEntryPos(aType) == LISTBOX_ENTRY_NOTFOUND )
     375             :             {
     376           0 :                 bInsert = true;
     377           0 :                 m_pHiddenSortTypeBox->InsertEntry( aType );
     378             :             }
     379             :         }
     380           0 :         if(bInsert)
     381             :         {
     382           0 :             GetParentSwLabDlg()->TypeIds().push_back(i);
     383           0 :             if ( !nLstType && aType == aItem.aLstType )
     384           0 :                 nLstType = GetParentSwLabDlg()->TypeIds().size();
     385             :         }
     386           0 :     }
     387           0 :     for(sal_Int32 nEntry = 0; nEntry < m_pHiddenSortTypeBox->GetEntryCount(); ++nEntry)
     388             :     {
     389           0 :         m_pTypeBox->InsertEntry(m_pHiddenSortTypeBox->GetEntry(nEntry));
     390             :     }
     391           0 :     if (nLstType)
     392           0 :         m_pTypeBox->SelectEntry(aItem.aLstType);
     393             :     else
     394           0 :         m_pTypeBox->SelectEntryPos(0);
     395           0 :     m_pTypeBox->GetSelectHdl().Call(m_pTypeBox);
     396           0 :     return 0;
     397             : }
     398             : 
     399           0 : IMPL_LINK_NOARG_INLINE_START(SwLabPage, TypeHdl)
     400             : {
     401           0 :     DisplayFormat();
     402           0 :     aItem.aType = m_pTypeBox->GetSelectEntry();
     403           0 :     return 0;
     404             : }
     405           0 : IMPL_LINK_NOARG_INLINE_END(SwLabPage, TypeHdl)
     406             : 
     407           0 : void SwLabPage::DisplayFormat()
     408             : {
     409           0 :     MetricField aField(this, WinBits(0));
     410           0 :     FieldUnit aMetric = ::GetDfltMetric(false);
     411           0 :     SetMetric(aField, aMetric);
     412           0 :     aField.SetDecimalDigits(2);
     413           0 :     aField.SetMin         (0);
     414           0 :     aField.SetMax         (LONG_MAX);
     415             : 
     416           0 :     SwLabRec* pRec = GetSelectedEntryPos();
     417           0 :     aItem.aLstType = pRec->aType;
     418           0 :     SETFLDVAL(aField, pRec->lWidth);
     419           0 :     aField.Reformat();
     420           0 :     const OUString aWString = aField.GetText();
     421             : 
     422           0 :     SETFLDVAL(aField, pRec->lHeight);
     423           0 :     aField.Reformat();
     424             : 
     425           0 :     OUString aText = pRec->aType + ": " + aWString +
     426           0 :            " x " + aField.GetText() +
     427           0 :            " (" + OUString::number( pRec->nCols ) +
     428           0 :            " x " + OUString::number( pRec->nRows ) + ")";
     429           0 :     m_pFormatInfo->SetText(aText);
     430           0 : }
     431             : 
     432           0 : SwLabRec* SwLabPage::GetSelectedEntryPos()
     433             : {
     434           0 :     OUString sSelEntry(m_pTypeBox->GetSelectEntry());
     435             : 
     436           0 :     return GetParentSwLabDlg()->GetRecord(sSelEntry, m_pContButton->IsChecked());
     437             : }
     438             : 
     439           0 : void SwLabPage::InitDatabaseBox()
     440             : {
     441           0 :     if( GetDBManager() )
     442             :     {
     443           0 :         m_pDatabaseLB->Clear();
     444           0 :         ::com::sun::star::uno::Sequence<OUString> aDataNames = SwDBManager::GetExistingDatabaseNames();
     445           0 :         const OUString* pDataNames = aDataNames.getConstArray();
     446           0 :         for (long i = 0; i < aDataNames.getLength(); i++)
     447           0 :             m_pDatabaseLB->InsertEntry(pDataNames[i]);
     448           0 :         OUString sDBName = sActDBName.getToken( 0, DB_DELIM );
     449           0 :         OUString sTableName = sActDBName.getToken( 1, DB_DELIM );
     450           0 :         m_pDatabaseLB->SelectEntry(sDBName);
     451           0 :         if( !sDBName.isEmpty() && GetDBManager()->GetTableNames(m_pTableLB, sDBName))
     452             :         {
     453           0 :             m_pTableLB->SelectEntry(sTableName);
     454           0 :             GetDBManager()->GetColumnNames(m_pDBFieldLB, sActDBName, sTableName);
     455             :         }
     456             :         else
     457           0 :             m_pDBFieldLB->Clear();
     458             :     }
     459           0 : }
     460             : 
     461           0 : SfxTabPage* SwLabPage::Create(vcl::Window* pParent, const SfxItemSet* rSet)
     462             : {
     463           0 :     return new SwLabPage(pParent, *rSet);
     464             : }
     465             : 
     466           0 : void SwLabPage::ActivatePage(const SfxItemSet& rSet)
     467             : {
     468           0 :     Reset( &rSet );
     469           0 : }
     470             : 
     471           0 : int SwLabPage::DeactivatePage(SfxItemSet* _pSet)
     472             : {
     473           0 :     if (_pSet)
     474           0 :         FillItemSet(_pSet);
     475             : 
     476           0 :     return sal_True;
     477             : }
     478             : 
     479           0 : void SwLabPage::FillItem(SwLabItem& rItem)
     480             : {
     481           0 :     rItem.bAddr    = m_pAddrBox->IsChecked();
     482           0 :     rItem.aWriting = m_pWritingEdit->GetText();
     483           0 :     rItem.bCont    = m_pContButton->IsChecked();
     484           0 :     rItem.aMake    = m_pMakeBox->GetSelectEntry();
     485           0 :     rItem.aType    = m_pTypeBox->GetSelectEntry();
     486           0 :     rItem.sDBName  = sActDBName;
     487             : 
     488           0 :     SwLabRec* pRec = GetSelectedEntryPos();
     489           0 :     pRec->FillItem( rItem );
     490             : 
     491           0 :     rItem.aLstMake = m_pMakeBox->GetSelectEntry();
     492           0 :     rItem.aLstType = m_pTypeBox->GetSelectEntry();
     493           0 : }
     494             : 
     495           0 : bool SwLabPage::FillItemSet(SfxItemSet* rSet)
     496             : {
     497           0 :     FillItem( aItem );
     498           0 :     rSet->Put( aItem );
     499             : 
     500           0 :     return true;
     501             : }
     502             : 
     503           0 : void SwLabPage::Reset(const SfxItemSet* rSet)
     504             : {
     505           0 :     aItem = (const SwLabItem&) rSet->Get(FN_LABEL);
     506           0 :     OUString sDBName  = aItem.sDBName;
     507             : 
     508           0 :     OUString aWriting(convertLineEnd(aItem.aWriting, GetSystemLineEnd()));
     509             : 
     510           0 :     m_pAddrBox->Check( aItem.bAddr );
     511           0 :     m_pWritingEdit->SetText    ( aWriting );
     512             : 
     513           0 :     for(std::vector<OUString>::const_iterator i = GetParentSwLabDlg()->Makes().begin(); i != GetParentSwLabDlg()->Makes().end(); ++i)
     514             :     {
     515           0 :         if(m_pMakeBox->GetEntryPos(OUString(*i)) == LISTBOX_ENTRY_NOTFOUND)
     516           0 :             m_pMakeBox->InsertEntry(*i);
     517             :     }
     518             : 
     519           0 :     m_pMakeBox->SelectEntry( aItem.aMake );
     520             :     //save the current type
     521           0 :     OUString sType(aItem.aType);
     522           0 :     m_pMakeBox->GetSelectHdl().Call(m_pMakeBox);
     523           0 :     aItem.aType = sType;
     524             :     //#102806# a newly added make may not be in the type ListBox already
     525           0 :     if (m_pTypeBox->GetEntryPos(aItem.aType) == LISTBOX_ENTRY_NOTFOUND && !aItem.aMake.isEmpty())
     526           0 :         GetParentSwLabDlg()->UpdateGroup( aItem.aMake );
     527           0 :     if (m_pTypeBox->GetEntryPos(aItem.aType) != LISTBOX_ENTRY_NOTFOUND)
     528             :     {
     529           0 :         m_pTypeBox->SelectEntry(aItem.aType);
     530           0 :         m_pTypeBox->GetSelectHdl().Call(m_pTypeBox);
     531             :     }
     532           0 :     if (m_pDatabaseLB->GetEntryPos(sDBName) != LISTBOX_ENTRY_NOTFOUND)
     533             :     {
     534           0 :         m_pDatabaseLB->SelectEntry(sDBName);
     535           0 :         m_pDatabaseLB->GetSelectHdl().Call(m_pDatabaseLB);
     536             :     }
     537             : 
     538           0 :     if (aItem.bCont)
     539           0 :         m_pContButton->Check();
     540             :     else
     541           0 :         m_pSheetButton->Check();
     542           0 : }
     543             : 
     544           0 : void SwVisitingCardPage::ClearUserData()
     545             : {
     546           0 :     SvTreeListEntry* pEntry = m_pAutoTextLB->First();
     547           0 :     while(pEntry)
     548             :     {
     549           0 :         delete (OUString*)pEntry->GetUserData();
     550           0 :         pEntry = m_pAutoTextLB->Next(pEntry);
     551             :     }
     552           0 : }
     553             : 
     554           0 : void SwVisitingCardPage::SetUserData( sal_uInt32 nCnt,
     555             :                 const OUString* pNames, const OUString* pValues )
     556             : {
     557           0 :     for( sal_uInt32 i = 0; i < nCnt; ++i )
     558             :     {
     559           0 :         SvTreeListEntry* pEntry = m_pAutoTextLB->InsertEntry( pNames[ i ] );
     560           0 :         pEntry->SetUserData( new OUString( pValues[ i ] ));
     561             :     }
     562           0 : }
     563             : 
     564           0 : SwVisitingCardPage::SwVisitingCardPage(vcl::Window* pParent, const SfxItemSet& rSet)
     565             :     : SfxTabPage(pParent, "CardFormatPage",
     566             :         "modules/swriter/ui/cardformatpage.ui", &rSet)
     567           0 :     , pExampleFrame(0)
     568             : {
     569           0 :     get(m_pAutoTextLB, "treeview");
     570           0 :     m_pAutoTextLB->set_height_request(m_pAutoTextLB->GetTextHeight() * 16);
     571           0 :     get(m_pAutoTextGroupLB, "autotext");
     572           0 :     get(m_pExampleWIN, "preview");
     573             : 
     574           0 :     m_pAutoTextLB->SetStyle( m_pAutoTextLB->GetStyle() | WB_HSCROLL );
     575           0 :     m_pAutoTextLB->SetSpaceBetweenEntries(0);
     576           0 :     m_pAutoTextLB->SetSelectionMode( SINGLE_SELECTION );
     577             : 
     578           0 :     SetExchangeSupport();
     579           0 :     m_pAutoTextLB->SetSelectHdl(LINK(this, SwVisitingCardPage, AutoTextSelectHdl));
     580           0 :     m_pAutoTextGroupLB->SetSelectHdl(LINK(this, SwVisitingCardPage, AutoTextSelectHdl));
     581             : 
     582           0 :     m_pExampleWIN->Hide();
     583             : 
     584           0 :     InitFrameControl();
     585           0 : }
     586             : 
     587           0 : SwVisitingCardPage::~SwVisitingCardPage()
     588             : {
     589           0 :     for(sal_Int32 i = 0; i < m_pAutoTextGroupLB->GetEntryCount(); ++i)
     590           0 :         delete (OUString*)m_pAutoTextGroupLB->GetEntryData( i );
     591           0 :     m_xAutoText = 0;
     592             : 
     593           0 :     ClearUserData();
     594           0 :     delete pExampleFrame;
     595           0 : }
     596             : 
     597           0 : SfxTabPage* SwVisitingCardPage::Create(vcl::Window* pParent, const SfxItemSet* rSet)
     598             : {
     599           0 :     return new SwVisitingCardPage(pParent, *rSet);
     600             : }
     601             : 
     602           0 : void SwVisitingCardPage::ActivatePage(const SfxItemSet& rSet)
     603             : {
     604           0 :     Reset( &rSet );
     605           0 :     UpdateFields();
     606           0 : }
     607             : 
     608           0 : int  SwVisitingCardPage::DeactivatePage(SfxItemSet* _pSet)
     609             : {
     610           0 :     if (_pSet)
     611           0 :         FillItemSet(_pSet);
     612           0 :     return LEAVE_PAGE;
     613             : }
     614             : 
     615           0 : bool SwVisitingCardPage::FillItemSet(SfxItemSet* rSet)
     616             : {
     617             :     const OUString* pGroup = (const OUString*)m_pAutoTextGroupLB->GetEntryData(
     618           0 :                                     m_pAutoTextGroupLB->GetSelectEntryPos());
     619             :     OSL_ENSURE(pGroup, "no group selected?");
     620             : 
     621           0 :     if (pGroup)
     622           0 :         aLabItem.sGlossaryGroup = *pGroup;
     623             : 
     624           0 :     SvTreeListEntry* pSelEntry = m_pAutoTextLB->FirstSelected();
     625           0 :     if(pSelEntry)
     626           0 :         aLabItem.sGlossaryBlockName = *(OUString*)pSelEntry->GetUserData();
     627           0 :     rSet->Put(aLabItem);
     628           0 :     return true;
     629             : }
     630             : 
     631           0 : static void lcl_SelectBlock(SvTreeListBox& rAutoTextLB, const OUString& rBlockName)
     632             : {
     633           0 :     SvTreeListEntry* pEntry = rAutoTextLB.First();
     634           0 :     while(pEntry)
     635             :     {
     636           0 :         if(*(OUString*)pEntry->GetUserData() == rBlockName)
     637             :         {
     638           0 :             rAutoTextLB.Select(pEntry);
     639           0 :             rAutoTextLB.MakeVisible(pEntry);
     640           0 :             break;
     641             :         }
     642           0 :         pEntry = rAutoTextLB.Next(pEntry);
     643             :     }
     644           0 : }
     645             : 
     646           0 : static bool lcl_FindBlock(SvTreeListBox& rAutoTextLB, const OUString& rBlockName)
     647             : {
     648           0 :     SvTreeListEntry* pEntry = rAutoTextLB.First();
     649           0 :     while(pEntry)
     650             :     {
     651           0 :         if(*(OUString*)pEntry->GetUserData() == rBlockName)
     652             :         {
     653           0 :             rAutoTextLB.Select(pEntry);
     654           0 :             return true;
     655             :         }
     656           0 :         pEntry = rAutoTextLB.Next(pEntry);
     657             :     }
     658           0 :     return false;
     659             : }
     660             : 
     661           0 : void SwVisitingCardPage::Reset(const SfxItemSet* rSet)
     662             : {
     663           0 :     aLabItem = (const SwLabItem&) rSet->Get(FN_LABEL);
     664             : 
     665           0 :     bool bFound = false;
     666             :     sal_Int32 i;
     667           0 :     for(i = 0; i < m_pAutoTextGroupLB->GetEntryCount(); i++)
     668           0 :         if( aLabItem.sGlossaryGroup == *(const OUString*)m_pAutoTextGroupLB->GetEntryData( i ))
     669             :         {
     670           0 :             bFound = true;
     671           0 :             break;
     672             :         }
     673             : 
     674           0 :     if(!bFound)
     675             :     {
     676             :         // initially search for a group starting with "crd" which is the name of the
     677             :         // business card AutoTexts
     678           0 :         for(i = 0; i < m_pAutoTextGroupLB->GetEntryCount(); i++)
     679           0 :             if (((const OUString*)m_pAutoTextGroupLB->GetEntryData(i))->startsWith("crd"))
     680             :             {
     681           0 :                 bFound = true;
     682           0 :                 break;
     683             :             }
     684             :     }
     685           0 :     if(bFound)
     686             :     {
     687           0 :         if(m_pAutoTextGroupLB->GetSelectEntryPos() != i)
     688             :         {
     689           0 :             m_pAutoTextGroupLB->SelectEntryPos(i);
     690           0 :             AutoTextSelectHdl(m_pAutoTextGroupLB);
     691             :         }
     692           0 :         if(lcl_FindBlock(*m_pAutoTextLB, aLabItem.sGlossaryBlockName))
     693             :         {
     694           0 :             SvTreeListEntry* pSelEntry = m_pAutoTextLB->FirstSelected();
     695           0 :             if( pSelEntry &&
     696           0 :                 *(OUString*)pSelEntry->GetUserData() != aLabItem.sGlossaryBlockName)
     697             :             {
     698           0 :                 lcl_SelectBlock(*m_pAutoTextLB, aLabItem.sGlossaryBlockName);
     699           0 :                 AutoTextSelectHdl(m_pAutoTextLB);
     700             :             }
     701             :         }
     702             :     }
     703           0 : }
     704             : 
     705           0 : SwPrivateDataPage::SwPrivateDataPage(vcl::Window* pParent, const SfxItemSet& rSet)
     706             :     : SfxTabPage(pParent, "PrivateUserPage",
     707           0 :         "modules/swriter/ui/privateuserpage.ui", &rSet)
     708             : {
     709           0 :     get(m_pFirstNameED, "firstname");
     710           0 :     get(m_pNameED, "lastname");
     711           0 :     get(m_pShortCutED, "shortname");
     712           0 :     get(m_pFirstName2ED, "firstname2");
     713           0 :     get(m_pName2ED, "lastname2");
     714           0 :     get(m_pShortCut2ED, "shortname2");
     715           0 :     get(m_pStreetED, "street");
     716           0 :     get(m_pZipED, "izip");
     717           0 :     get(m_pCityED, "icity");
     718           0 :     get(m_pCountryED, "country");
     719           0 :     get(m_pStateED, "state");
     720           0 :     get(m_pTitleED, "title");
     721           0 :     get(m_pProfessionED, "job");
     722           0 :     get(m_pPhoneED, "phone");
     723           0 :     get(m_pMobilePhoneED, "mobile");
     724           0 :     get(m_pFaxED, "fax");
     725           0 :     get(m_pHomePageED, "url");
     726           0 :     get(m_pMailED, "email");
     727             : 
     728           0 :     SetExchangeSupport();
     729           0 : }
     730             : 
     731           0 : SfxTabPage* SwPrivateDataPage::Create(vcl::Window* pParent, const SfxItemSet* rSet)
     732             : {
     733           0 :     return new SwPrivateDataPage(pParent, *rSet);
     734             : }
     735             : 
     736           0 : void SwPrivateDataPage::ActivatePage(const SfxItemSet& rSet)
     737             : {
     738           0 :     Reset(&rSet);
     739           0 : }
     740             : 
     741           0 : int  SwPrivateDataPage::DeactivatePage(SfxItemSet* _pSet)
     742             : {
     743           0 :     if (_pSet)
     744           0 :         FillItemSet(_pSet);
     745           0 :     return LEAVE_PAGE;
     746             : }
     747             : 
     748           0 : bool SwPrivateDataPage::FillItemSet(SfxItemSet* rSet)
     749             : {
     750             : 
     751           0 :     SwLabItem aItem = (const SwLabItem&) GetTabDialog()->GetExampleSet()->Get(FN_LABEL);
     752           0 :     aItem.aPrivFirstName = m_pFirstNameED->GetText();
     753           0 :     aItem.aPrivName      = m_pNameED->GetText(  );
     754           0 :     aItem.aPrivShortCut  = m_pShortCutED->GetText(  );
     755           0 :     aItem.aPrivFirstName2 = m_pFirstName2ED->GetText();
     756           0 :     aItem.aPrivName2     = m_pName2ED->GetText(  );
     757           0 :     aItem.aPrivShortCut2 = m_pShortCut2ED->GetText(  );
     758           0 :     aItem.aPrivStreet    = m_pStreetED->GetText(  );
     759           0 :     aItem.aPrivZip       = m_pZipED->GetText(  );
     760           0 :     aItem.aPrivCity      = m_pCityED->GetText(  );
     761           0 :     aItem.aPrivCountry   = m_pCountryED->GetText(  );
     762           0 :     aItem.aPrivState     = m_pStateED->GetText(  );
     763           0 :     aItem.aPrivTitle     = m_pTitleED->GetText(  );
     764           0 :     aItem.aPrivProfession= m_pProfessionED->GetText(   );
     765           0 :     aItem.aPrivPhone     = m_pPhoneED->GetText(  );
     766           0 :     aItem.aPrivMobile    = m_pMobilePhoneED->GetText(  );
     767           0 :     aItem.aPrivFax       = m_pFaxED->GetText(  );
     768           0 :     aItem.aPrivWWW       = m_pHomePageED->GetText(  );
     769           0 :     aItem.aPrivMail      = m_pMailED->GetText(  );
     770             : 
     771           0 :     rSet->Put(aItem);
     772           0 :     return true;
     773             : }
     774             : 
     775           0 : void SwPrivateDataPage::Reset(const SfxItemSet* rSet)
     776             : {
     777           0 :     const SwLabItem& aItem = (const SwLabItem&) rSet->Get(FN_LABEL);
     778           0 :     m_pFirstNameED->SetText(aItem.aPrivFirstName);
     779           0 :     m_pNameED->SetText(aItem.aPrivName);
     780           0 :     m_pShortCutED->SetText(aItem.aPrivShortCut);
     781           0 :     m_pFirstName2ED->SetText(aItem.aPrivFirstName2);
     782           0 :     m_pName2ED->SetText(aItem.aPrivName2);
     783           0 :     m_pShortCut2ED->SetText(aItem.aPrivShortCut2);
     784           0 :     m_pStreetED->SetText(aItem.aPrivStreet);
     785           0 :     m_pZipED->SetText(aItem.aPrivZip);
     786           0 :     m_pCityED->SetText(aItem.aPrivCity);
     787           0 :     m_pCountryED->SetText(aItem.aPrivCountry);
     788           0 :     m_pStateED->SetText(aItem.aPrivState);
     789           0 :     m_pTitleED->SetText(aItem.aPrivTitle);
     790           0 :     m_pProfessionED->SetText(aItem.aPrivProfession);
     791           0 :     m_pPhoneED->SetText(aItem.aPrivPhone);
     792           0 :     m_pMobilePhoneED->SetText(aItem.aPrivMobile);
     793           0 :     m_pFaxED->SetText(aItem.aPrivFax);
     794           0 :     m_pHomePageED->SetText(aItem.aPrivWWW);
     795           0 :     m_pMailED->SetText(aItem.aPrivMail);
     796           0 : }
     797             : 
     798           0 : SwBusinessDataPage::SwBusinessDataPage(vcl::Window* pParent, const SfxItemSet& rSet)
     799             :     : SfxTabPage(pParent, "BusinessDataPage",
     800           0 :         "modules/swriter/ui/businessdatapage.ui", &rSet)
     801             : {
     802           0 :     get(m_pCompanyED, "company");
     803           0 :     get(m_pCompanyExtED, "company2");
     804           0 :     get(m_pSloganED, "slogan");
     805           0 :     get(m_pStreetED, "street");
     806           0 :     get(m_pZipED, "izip");
     807           0 :     get(m_pCityED, "icity");
     808           0 :     get(m_pCountryED, "country");
     809           0 :     get(m_pStateED, "state");
     810           0 :     get(m_pPositionED, "position");
     811           0 :     get(m_pPhoneED, "phone");
     812           0 :     get(m_pMobilePhoneED, "mobile");
     813           0 :     get(m_pFaxED, "fax");
     814           0 :     get(m_pHomePageED, "url");
     815           0 :     get(m_pMailED, "email");
     816           0 :     SetExchangeSupport();
     817           0 : }
     818             : 
     819           0 : SfxTabPage* SwBusinessDataPage::Create(vcl::Window* pParent, const SfxItemSet* rSet)
     820             : {
     821           0 :     return new SwBusinessDataPage(pParent, *rSet);
     822             : }
     823             : 
     824           0 : void SwBusinessDataPage::ActivatePage(const SfxItemSet& rSet)
     825             : {
     826           0 :     Reset(&rSet);
     827           0 : }
     828             : 
     829           0 : int  SwBusinessDataPage::DeactivatePage(SfxItemSet* _pSet)
     830             : {
     831           0 :     if (_pSet)
     832           0 :         FillItemSet(_pSet);
     833           0 :     return LEAVE_PAGE;
     834             : }
     835             : 
     836           0 : bool SwBusinessDataPage::FillItemSet(SfxItemSet* rSet)
     837             : {
     838           0 :     SwLabItem aItem = (const SwLabItem&) GetTabDialog()->GetExampleSet()->Get(FN_LABEL);
     839             : 
     840           0 :     aItem.aCompCompany   = m_pCompanyED->GetText();
     841           0 :     aItem.aCompCompanyExt= m_pCompanyExtED->GetText();
     842           0 :     aItem.aCompSlogan    = m_pSloganED->GetText();
     843           0 :     aItem.aCompStreet    = m_pStreetED->GetText();
     844           0 :     aItem.aCompZip       = m_pZipED->GetText();
     845           0 :     aItem.aCompCity      = m_pCityED->GetText();
     846           0 :     aItem.aCompCountry   = m_pCountryED->GetText();
     847           0 :     aItem.aCompState     = m_pStateED->GetText();
     848           0 :     aItem.aCompPosition  = m_pPositionED->GetText();
     849           0 :     aItem.aCompPhone     = m_pPhoneED->GetText();
     850           0 :     aItem.aCompMobile    = m_pMobilePhoneED->GetText();
     851           0 :     aItem.aCompFax       = m_pFaxED->GetText();
     852           0 :     aItem.aCompWWW       = m_pHomePageED->GetText();
     853           0 :     aItem.aCompMail      = m_pMailED->GetText();
     854             : 
     855           0 :     rSet->Put(aItem);
     856           0 :     return true;
     857             : }
     858             : 
     859           0 : void SwBusinessDataPage::Reset(const SfxItemSet* rSet)
     860             : {
     861           0 :     const SwLabItem& aItem = (const SwLabItem&) rSet->Get(FN_LABEL);
     862           0 :     m_pCompanyED->SetText(aItem.aCompCompany);
     863           0 :     m_pCompanyExtED->SetText(aItem.aCompCompanyExt);
     864           0 :     m_pSloganED->SetText(aItem.aCompSlogan);
     865           0 :     m_pStreetED->SetText(aItem.aCompStreet);
     866           0 :     m_pZipED->SetText(aItem.aCompZip);
     867           0 :     m_pCityED->SetText(aItem.aCompCity);
     868           0 :     m_pCountryED->SetText(aItem.aCompCountry);
     869           0 :     m_pStateED->SetText(aItem.aCompState);
     870           0 :     m_pPositionED->SetText(aItem.aCompPosition);
     871           0 :     m_pPhoneED->SetText(aItem.aCompPhone);
     872           0 :     m_pMobilePhoneED->SetText(aItem.aCompMobile);
     873           0 :     m_pFaxED->SetText(aItem.aCompFax);
     874           0 :     m_pHomePageED->SetText(aItem.aCompWWW);
     875           0 :     m_pMailED->SetText(aItem.aCompMail);
     876           0 : }
     877             : 
     878             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10