/*************************************************************************** * Copyright (C) 2001-2002 by Bernd Gehrmann * * bernd@kdevelop.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "filegroupspart.h" #include "filegroupspart.moc" #include #include #include #include #include #include #include #include #include #include "kdevcore.h" #include "kdevproject.h" #include "kdevmainwindow.h" #include "kdevplugininfo.h" #include "filegroupswidget.h" #include "filegroupsconfigwidget.h" #define FILEGROUPS_OPTIONS 1 typedef KDevGenericFactory FileGroupsFactory; static const KDevPluginInfo data("kdevfilegroups"); K_EXPORT_COMPONENT_FACTORY( libkdevfilegroups, FileGroupsFactory( data ) ) FileGroupsPart::FileGroupsPart(TQObject *parent, const char *name, const TQStringList &) : KDevPlugin(&data, parent, name ? name : "FileGroupsPart") { deleteRequested = false; setInstance(FileGroupsFactory::instance()); m_filegroups = new FileGroupsWidget(this); m_filegroups->setCaption(i18n("File Group View")); m_filegroups->setIcon(SmallIcon( info()->icon() ) ); TQWhatsThis::add(m_filegroups, i18n("File group view

" "The file group viewer shows all files of the project, " "in groups which can be configured in project settings dialog, File Groups tab.")); mainWindow()->embedSelectView(m_filegroups, i18n("File Groups"), i18n("File groups in the project directory")); _configProxy = new ConfigWidgetProxy( core() ); _configProxy->createProjectConfigPage( i18n("File Groups"), FILEGROUPS_OPTIONS, info()->icon() ); connect( _configProxy, TQT_SIGNAL(insertConfigWidget(const KDialogBase*, TQWidget*, unsigned int )), this, TQT_SLOT(insertConfigWidget(const KDialogBase*, TQWidget*, unsigned int )) ); // File groups connect( project(), TQT_SIGNAL(addedFilesToProject(const TQStringList&)), m_filegroups, TQT_SLOT(addFiles(const TQStringList&)) ); connect( project(), TQT_SIGNAL(removedFilesFromProject(const TQStringList&)), m_filegroups, TQT_SLOT(removeFiles(const TQStringList&)) ); /* connect( project(), TQT_SIGNAL(addedFileToProject(const TQString&)), m_filegroups, TQT_SLOT(addFile(const TQString&)) ); connect( project(), TQT_SIGNAL(removedFileFromProject(const TQString&)), m_filegroups, TQT_SLOT(removeFile(const TQString&)) );*/ m_filegroups->refresh(); } FileGroupsPart::~FileGroupsPart() { deleteRequested = true; if (m_filegroups) mainWindow()->removeView(m_filegroups); delete m_filegroups; delete _configProxy; } void FileGroupsPart::refresh() { if (deleteRequested) return; // This method may be called from m_filetree's slot, // so we make sure not to modify the list view during // the execution of the slot TQTimer::singleShot(0, m_filegroups, TQT_SLOT(refresh())); } void FileGroupsPart::insertConfigWidget( const KDialogBase * dlg, TQWidget * page, unsigned int pagenumber ) { if ( pagenumber == FILEGROUPS_OPTIONS ) { FileGroupsConfigWidget *w = new FileGroupsConfigWidget(this, page, "file groups config widget"); connect( dlg, TQT_SIGNAL(okClicked()), w, TQT_SLOT(accept()) ); } }