Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Unmaintained
KDE Pim
Commits
95683c61
Commit
95683c61
authored
Nov 10, 2014
by
Laurent Montel
😁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Change parameter order. Use Splitter as parent. Fix varialble name from private class etc.
parent
06470f46
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
70 additions
and
70 deletions
+70
-70
grantleeeditor/contactthemeeditor/editorpage.cpp
grantleeeditor/contactthemeeditor/editorpage.cpp
+1
-1
grantleeeditor/headerthemeeditor/editorpage.cpp
grantleeeditor/headerthemeeditor/editorpage.cpp
+1
-1
kmail/editor/kmcomposewin.cpp
kmail/editor/kmcomposewin.cpp
+1
-1
libksieve/ksieveui/editor/sieveeditortextmodewidget.cpp
libksieve/ksieveui/editor/sieveeditortextmodewidget.cpp
+1
-1
pimcommon/widgets/splittercollapser.cpp
pimcommon/widgets/splittercollapser.cpp
+51
-51
pimcommon/widgets/splittercollapser.h
pimcommon/widgets/splittercollapser.h
+3
-4
pimcommon/widgets/tests/splittercollapsergui_test.cpp
pimcommon/widgets/tests/splittercollapsergui_test.cpp
+2
-2
pimcommon/widgets/tests/splittercollapsertest.cpp
pimcommon/widgets/tests/splittercollapsertest.cpp
+9
-8
pimcommon/widgets/tests/splittercollapsertest.h
pimcommon/widgets/tests/splittercollapsertest.h
+1
-1
No files found.
grantleeeditor/contactthemeeditor/editorpage.cpp
View file @
95683c61
...
...
@@ -65,7 +65,7 @@ EditorPage::EditorPage(GrantleeThemeEditor::EditorPage::PageType type, const QSt
connect
(
mContactTemplate
,
SIGNAL
(
insertTemplate
(
QString
)),
mEditor
->
editor
(),
SLOT
(
insertPlainText
(
QString
)));
mMainSplitter
->
addWidget
(
mContactTemplate
);
mMainSplitter
->
setCollapsible
(
0
,
false
);
new
PimCommon
::
SplitterCollapser
(
mMainSplitter
,
mContactTemplate
,
this
);
new
PimCommon
::
SplitterCollapser
(
mContactTemplate
,
mMainSplitter
);
connect
(
mEditor
->
editor
(),
SIGNAL
(
textChanged
()),
this
,
SIGNAL
(
changed
()));
...
...
grantleeeditor/headerthemeeditor/editorpage.cpp
View file @
95683c61
...
...
@@ -64,7 +64,7 @@ EditorPage::EditorPage(GrantleeThemeEditor::EditorPage::PageType type, const QSt
connect
(
mThemeTemplate
,
SIGNAL
(
insertTemplate
(
QString
)),
mEditor
->
editor
(),
SLOT
(
insertPlainText
(
QString
)));
mMainSplitter
->
addWidget
(
mThemeTemplate
);
mMainSplitter
->
setCollapsible
(
0
,
false
);
new
PimCommon
::
SplitterCollapser
(
mMainSplitter
,
mThemeTemplate
,
this
);
new
PimCommon
::
SplitterCollapser
(
mThemeTemplate
,
mMainSplitter
);
connect
(
mEditor
->
editor
(),
SIGNAL
(
textChanged
()),
this
,
SIGNAL
(
changed
()));
...
...
kmail/editor/kmcomposewin.cpp
View file @
95683c61
...
...
@@ -391,7 +391,7 @@ KMComposeWin::KMComposeWin( const KMime::Message::Ptr &aMsg, bool lastSignState,
mSnippetWidget
->
setVisible
(
GlobalSettings
::
self
()
->
showSnippetManager
()
);
mSnippetSplitter
->
addWidget
(
mSnippetWidget
);
mSnippetSplitter
->
setCollapsible
(
0
,
false
);
mSnippetSplitterCollapser
=
new
PimCommon
::
SplitterCollapser
(
mSnippet
Splitter
,
mSnippet
Widget
,
this
);
mSnippetSplitterCollapser
=
new
PimCommon
::
SplitterCollapser
(
mSnippet
Widget
,
mSnippet
Splitter
);
mSnippetSplitterCollapser
->
setVisible
(
GlobalSettings
::
self
()
->
showSnippetManager
()
);
mSplitter
->
setOpaqueResize
(
true
);
...
...
libksieve/ksieveui/editor/sieveeditortextmodewidget.cpp
View file @
95683c61
...
...
@@ -112,7 +112,7 @@ SieveEditorTextModeWidget::SieveEditorTextModeWidget(QWidget *parent)
mTemplateSplitter
->
addWidget
(
textEditWidget
);
mTemplateSplitter
->
addWidget
(
mExtraSplitter
);
mTemplateSplitter
->
setCollapsible
(
0
,
false
);
new
PimCommon
::
SplitterCollapser
(
m
Template
Splitter
,
m
Extra
Splitter
,
this
);
new
PimCommon
::
SplitterCollapser
(
m
Extra
Splitter
,
m
Template
Splitter
);
connect
(
sieveTemplateWidget
,
SIGNAL
(
insertTemplate
(
QString
)),
mTextEdit
,
SLOT
(
insertPlainText
(
QString
)));
...
...
pimcommon/widgets/splittercollapser.cpp
View file @
95683c61
...
...
@@ -63,11 +63,11 @@ public:
Private
(
SplitterCollapser
*
qq
);
SplitterCollapser
*
q
;
QSplitter
*
mS
plitter
;
QWidget
*
m
Widget
;
Direction
mD
irection
;
QTimeLine
*
mO
pacityTimeLine
;
QList
<
int
>
mS
izeAtCollapse
;
QSplitter
*
s
plitter
;
QWidget
*
child
Widget
;
Direction
d
irection
;
QTimeLine
*
o
pacityTimeLine
;
QList
<
int
>
s
izeAtCollapse
;
bool
isVertical
()
const
;
...
...
@@ -86,21 +86,21 @@ public:
SplitterCollapser
::
Private
::
Private
(
PimCommon
::
SplitterCollapser
*
qq
)
:
q
(
qq
),
mS
plitter
(
0
),
m
Widget
(
0
),
mO
pacityTimeLine
(
0
)
s
plitter
(
0
),
child
Widget
(
0
),
o
pacityTimeLine
(
0
)
{
}
bool
SplitterCollapser
::
Private
::
isVertical
()
const
{
return
(
mS
plitter
->
orientation
()
==
Qt
::
Vertical
);
return
(
s
plitter
->
orientation
()
==
Qt
::
Vertical
);
}
bool
SplitterCollapser
::
Private
::
isVisible
()
const
{
const
QRect
widgetRect
=
m
Widget
->
geometry
();
const
QRect
widgetRect
=
child
Widget
->
geometry
();
const
QPoint
br
=
widgetRect
.
bottomRight
();
if
((
br
.
x
()
<=
0
)
||
(
br
.
y
()
<=
0
))
{
return
false
;
...
...
@@ -113,15 +113,15 @@ void SplitterCollapser::Private::updatePosition()
{
int
x
=
0
;
int
y
=
0
;
const
QRect
widgetRect
=
m
Widget
->
geometry
();
const
int
handleWidth
=
mS
plitter
->
handleWidth
();
const
QRect
widgetRect
=
child
Widget
->
geometry
();
const
int
handleWidth
=
s
plitter
->
handleWidth
();
if
(
!
isVertical
())
{
const
int
splitterWidth
=
mS
plitter
->
width
();
const
int
splitterWidth
=
s
plitter
->
width
();
const
int
width
=
q
->
width
();
// FIXME: Make this configurable
y
=
30
;
if
(
mD
irection
==
LeftToRight
)
{
if
(
d
irection
==
LeftToRight
)
{
if
(
isVisible
())
{
x
=
widgetRect
.
right
()
+
handleWidth
;
}
else
{
...
...
@@ -137,8 +137,8 @@ void SplitterCollapser::Private::updatePosition()
}
else
{
x
=
30
;
const
int
height
=
q
->
height
();
const
int
splitterHeight
=
mS
plitter
->
height
();
if
(
mD
irection
==
TopToBottom
)
{
const
int
splitterHeight
=
s
plitter
->
height
();
if
(
d
irection
==
TopToBottom
)
{
if
(
isVisible
())
{
y
=
widgetRect
.
bottom
()
+
handleWidth
;
}
else
{
...
...
@@ -157,7 +157,7 @@ void SplitterCollapser::Private::updatePosition()
void
SplitterCollapser
::
Private
::
updateArrow
()
{
q
->
setArrowType
(
isVisible
()
?
s_arrowDirection
[
mD
irection
].
arrowVisible
:
s_arrowDirection
[
mD
irection
].
notArrowVisible
);
q
->
setArrowType
(
isVisible
()
?
s_arrowDirection
[
d
irection
].
arrowVisible
:
s_arrowDirection
[
d
irection
].
notArrowVisible
);
}
void
SplitterCollapser
::
Private
::
widgetEventFilter
(
QEvent
*
event
)
...
...
@@ -186,26 +186,26 @@ void SplitterCollapser::Private::updateOpacity()
const
QPoint
pos
=
q
->
parentWidget
()
->
mapFromGlobal
(
QCursor
::
pos
());
const
QRect
opaqueRect
=
q
->
geometry
();
const
bool
opaqueCollapser
=
opaqueRect
.
contains
(
pos
);
const
int
frame
=
mO
pacityTimeLine
->
currentFrame
();
if
(
opaqueCollapser
&&
frame
==
mO
pacityTimeLine
->
startFrame
())
{
mO
pacityTimeLine
->
setDirection
(
QTimeLine
::
Forward
);
const
int
frame
=
o
pacityTimeLine
->
currentFrame
();
if
(
opaqueCollapser
&&
frame
==
o
pacityTimeLine
->
startFrame
())
{
o
pacityTimeLine
->
setDirection
(
QTimeLine
::
Forward
);
startTimeLine
();
}
else
if
(
!
opaqueCollapser
&&
frame
==
mO
pacityTimeLine
->
endFrame
())
{
mO
pacityTimeLine
->
setDirection
(
QTimeLine
::
Backward
);
}
else
if
(
!
opaqueCollapser
&&
frame
==
o
pacityTimeLine
->
endFrame
())
{
o
pacityTimeLine
->
setDirection
(
QTimeLine
::
Backward
);
startTimeLine
();
}
}
void
SplitterCollapser
::
Private
::
startTimeLine
()
{
if
(
mO
pacityTimeLine
->
state
()
!=
QTimeLine
::
Running
)
{
mO
pacityTimeLine
->
start
();
if
(
o
pacityTimeLine
->
state
()
!=
QTimeLine
::
Running
)
{
o
pacityTimeLine
->
start
();
}
}
SplitterCollapser
::
SplitterCollapser
(
QSplitter
*
splitter
,
QWidget
*
w
idget
,
Q
Widget
*
parent
)
:
QToolButton
(
parent
),
SplitterCollapser
::
SplitterCollapser
(
QWidget
*
childW
idget
,
Q
Splitter
*
splitter
)
:
QToolButton
(),
d
(
new
Private
(
this
))
{
setObjectName
(
QLatin1String
(
"splittercollapser"
));
...
...
@@ -213,32 +213,32 @@ SplitterCollapser::SplitterCollapser(QSplitter *splitter, QWidget *widget, QWidg
// splitter!
setAttribute
(
Qt
::
WA_NoChildEventsForParent
);
d
->
mO
pacityTimeLine
=
new
QTimeLine
(
TIMELINE_DURATION
,
this
);
d
->
mO
pacityTimeLine
->
setFrameRange
(
int
(
MINIMUM_OPACITY
*
1000
),
1000
);
connect
(
d
->
mO
pacityTimeLine
,
SIGNAL
(
valueChanged
(
qreal
)),
SLOT
(
update
()));
d
->
o
pacityTimeLine
=
new
QTimeLine
(
TIMELINE_DURATION
,
this
);
d
->
o
pacityTimeLine
->
setFrameRange
(
int
(
MINIMUM_OPACITY
*
1000
),
1000
);
connect
(
d
->
o
pacityTimeLine
,
SIGNAL
(
valueChanged
(
qreal
)),
SLOT
(
update
()));
d
->
m
Widget
=
w
idget
;
d
->
m
Widget
->
installEventFilter
(
this
);
d
->
child
Widget
=
childW
idget
;
d
->
child
Widget
->
installEventFilter
(
this
);
qApp
->
installEventFilter
(
this
);
d
->
mS
plitter
=
splitter
;
setParent
(
d
->
mS
plitter
);
d
->
s
plitter
=
splitter
;
setParent
(
d
->
s
plitter
);
switch
(
splitter
->
orientation
())
{
case
Qt
::
Horizontal
:
{
if
(
splitter
->
indexOf
(
w
idget
)
<
splitter
->
count
()
/
2
)
{
d
->
mD
irection
=
LeftToRight
;
if
(
splitter
->
indexOf
(
childW
idget
)
<
splitter
->
count
()
/
2
)
{
d
->
d
irection
=
LeftToRight
;
}
else
{
d
->
mD
irection
=
RightToLeft
;
d
->
d
irection
=
RightToLeft
;
}
break
;
}
case
Qt
::
Vertical
:
if
(
splitter
->
indexOf
(
w
idget
)
<
splitter
->
count
()
/
2
)
{
d
->
mD
irection
=
TopToBottom
;
if
(
splitter
->
indexOf
(
childW
idget
)
<
splitter
->
count
()
/
2
)
{
d
->
d
irection
=
TopToBottom
;
}
else
{
d
->
mD
irection
=
BottomToTop
;
d
->
d
irection
=
BottomToTop
;
}
break
;
}
...
...
@@ -260,7 +260,7 @@ bool SplitterCollapser::isCollapsed() const
bool
SplitterCollapser
::
eventFilter
(
QObject
*
object
,
QEvent
*
event
)
{
if
(
object
==
d
->
m
Widget
)
{
if
(
object
==
d
->
child
Widget
)
{
d
->
widgetEventFilter
(
event
);
}
else
{
/* app */
if
(
event
->
type
()
==
QEvent
::
MouseMove
)
{
...
...
@@ -282,23 +282,23 @@ QSize SplitterCollapser::sizeHint() const
void
SplitterCollapser
::
slotClicked
()
{
QList
<
int
>
sizes
=
d
->
mS
plitter
->
sizes
();
const
int
index
=
d
->
mS
plitter
->
indexOf
(
d
->
m
Widget
);
QList
<
int
>
sizes
=
d
->
s
plitter
->
sizes
();
const
int
index
=
d
->
s
plitter
->
indexOf
(
d
->
child
Widget
);
if
(
d
->
isVisible
())
{
d
->
mS
izeAtCollapse
=
sizes
;
d
->
s
izeAtCollapse
=
sizes
;
sizes
[
index
]
=
0
;
}
else
{
if
(
!
d
->
mS
izeAtCollapse
.
isEmpty
())
{
sizes
=
d
->
mS
izeAtCollapse
;
if
(
!
d
->
s
izeAtCollapse
.
isEmpty
())
{
sizes
=
d
->
s
izeAtCollapse
;
}
else
{
if
(
d
->
isVertical
())
{
sizes
[
index
]
=
d
->
m
Widget
->
sizeHint
().
height
();
sizes
[
index
]
=
d
->
child
Widget
->
sizeHint
().
height
();
}
else
{
sizes
[
index
]
=
d
->
m
Widget
->
sizeHint
().
width
();
sizes
[
index
]
=
d
->
child
Widget
->
sizeHint
().
width
();
}
}
}
d
->
mS
plitter
->
setSizes
(
sizes
);
d
->
s
plitter
->
setSizes
(
sizes
);
}
void
SplitterCollapser
::
collapse
()
...
...
@@ -328,20 +328,20 @@ void SplitterCollapser::setCollapsed(bool collapse)
void
SplitterCollapser
::
paintEvent
(
QPaintEvent
*
)
{
QStylePainter
painter
(
this
);
const
qreal
opacity
=
d
->
mO
pacityTimeLine
->
currentFrame
()
/
1000.
;
const
qreal
opacity
=
d
->
o
pacityTimeLine
->
currentFrame
()
/
1000.
;
painter
.
setOpacity
(
opacity
);
QStyleOptionToolButton
opt
;
initStyleOption
(
&
opt
);
if
(
d
->
isVertical
())
{
if
(
d
->
mD
irection
==
TopToBottom
)
{
if
(
d
->
d
irection
==
TopToBottom
)
{
opt
.
rect
.
setTop
(
-
height
());
}
else
{
opt
.
rect
.
setHeight
(
height
()
*
2
);
}
}
else
{
if
(
d
->
mD
irection
==
LeftToRight
)
{
if
(
d
->
d
irection
==
LeftToRight
)
{
opt
.
rect
.
setLeft
(
-
width
());
}
else
{
opt
.
rect
.
setWidth
(
width
()
*
2
);
...
...
pimcommon/widgets/splittercollapser.h
View file @
95683c61
...
...
@@ -41,11 +41,10 @@ class PIMCOMMON_EXPORT SplitterCollapser : public QToolButton
public:
/**
* @brief SplitterCollapser create a splitter collapser
* @param the splitted which this collapser should be associated with.
* @param widget the widget which be associate with splitter collapser.
* @param parent the parent widget.
* @param childWidget the widget, child of the splitter, whose size is controlled by this collapser
* @param the splitter which this collapser should be associated with.
*/
explicit
SplitterCollapser
(
QSplitter
*
splitter
,
QWidget
*
w
idget
,
Q
Widget
*
parent
=
0
);
explicit
SplitterCollapser
(
QWidget
*
childW
idget
,
Q
Splitter
*
splitter
);
~
SplitterCollapser
();
...
...
pimcommon/widgets/tests/splittercollapsergui_test.cpp
View file @
95683c61
...
...
@@ -36,9 +36,9 @@ SplitterCollapserGui_test::SplitterCollapserGui_test(int indexOfWidgetAssociateT
QTextEdit
*
leftTextEdit
=
new
QTextEdit
;
splitter
->
addWidget
(
leftTextEdit
);
if
(
indexOfWidgetAssociateToSplitterCollapser
==
0
)
{
new
PimCommon
::
SplitterCollapser
(
splitter
,
rightTextEdit
,
this
);
new
PimCommon
::
SplitterCollapser
(
rightTextEdit
,
splitter
);
}
else
{
new
PimCommon
::
SplitterCollapser
(
splitter
,
leftTextEdit
,
this
);
new
PimCommon
::
SplitterCollapser
(
leftTextEdit
,
splitter
);
}
}
...
...
pimcommon/widgets/tests/splittercollapsertest.cpp
View file @
95683c61
...
...
@@ -23,7 +23,8 @@
#include <qtest_kde.h>
#include <qtestmouse.h>
TestSplitter
::
TestSplitter
(
QObject
*
parent
)
TestSplitter
::
TestSplitter
(
QWidget
*
parent
)
:
QWidget
(
parent
)
{
QHBoxLayout
*
lay
=
new
QHBoxLayout
;
setLayout
(
lay
);
...
...
@@ -54,12 +55,13 @@ void SplitterCollapserTest::shouldHasDefaultValue()
{
TestSplitter
testSplitter
;
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
splitter
,
testSplitter
.
edit2
);
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
edit2
,
testSplitter
.
splitter
);
testSplitter
.
show
();
QTest
::
qWaitForWindowShown
(
&
testSplitter
);
QVERIFY
(
testSplitter
.
isVisible
());
PimCommon
::
SplitterCollapser
*
collapser
=
qFindChild
<
PimCommon
::
SplitterCollapser
*>
(
&
testSplitter
,
QLatin1String
(
"splittercollapser"
));
QVERIFY
(
collapser
);
QVERIFY
(
!
collapser
->
isCollapsed
());
...
...
@@ -76,8 +78,7 @@ void SplitterCollapserTest::shouldHasDefaultValue()
void
SplitterCollapserTest
::
shouldCollapsedWhenClickOnButton
()
{
TestSplitter
testSplitter
;
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
splitter
,
testSplitter
.
edit2
);
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
edit2
,
testSplitter
.
splitter
);
testSplitter
.
show
();
QTest
::
qWaitForWindowShown
(
&
testSplitter
);
...
...
@@ -95,7 +96,7 @@ void SplitterCollapserTest::shouldRestoreCorrectPosition()
{
TestSplitter
testSplitter
;
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
splitter
,
testSplitter
.
edit2
);
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
edit2
,
testSplitter
.
splitter
);
testSplitter
.
show
();
QTest
::
qWaitForWindowShown
(
&
testSplitter
);
...
...
@@ -122,7 +123,7 @@ void SplitterCollapserTest::shouldRestoreCorrectPositionForFirstWidget()
{
TestSplitter
testSplitter
;
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
splitter
,
testSplitter
.
edit1
);
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
edit1
,
testSplitter
.
splitter
);
testSplitter
.
show
();
QTest
::
qWaitForWindowShown
(
&
testSplitter
);
...
...
@@ -148,7 +149,7 @@ void SplitterCollapserTest::shouldTestVerticalSplitterFirstWidget()
{
TestSplitter
testSplitter
;
testSplitter
.
splitter
->
setOrientation
(
Qt
::
Vertical
);
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
splitter
,
testSplitter
.
edit1
);
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
edit1
,
testSplitter
.
splitter
);
testSplitter
.
show
();
QTest
::
qWaitForWindowShown
(
&
testSplitter
);
...
...
@@ -175,7 +176,7 @@ void SplitterCollapserTest::shouldTestVerticalSplitterSecondWidget()
{
TestSplitter
testSplitter
;
testSplitter
.
splitter
->
setOrientation
(
Qt
::
Vertical
);
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
splitter
,
testSplitter
.
edit2
);
new
PimCommon
::
SplitterCollapser
(
testSplitter
.
edit2
,
testSplitter
.
splitter
);
testSplitter
.
show
();
QTest
::
qWaitForWindowShown
(
&
testSplitter
);
...
...
pimcommon/widgets/tests/splittercollapsertest.h
View file @
95683c61
...
...
@@ -26,7 +26,7 @@ class TestSplitter : public QWidget
{
Q_OBJECT
public:
explicit
TestSplitter
(
Q
Objec
t
*
parent
=
0
);
explicit
TestSplitter
(
Q
Widge
t
*
parent
=
0
);
QSplitter
*
splitter
;
QTextEdit
*
edit1
;
QTextEdit
*
edit2
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment