1 /* This file is part of the KDE project
3 Copyright (C) 2005 Dario Massarin <nekkar@libero.it>
4 Copyright (C) 2007 Urs Wolfer <uwolfer @ kde.org>
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public
8 License as published by the Free Software Foundation; either
9 version 2 of the License, or (at your option) any later version.
13 #ifndef _VIEWSCONTAINER_H
14 #define _VIEWSCONTAINER_H
17 #include <QToolButton>
18 #include <QVBoxLayout>
19 #include <QHBoxLayout>
20 #include <QStackedLayout>
26 class TransfersViewDelegate
;
27 class TransferHandler
;
29 class TitleBar
: public QWidget
33 TitleBar(QWidget
* parent
= 0);
35 void setTransfer(TransferHandler
* transfer
);
36 void setDownloadsWindow();
37 void setFinishedWindow();
40 KTitleWidget
*m_titleWidget
;
43 class ButtonBase
: public QToolButton
47 ButtonBase(QWidget
* parent
= 0);
50 virtual void slotToggled(bool checked
);
56 class TransfersButton
: public ButtonBase
63 void addTransfer(TransferHandler
* transfer
);
64 void removeTransfer(TransferHandler
* transfer
);
65 void setTransfer(TransferHandler
* transfer
);
68 void selectedTransfer(TransferHandler
* transfer
);
71 void slotToggled(bool checked
);
72 void slotActionTriggered(QAction
*);
75 TransferHandler
* m_selectedTransfer
;
77 QMap
<QAction
*, TransferHandler
*> m_transfersMap
;
80 class ViewsContainer
: public QWidget
84 ViewsContainer(QWidget
* parent
= 0);
87 void setExpandableDetails(bool show
);
88 void showTransferDetails(TransferHandler
* transfer
);
89 void closeTransferDetails(TransferHandler
* transfer
);
91 void showDownloadsWindow();
92 void showFinishedWindow();
95 void slotTransferSelected(TransferHandler
* transfer
);
98 QWidget
* m_bottomBar
;
99 QVBoxLayout
* m_VLayout
;
100 QHBoxLayout
* m_HLayout
;
101 QStackedLayout
* m_SLayout
;
103 TitleBar
* m_titleBar
;
105 TransfersView
* m_transfersView
;
106 TransfersViewDelegate
* m_transfersViewDelegate
;
108 // QWidget * m_finishedView; //TODO: This view has still to be created.
110 ButtonBase
* m_downloadsBt
;
111 // ButtonBase * m_finishedBt;
112 TransfersButton
* m_transfersBt
;
114 QMap
<TransferHandler
*, QWidget
*> m_transfersMap
;