libkdepim Library API Documentation

core.cpp

00001 // -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*- 00023 #include "core.h" 00024 #include "editor.h" 00025 00026 #include <ksettings/dialog.h> 00027 #include <kparts/partmanager.h> 00028 #include <kparts/part.h> 00029 #include <kparts/componentfactory.h> 00030 #include <kapplication.h> 00031 #include <kconfig.h> 00032 #include <ktrader.h> 00033 #include <klibloader.h> 00034 #include <kstdaction.h> 00035 #include <klistbox.h> 00036 #include <kiconloader.h> 00037 #include <kstandarddirs.h> 00038 #include <kshortcut.h> 00039 #include <kparts/componentfactory.h> 00040 #include <klocale.h> 00041 #include <kstatusbar.h> 00042 #include <kguiitem.h> 00043 #include <kpopupmenu.h> 00044 #include <kshortcut.h> 00045 #include <kcmultidialog.h> 00046 #include <kdebug.h> 00047 00048 #include <qwidgetstack.h> 00049 #include <qhbox.h> 00050 #include <qwidget.h> 00051 00052 using namespace Komposer; 00053 00054 Core::Core( QWidget *parent, const char *name ) 00055 : KParts::MainWindow( parent, name ), m_currentEditor( 0 ) 00056 { 00057 //m_editors.setAutoDelete( true ); 00058 statusBar()->show(); 00059 00060 initWidgets(); 00061 00062 // prepare the part manager 00063 m_partManager = new KParts::PartManager( this ); 00064 connect( m_partManager, SIGNAL(activePartChanged(KParts::Part*) ), 00065 this, SLOT(slotActivePartChanged(KParts::Part*)) ); 00066 00067 loadEditors(); 00068 00069 setXMLFile( "komposerui.rc" ); 00070 00071 createGUI( 0 ); 00072 00073 resize( 600, 400 ); // initial size 00074 setAutoSaveSettings(); 00075 00076 loadSettings(); 00077 } 00078 00079 Core::~Core() 00080 { 00081 saveSettings(); 00082 00083 QPtrList<KParts::Part> parts = *m_partManager->parts(); 00084 parts.setAutoDelete( true ); 00085 parts.clear(); 00086 00087 //Prefs::self()->writeConfig(); 00088 } 00089 00090 void 00091 Core::loadEditors() 00092 { 00093 //m_pluginManager->loadEditors(); 00094 } 00095 00096 void 00097 Core::unloadEditors() 00098 { 00099 } 00100 00101 void 00102 Core::addEditor( Komposer::Editor *editor ) 00103 { 00104 kdDebug(5600) << "Added editor" << endl; 00105 00106 // merge the editors GUI into the main window 00107 insertChildClient( editor ); 00108 } 00109 00110 void 00111 Core::addPart( KParts::Part* part ) 00112 { 00113 kdDebug()<<"Part = "<< part << " widget = "<< part->widget() <<endl; 00114 if ( part->widget() ) 00115 m_stack->addWidget( part->widget(), 0 ); 00116 00117 m_partManager->addPart( part, false ); 00118 } 00119 00120 void 00121 Core::slotActivePartChanged( KParts::Part* part ) 00122 { 00123 if ( !part ) { 00124 createGUI( 0 ); 00125 return; 00126 } 00127 00128 kdDebug() << "Part activated: " << part << " with stack id. " 00129 << m_stack->id( part->widget() )<< endl; 00130 00131 createGUI( part ); 00132 } 00133 /* 00134 void 00135 Core::selectEditor( Komposer::Editor *editor ) 00136 { 00137 if ( !editor ) 00138 return; 00139 00140 KParts::Part *part = editor->part(); 00141 00142 editor->select(); 00143 00144 QPtrList<KParts::Part> *partList = const_cast<QPtrList<KParts::Part>*>( m_partManager->parts() ); 00145 if ( partList->find( part ) == -1 ) 00146 addPart( part ); 00147 00148 m_partManager->setActivePart( part ); 00149 QWidget *view = part->widget(); 00150 Q_ASSERT( view ); 00151 00152 kdDebug()<<"Raising view "<<view<<endl; 00153 if ( view ) 00154 { 00155 m_stack->raiseWidget( view ); 00156 view->show(); 00157 view->setFocus(); 00158 m_currentEditor = editor; 00159 } 00160 } 00161 00162 void 00163 Core::selectEditor( const QString &editorName ) 00164 { 00165 00166 }*/ 00167 00168 void 00169 Core::loadSettings() 00170 { 00171 //kdDebug()<<"Trying to select "<< Prefs::self()->m_activeEditor <<endl; 00172 //selectEditor( Prefs::self()->m_activeEditor ); 00173 00174 //m_activeEditors = Prefs::self()->m_activeEditors; 00175 } 00176 00177 void 00178 Core::saveSettings() 00179 { 00180 //if ( m_currentEditor ) 00181 //Prefs::self()->m_activeEditor = m_currentEditor->identifier(); 00182 } 00183 00184 void 00185 Core::slotQuit() 00186 { 00187 close(); 00188 } 00189 00190 void 00191 Core::slotPreferences() 00192 { 00193 if ( m_dlg == 0 ) 00194 m_dlg = new KSettings::Dialog( this ); 00195 m_dlg->show(); 00196 } 00197 00198 KParts::ReadWritePart* 00199 Core::createPart( const char *libname ) 00200 { 00201 kdDebug() << "Core:createPart(): " << libname << endl; 00202 00203 QMap<QCString,KParts::ReadWritePart *>::ConstIterator it; 00204 00205 it = m_parts.find( libname ); 00206 00207 if ( it != m_parts.end() ) 00208 return it.data(); 00209 00210 kdDebug() << "Creating new KPart" << endl; 00211 00212 KParts::ReadWritePart *part = 00213 KParts::ComponentFactory:: 00214 createPartInstanceFromLibrary<KParts::ReadWritePart> 00215 ( libname, this, 0, this, "komposer" ); 00216 00217 if ( part ) 00218 m_parts.insert( libname, part ); 00219 00220 return part; 00221 } 00222 00223 void 00224 Core::initWidgets() 00225 { 00226 QHBox *topWidget = new QHBox( this ); 00227 setCentralWidget( topWidget ); 00228 m_stack = new QWidgetStack( topWidget ); 00229 } 00230 00231 #include "core.moc"
KDE Logo
This file is part of the documentation for libkdepim Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:50:24 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003