2 Copyright (C) 2010 Casey Link <unnamedrambler@gmail.com>
3 Copyright (C) 2009-2010 Klaralvdalens Datakonsult AB, a KDAB Group company <info@kdab.net>
5 Refactored from earlier code by:
6 Copyright (c) 2010 Volker Krause <vkrause@kde.org>
7 Copyright (c) 2004 Cornelius Schumacher <schumacher@kde.org>
9 This library is free software; you can redistribute it and/or modify it
10 under the terms of the GNU Library General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or (at your
12 option) any later version.
14 This library is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
17 License for more details.
19 You should have received a copy of the GNU Library General Public License
20 along with this library; see the file COPYING.LIB. If not, write to the
21 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
25 #include "multiplyinglineeditor.h"
26 #include "multiplyinglineview_p.h"
31 #include <QHBoxLayout>
33 MultiplyingLineEditor::MultiplyingLineEditor( MultiplyingLineFactory
* factory
, QWidget
*parent
)
34 : QWidget( parent
), mModified( false ), mMultiplyingLineFactory( factory
)
36 QBoxLayout
*topLayout
= new QHBoxLayout();
37 topLayout
->setSpacing( KDialog::spacingHint() );
38 topLayout
->setMargin( 0 );
39 setLayout( topLayout
);
41 mView
= new MultiplyingLineView( mMultiplyingLineFactory
, this );
42 topLayout
->addWidget( mView
);
43 connect( mView
, SIGNAL(focusUp()), SIGNAL(focusUp()) );
44 connect( mView
, SIGNAL(focusDown()), SIGNAL(focusDown()) );
45 connect( mView
, SIGNAL(completionModeChanged(KGlobalSettings::Completion
)),
46 SIGNAL(completionModeChanged(KGlobalSettings::Completion
)) );
47 connect( mView
, SIGNAL(lineDeleted(int)), SIGNAL(lineDeleted(int)) );
48 connect( mView
, SIGNAL(lineAdded(KPIM::MultiplyingLine
*)), SIGNAL(lineAdded(KPIM::MultiplyingLine
*)) );
49 connect( mView
, SIGNAL(sizeHintChanged()),
50 SIGNAL(sizeHintChanged()) );
53 MultiplyingLineEditor::~MultiplyingLineEditor()
55 delete mMultiplyingLineFactory
;
58 void MultiplyingLineEditor::addData( const MultiplyingLineData::Ptr
&data
)
60 MultiplyingLine
* line
= mView
->emptyLine();
62 line
= mView
->addLine();
64 line
->setData( data
);
67 void MultiplyingLineEditor::removeData( const MultiplyingLineData::Ptr
&data
)
69 mView
->removeData( data
);
72 void MultiplyingLineEditor::clear()
74 foreach ( MultiplyingLine
*line
, mView
->lines() )
75 line
->slotPropagateDeletion();
78 bool MultiplyingLineEditor::isModified()
80 return mModified
|| mView
->isModified();
83 void MultiplyingLineEditor::clearModified()
86 mView
->clearModified();
89 void MultiplyingLineEditor::setFocus()
94 void MultiplyingLineEditor::setFocusTop()
99 void MultiplyingLineEditor::setFocusBottom()
101 mView
->setFocusBottom();
104 int MultiplyingLineEditor::setFirstColumnWidth( int w
)
106 return mView
->setFirstColumnWidth( w
);
109 void MultiplyingLineEditor::setCompletionMode( KGlobalSettings::Completion mode
)
111 mView
->setCompletionMode( mode
);
114 MultiplyingLineFactory
* MultiplyingLineEditor::factory() const
116 return mMultiplyingLineFactory
;
119 QList
< MultiplyingLineData::Ptr
> MultiplyingLineEditor::allData() const
121 return mView
->allData();
124 MultiplyingLineData::Ptr
MultiplyingLineEditor::activeData() const
126 return mView
->activeLine()->data();
130 QList
< MultiplyingLine
* > MultiplyingLineEditor::lines() const
132 return mView
->lines();
135 MultiplyingLine
* MultiplyingLineEditor::activeLine() const
137 return mView
->activeLine();
140 void MultiplyingLineEditor::setFrameStyle( int shape
)
142 mView
->setFrameStyle( shape
);
145 void MultiplyingLineEditor::setAutoResizeView( bool resize
)
147 mView
->setAutoResize( resize
);
150 bool MultiplyingLineEditor::autoResizeView()
152 return mView
->autoResize();
155 void MultiplyingLineEditor::setDynamicSizeHint( bool dynamic
)
157 mView
->setDynamicSizeHint( dynamic
);
160 bool MultiplyingLineEditor::dynamicSizeHint() const
162 return mView
->dynamicSizeHint();
165 #include "multiplyinglineeditor.moc"