* maximal -> maximum
[kdenetwork.git] / kget / ui / viewscontainer.h
blobd38caf7c4bc0833cafe1ecd884367bb6636ca5fd
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
16 #include <QWidget>
17 #include <QToolButton>
18 #include <QVBoxLayout>
19 #include <QHBoxLayout>
20 #include <QStackedLayout>
21 #include <QMap>
23 class KTitleWidget;
25 class TransfersView;
26 class TransfersViewDelegate;
27 class TransferHandler;
29 class TitleBar : public QWidget
31 Q_OBJECT
32 public:
33 TitleBar(QWidget * parent = 0);
35 void setTransfer(TransferHandler * transfer);
36 void setDownloadsWindow();
37 void setFinishedWindow();
39 private:
40 KTitleWidget *m_titleWidget;
43 class ButtonBase : public QToolButton
45 Q_OBJECT
46 public:
47 ButtonBase(QWidget * parent = 0);
49 public slots:
50 virtual void slotToggled(bool checked);
52 signals:
53 void activated();
56 class TransfersButton : public ButtonBase
58 Q_OBJECT
59 public:
60 TransfersButton();
62 public slots:
63 void addTransfer(TransferHandler * transfer);
64 void removeTransfer(TransferHandler * transfer);
65 void setTransfer(TransferHandler * transfer);
67 signals:
68 void selectedTransfer(TransferHandler * transfer);
70 private slots:
71 void slotToggled(bool checked);
72 void slotActionTriggered(QAction *);
74 private:
75 TransferHandler * m_selectedTransfer;
76 QMenu * m_menu;
77 QMap<QAction *, TransferHandler *> m_transfersMap;
80 class ViewsContainer : public QWidget
82 Q_OBJECT
83 public:
84 ViewsContainer(QWidget * parent = 0);
86 public slots:
87 void setExpandableDetails(bool show);
88 void showTransferDetails(TransferHandler * transfer);
89 void closeTransferDetails(TransferHandler * transfer);
91 void showDownloadsWindow();
92 void showFinishedWindow();
94 private slots:
95 void slotTransferSelected(TransferHandler * transfer);
97 private:
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;
117 #endif