core.cpp
00001
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
00058 statusBar()->show();
00059
00060 initWidgets();
00061
00062
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 );
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
00088 }
00089
00090 void
00091 Core::loadEditors()
00092 {
00093
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
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
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168 void
00169 Core::loadSettings()
00170 {
00171
00172
00173
00174
00175 }
00176
00177 void
00178 Core::saveSettings()
00179 {
00180
00181
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"
This file is part of the documentation for libkdepim Library Version 3.3.2.