00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#include "kateprojectviews.h"
00022
#include "kateprojectviews.moc"
00023
00024
#include "kateprojectmanager.h"
00025
#include "katemainwindow.h"
00026
#include "kactionselector.h"
00027
#include "kateprojecttreeview.h"
00028
00029
#include <qapplication.h>
00030
#include <qlayout.h>
00031
#include <qstringlist.h>
00032
00033
#include <klocale.h>
00034
00035
00036 KateProjectViews::KateProjectViews (KateProjectManager *_projectManager, KateMainWindow *_mainWindow, QWidget * parent,
const char * name ): QWidget (parent, name)
00037 {
00038 setFocusPolicy ((QWidget::FocusPolicy)0);
00039
00040 QVBoxLayout* lo =
new QVBoxLayout(
this);
00041
00042 m_projectManager = _projectManager;
00043 m_mainWindow = _mainWindow;
00044
00045 m_stack =
new QWidgetStack (
this);
00046 lo->addWidget(m_stack);
00047 lo->setStretchFactor(m_stack, 2);
00048
00049
00050
for (uint i = 0; i < m_projectManager->projects(); i++)
00051 projectCreated (m_projectManager->project(i));
00052
00053 projectChanged ();
00054
00055
00056 connect(m_projectManager->projectManager(),SIGNAL(projectCreated(
Kate::Project *)),
this,SLOT(projectCreated(
Kate::Project *)));
00057 connect(m_projectManager->projectManager(),SIGNAL(projectDeleted(uint)),
this,SLOT(projectDeleted(uint)));
00058 connect(m_mainWindow->mainWindow(),SIGNAL(projectChanged()),
this,SLOT(projectChanged()));
00059 }
00060
00061 KateProjectViews::~KateProjectViews ()
00062 {
00063 }
00064
00065
void KateProjectViews::projectChanged ()
00066 {
00067
Kate::Project *p = 0;
00068
00069
if (!(p = m_mainWindow->activeProject()))
00070
return;
00071
00072 m_stack->raiseWidget (m_wMap[p->
projectNumber()]);
00073 }
00074
00075
void KateProjectViews::projectCreated (
Kate::Project *project)
00076 {
00077
if (!project)
00078
return;
00079
00080 KateProjectTreeViewContainer *c =
00081
new KateProjectTreeViewContainer( project, m_mainWindow, m_stack ) ;
00082
00083 m_wMap[project->
projectNumber()] = c;
00084
00085 m_stack->raiseWidget (c);
00086 }
00087
00088
void KateProjectViews::projectDeleted (uint projectNumber)
00089 {
00090 QWidget *w = m_wMap[projectNumber];
00091
00092
if (!w)
00093
return;
00094
00095 m_wMap.remove (projectNumber);
00096 m_stack->removeWidget (w);
00097
delete w;
00098 }