joachim99@8
|
1 /***************************************************************************
|
joachim99@8
|
2 kreplacements.cpp - description
|
joachim99@8
|
3 -------------------
|
joachim99@8
|
4 begin : Sat Aug 3 2002
|
joachim99@69
|
5 copyright : (C) 2002-2006 by Joachim Eibl
|
joachim99@69
|
6 email : joachim.eibl at gmx.de
|
joachim99@8
|
7 ***************************************************************************/
|
joachim99@8
|
8
|
joachim99@8
|
9 /***************************************************************************
|
joachim99@8
|
10 * *
|
joachim99@8
|
11 * This program is free software; you can redistribute it and/or modify *
|
joachim99@8
|
12 * it under the terms of the GNU General Public License as published by *
|
joachim99@8
|
13 * the Free Software Foundation; either version 2 of the License, or *
|
joachim99@8
|
14 * (at your option) any later version. *
|
joachim99@8
|
15 * *
|
joachim99@8
|
16 ***************************************************************************/
|
joachim99@8
|
17
|
joachim99@8
|
18
|
joachim99@8
|
19 #include "kreplacements.h"
|
joachim99@66
|
20 #include "common.h"
|
joachim99@8
|
21
|
joachim99@8
|
22 #include <assert.h>
|
joachim99@8
|
23
|
joachim99@8
|
24 #include <qnamespace.h>
|
joachim99@8
|
25 #include <qmessagebox.h>
|
joachim99@70
|
26 #include <q3popupmenu.h>
|
joachim99@8
|
27 #include <qmenubar.h>
|
joachim99@8
|
28 #include <qpainter.h>
|
joachim99@8
|
29 #include <qcolordialog.h>
|
joachim99@8
|
30 #include <qfontdialog.h>
|
joachim99@8
|
31 #include <qlabel.h>
|
joachim99@70
|
32 #include <q3textbrowser.h>
|
joachim99@8
|
33 #include <qtextstream.h>
|
joachim99@8
|
34 #include <qlayout.h>
|
joachim99@70
|
35 #include <q3dockarea.h>
|
joachim99@73
|
36 #include <QTabWidget>
|
joachim99@70
|
37 //Added by qt3to4:
|
joachim99@70
|
38 #include <QPaintEvent>
|
joachim99@70
|
39 #include <Q3VBoxLayout>
|
joachim99@70
|
40 #include <Q3Frame>
|
joachim99@70
|
41 #include <Q3CString>
|
joachim99@70
|
42 #include <Q3ValueList>
|
joachim99@70
|
43 #include <QPixmap>
|
joachim99@8
|
44
|
joachim99@8
|
45 #include <vector>
|
joachim99@8
|
46 #include <iostream>
|
joachim99@8
|
47 #include <algorithm>
|
joachim99@8
|
48
|
joachim99@66
|
49
|
joachim99@8
|
50 static QString s_copyright;
|
joachim99@8
|
51 static QString s_email;
|
joachim99@8
|
52 static QString s_description;
|
joachim99@8
|
53 static QString s_appName;
|
joachim99@8
|
54 static QString s_version;
|
joachim99@8
|
55 static QString s_homepage;
|
joachim99@66
|
56 static KAboutData* s_pAboutData;
|
joachim99@66
|
57
|
joachim99@8
|
58
|
joachim99@8
|
59 #ifdef _WIN32
|
joachim99@8
|
60 #include <process.h>
|
joachim99@8
|
61 #include <windows.h>
|
joachim99@8
|
62 #endif
|
joachim99@8
|
63
|
joachim99@8
|
64 static void showHelp()
|
joachim99@8
|
65 {
|
joachim99@8
|
66 #ifdef _WIN32
|
joachim99@8
|
67 char buf[200];
|
joachim99@8
|
68 int r= SearchPathA( 0, ".", 0, sizeof(buf), buf, 0 );
|
joachim99@8
|
69
|
joachim99@8
|
70 QString exePath;
|
joachim99@8
|
71 if (r!=0) { exePath = buf; }
|
joachim99@8
|
72 else { exePath = "."; }
|
joachim99@8
|
73
|
joachim99@34
|
74 QFileInfo helpFile( exePath + "\\doc\\en\\index.html" );
|
joachim99@34
|
75 if ( ! helpFile.exists() ) { helpFile.setFile( exePath + "\\..\\doc\\en\\index.html" ); }
|
joachim99@34
|
76 if ( ! helpFile.exists() ) { helpFile.setFile( exePath + "\\doc\\index.html" ); }
|
joachim99@34
|
77 if ( ! helpFile.exists() ) { helpFile.setFile( exePath + "\\..\\doc\\index.html" ); }
|
joachim99@8
|
78 if ( ! helpFile.exists() )
|
joachim99@8
|
79 {
|
joachim99@34
|
80 QMessageBox::warning( 0, "KDiff3 documentation not found",
|
joachim99@34
|
81 "Couldn't find the documentation. \n\n"
|
joachim99@34
|
82 "The documentation can also be found at the homepage:\n\n "
|
joachim99@34
|
83 " http://kdiff3.sourceforge.net/");
|
joachim99@34
|
84 return;
|
joachim99@8
|
85 }
|
joachim99@8
|
86
|
joachim99@68
|
87 HINSTANCE hi = FindExecutableA( helpFile.fileName().ascii(), helpFile.dirPath(true).ascii(), buf );
|
joachim99@34
|
88 if ( int(hi)<=32 )
|
joachim99@8
|
89 {
|
joachim99@70
|
90 static Q3TextBrowser* pBrowser = 0;
|
joachim99@8
|
91 if (pBrowser==0)
|
joachim99@8
|
92 {
|
joachim99@70
|
93 pBrowser = new Q3TextBrowser( 0 );
|
joachim99@8
|
94 pBrowser->setMinimumSize( 600, 400 );
|
joachim99@8
|
95 }
|
joachim99@8
|
96 pBrowser->setSource(helpFile.filePath());
|
joachim99@8
|
97 pBrowser->show();
|
joachim99@8
|
98 }
|
joachim99@8
|
99 else
|
joachim99@8
|
100 {
|
joachim99@8
|
101 QFileInfo prog( buf );
|
joachim99@68
|
102 _spawnlp( _P_NOWAIT , prog.filePath().ascii(), prog.fileName().ascii(), ("file:///"+helpFile.absFilePath()).ascii(), NULL );
|
joachim99@8
|
103 }
|
joachim99@8
|
104
|
joachim99@8
|
105 #else
|
joachim99@70
|
106 static Q3TextBrowser* pBrowser = 0;
|
joachim99@8
|
107 if (pBrowser==0)
|
joachim99@8
|
108 {
|
joachim99@70
|
109 pBrowser = new Q3TextBrowser( 0 );
|
joachim99@8
|
110 pBrowser->setMinimumSize( 600, 400 );
|
joachim99@8
|
111 }
|
joachim99@8
|
112 pBrowser->setSource("/usr/local/share/doc/kdiff3/en/index.html");
|
joachim99@8
|
113 pBrowser->show();
|
joachim99@8
|
114 #endif
|
joachim99@8
|
115 }
|
joachim99@8
|
116
|
joachim99@53
|
117 QString getTranslationDir()
|
joachim99@53
|
118 {
|
joachim99@53
|
119 #ifdef _WIN32
|
joachim99@53
|
120 char buf[200];
|
joachim99@53
|
121 int r= SearchPathA( 0, ".", 0, sizeof(buf), buf, 0 );
|
joachim99@53
|
122
|
joachim99@53
|
123 QString exePath;
|
joachim99@53
|
124 if (r!=0) { exePath = buf; }
|
joachim99@53
|
125 else { exePath = "."; }
|
joachim99@73
|
126 return exePath+"/translations";
|
joachim99@53
|
127 #else
|
joachim99@53
|
128 return ".";
|
joachim99@53
|
129 #endif
|
joachim99@53
|
130 }
|
joachim99@8
|
131
|
joachim99@8
|
132 // static
|
joachim99@8
|
133 void KMessageBox::error( QWidget* parent, const QString& text, const QString& caption )
|
joachim99@8
|
134 {
|
joachim99@8
|
135 QMessageBox::critical( parent, caption, text );
|
joachim99@8
|
136 }
|
joachim99@8
|
137
|
joachim99@8
|
138 int KMessageBox::warningContinueCancel( QWidget* parent, const QString& text, const QString& caption,
|
joachim99@8
|
139 const QString& button1 )
|
joachim99@8
|
140 {
|
joachim99@34
|
141 return 0 == QMessageBox::warning( parent, caption, text, button1, "Cancel" ) ? Continue : Cancel;
|
joachim99@8
|
142 }
|
joachim99@8
|
143
|
joachim99@8
|
144 void KMessageBox::sorry( QWidget* parent, const QString& text, const QString& caption )
|
joachim99@8
|
145 {
|
joachim99@8
|
146 QMessageBox::information( parent, caption, text );
|
joachim99@8
|
147 }
|
joachim99@8
|
148
|
joachim99@8
|
149 void KMessageBox::information( QWidget* parent, const QString& text, const QString& caption )
|
joachim99@8
|
150 {
|
joachim99@8
|
151 QMessageBox::information( parent, caption, text );
|
joachim99@8
|
152 }
|
joachim99@8
|
153
|
joachim99@8
|
154 int KMessageBox::warningYesNo( QWidget* parent, const QString& text, const QString& caption,
|
joachim99@8
|
155 const QString& button1, const QString& button2 )
|
joachim99@8
|
156 {
|
joachim99@58
|
157 return 0 == QMessageBox::warning( parent, caption, text, button1, button2, QString::null, 1, 1 ) ? Yes : No;
|
joachim99@8
|
158 }
|
joachim99@8
|
159
|
joachim99@8
|
160 int KMessageBox::warningYesNoCancel( QWidget* parent, const QString& text, const QString& caption,
|
joachim99@8
|
161 const QString& button1, const QString& button2 )
|
joachim99@8
|
162 {
|
joachim99@34
|
163 int val = QMessageBox::warning( parent, caption, text,
|
joachim99@53
|
164 button1, button2, i18n("Cancel") );
|
joachim99@8
|
165 if ( val==0 ) return Yes;
|
joachim99@8
|
166 if ( val==1 ) return No;
|
joachim99@8
|
167 else return Cancel;
|
joachim99@8
|
168 }
|
joachim99@8
|
169
|
joachim99@8
|
170
|
joachim99@68
|
171 KDialogBase::KDialogBase( int, const QString& caption, int, int, QWidget* parent, const char* name,
|
joachim99@8
|
172 bool /*modal*/, bool )
|
joachim99@70
|
173 : Q3TabDialog( parent, name, true /* modal */ )
|
joachim99@8
|
174 {
|
joachim99@8
|
175 setCaption( caption );
|
joachim99@8
|
176 setDefaultButton();
|
joachim99@8
|
177 setHelpButton();
|
joachim99@8
|
178 setCancelButton();
|
joachim99@8
|
179 //setApplyButton();
|
joachim99@8
|
180 setOkButton();
|
joachim99@8
|
181 setDefaultButton();
|
joachim99@8
|
182
|
joachim99@8
|
183 connect( this, SIGNAL( defaultButtonPressed() ), this, SLOT(slotDefault()) );
|
joachim99@8
|
184 connect( this, SIGNAL( helpButtonPressed() ), this, SLOT(slotHelp()));
|
joachim99@8
|
185 connect( this, SIGNAL( applyButtonPressed() ), this, SLOT( slotApply() ));
|
joachim99@8
|
186 }
|
joachim99@8
|
187
|
joachim99@8
|
188 KDialogBase::~KDialogBase()
|
joachim99@8
|
189 {
|
joachim99@8
|
190 }
|
joachim99@8
|
191
|
joachim99@8
|
192 void KDialogBase::incInitialSize ( const QSize& )
|
joachim99@8
|
193 {
|
joachim99@8
|
194 }
|
joachim99@8
|
195
|
joachim99@8
|
196 void KDialogBase::setHelp(const QString&, const QString& )
|
joachim99@8
|
197 {
|
joachim99@8
|
198 }
|
joachim99@8
|
199
|
joachim99@8
|
200
|
joachim99@8
|
201 int KDialogBase::BarIcon(const QString& /*iconName*/, int )
|
joachim99@8
|
202 {
|
joachim99@8
|
203 return 0; // Not used for replacement.
|
joachim99@8
|
204 }
|
joachim99@8
|
205
|
joachim99@8
|
206
|
joachim99@70
|
207 Q3VBox* KDialogBase::addVBoxPage( const QString& name, const QString& /*info*/, int )
|
joachim99@8
|
208 {
|
joachim99@70
|
209 Q3VBox* p = new Q3VBox(this, name.ascii());
|
joachim99@8
|
210 addTab( p, name );
|
joachim99@8
|
211 return p;
|
joachim99@8
|
212 }
|
joachim99@8
|
213
|
joachim99@73
|
214 QFrame* KDialogBase::addPage( const QString& name, const QString& /*info*/, int )
|
joachim99@8
|
215 {
|
joachim99@73
|
216 QFrame* p = new QFrame();
|
joachim99@71
|
217 p->setObjectName( name );
|
joachim99@8
|
218 addTab( p, name );
|
joachim99@8
|
219 return p;
|
joachim99@8
|
220 }
|
joachim99@8
|
221
|
joachim99@8
|
222 int KDialogBase::spacingHint()
|
joachim99@8
|
223 {
|
joachim99@8
|
224 return 5;
|
joachim99@8
|
225 }
|
joachim99@8
|
226
|
joachim99@8
|
227 static bool s_inAccept = false;
|
joachim99@8
|
228 static bool s_bAccepted = false;
|
joachim99@8
|
229 void KDialogBase::accept()
|
joachim99@8
|
230 {
|
joachim99@8
|
231 if( ! s_inAccept )
|
joachim99@8
|
232 {
|
joachim99@8
|
233 s_bAccepted = false;
|
joachim99@8
|
234 s_inAccept = true;
|
joachim99@8
|
235 slotOk();
|
joachim99@8
|
236 s_inAccept = false;
|
joachim99@8
|
237 if ( s_bAccepted )
|
joachim99@70
|
238 Q3TabDialog::accept();
|
joachim99@8
|
239 }
|
joachim99@8
|
240 else
|
joachim99@8
|
241 {
|
joachim99@8
|
242 s_bAccepted = true;
|
joachim99@8
|
243 }
|
joachim99@8
|
244 }
|
joachim99@8
|
245
|
joachim99@8
|
246 void KDialogBase::slotDefault( )
|
joachim99@8
|
247 {
|
joachim99@8
|
248 }
|
joachim99@8
|
249 void KDialogBase::slotOk()
|
joachim99@8
|
250 {
|
joachim99@8
|
251 }
|
joachim99@8
|
252 void KDialogBase::slotCancel( )
|
joachim99@8
|
253 {
|
joachim99@8
|
254 }
|
joachim99@8
|
255 void KDialogBase::slotApply( )
|
joachim99@8
|
256 {
|
joachim99@8
|
257 emit applyClicked();
|
joachim99@8
|
258 }
|
joachim99@8
|
259 void KDialogBase::slotHelp( )
|
joachim99@8
|
260 {
|
joachim99@8
|
261 showHelp();
|
joachim99@8
|
262 }
|
joachim99@8
|
263
|
joachim99@8
|
264 KURL KFileDialog::getSaveURL( const QString &startDir,
|
joachim99@68
|
265 const QString &filter,
|
joachim99@68
|
266 QWidget *parent, const QString &caption)
|
joachim99@8
|
267 {
|
joachim99@70
|
268 QString s = Q3FileDialog::getSaveFileName(startDir, filter, parent, 0, caption);
|
joachim99@8
|
269 return KURL(s);
|
joachim99@8
|
270 }
|
joachim99@8
|
271
|
joachim99@8
|
272 KURL KFileDialog::getOpenURL( const QString & startDir,
|
joachim99@8
|
273 const QString & filter,
|
joachim99@8
|
274 QWidget * parent,
|
joachim99@8
|
275 const QString & caption )
|
joachim99@8
|
276 {
|
joachim99@70
|
277 QString s = Q3FileDialog::getOpenFileName(startDir, filter, parent, 0, caption);
|
joachim99@8
|
278 return KURL(s);
|
joachim99@8
|
279 }
|
joachim99@8
|
280
|
joachim99@8
|
281 KURL KFileDialog::getExistingURL( const QString & startDir,
|
joachim99@8
|
282 QWidget * parent,
|
joachim99@8
|
283 const QString & caption)
|
joachim99@8
|
284 {
|
joachim99@70
|
285 QString s = Q3FileDialog::getExistingDirectory(startDir, parent, 0, caption);
|
joachim99@8
|
286 return KURL(s);
|
joachim99@8
|
287 }
|
joachim99@8
|
288
|
joachim99@69
|
289 QString KFileDialog::getSaveFileName (const QString &startDir,
|
joachim99@69
|
290 const QString &filter,
|
joachim99@69
|
291 QWidget *parent,
|
joachim99@69
|
292 const QString &caption)
|
joachim99@69
|
293 {
|
joachim99@70
|
294 return Q3FileDialog::getSaveFileName( startDir, filter, parent, 0, caption );
|
joachim99@69
|
295 }
|
joachim99@69
|
296
|
joachim99@8
|
297
|
joachim99@8
|
298 KToolBar::BarPosition KToolBar::barPos()
|
joachim99@8
|
299 {
|
joachim99@66
|
300 if ( m_pMainWindow->leftDock()->hasDockWindow(this) ) return Left;
|
joachim99@66
|
301 if ( m_pMainWindow->rightDock()->hasDockWindow(this) ) return Right;
|
joachim99@66
|
302 if ( m_pMainWindow->topDock()->hasDockWindow(this) ) return Top;
|
joachim99@66
|
303 if ( m_pMainWindow->bottomDock()->hasDockWindow(this) ) return Bottom;
|
joachim99@8
|
304 return Top;
|
joachim99@8
|
305 }
|
joachim99@8
|
306
|
joachim99@66
|
307 void KToolBar::setBarPos(BarPosition bp)
|
joachim99@8
|
308 {
|
joachim99@70
|
309 if ( bp == Left ) m_pMainWindow->moveDockWindow( this, Qt::DockLeft );
|
joachim99@70
|
310 else if ( bp == Right ) m_pMainWindow->moveDockWindow( this, Qt::DockRight );
|
joachim99@70
|
311 else if ( bp == Bottom ) m_pMainWindow->moveDockWindow( this, Qt::DockBottom );
|
joachim99@70
|
312 else if ( bp == Top ) m_pMainWindow->moveDockWindow( this, Qt::DockTop );
|
joachim99@8
|
313 }
|
joachim99@8
|
314
|
joachim99@70
|
315 KToolBar::KToolBar( Q3MainWindow* parent )
|
joachim99@70
|
316 : Q3ToolBar( parent )
|
joachim99@8
|
317 {
|
joachim99@66
|
318 m_pMainWindow = parent;
|
joachim99@8
|
319 }
|
joachim99@8
|
320
|
joachim99@8
|
321
|
joachim99@68
|
322 KMainWindow::KMainWindow( QWidget* parent, const char* name )
|
joachim99@70
|
323 : Q3MainWindow( parent, name ), m_actionCollection(this)
|
joachim99@8
|
324 {
|
joachim99@70
|
325 fileMenu = new Q3PopupMenu();
|
joachim99@53
|
326 menuBar()->insertItem(i18n("&File"), fileMenu);
|
joachim99@70
|
327 editMenu = new Q3PopupMenu();
|
joachim99@53
|
328 menuBar()->insertItem(i18n("&Edit"), editMenu);
|
joachim99@70
|
329 directoryMenu = new Q3PopupMenu();
|
joachim99@53
|
330 menuBar()->insertItem(i18n("&Directory"), directoryMenu);
|
joachim99@51
|
331 dirCurrentItemMenu = 0;
|
joachim99@51
|
332 dirCurrentSyncItemMenu = 0;
|
joachim99@70
|
333 movementMenu = new Q3PopupMenu();
|
joachim99@53
|
334 menuBar()->insertItem(i18n("&Movement"), movementMenu);
|
joachim99@70
|
335 diffMenu = new Q3PopupMenu();
|
joachim99@66
|
336 menuBar()->insertItem(i18n("D&iffview"), diffMenu);
|
joachim99@70
|
337 mergeMenu = new Q3PopupMenu();
|
joachim99@53
|
338 menuBar()->insertItem(i18n("&Merge"), mergeMenu);
|
joachim99@70
|
339 windowsMenu = new Q3PopupMenu();
|
joachim99@53
|
340 menuBar()->insertItem(i18n("&Window"), windowsMenu);
|
joachim99@70
|
341 settingsMenu = new Q3PopupMenu();
|
joachim99@53
|
342 menuBar()->insertItem(i18n("&Settings"), settingsMenu);
|
joachim99@70
|
343 helpMenu = new Q3PopupMenu();
|
joachim99@53
|
344 menuBar()->insertItem(i18n("&Help"), helpMenu);
|
joachim99@8
|
345
|
joachim99@8
|
346 m_pToolBar = new KToolBar(this);
|
joachim99@8
|
347
|
joachim99@70
|
348 memberList = new QList<KMainWindow*>;
|
joachim99@8
|
349 memberList->append(this);
|
joachim99@8
|
350 }
|
joachim99@8
|
351
|
joachim99@8
|
352 KToolBar* KMainWindow::toolBar(const QString&)
|
joachim99@8
|
353 {
|
joachim99@8
|
354 return m_pToolBar;
|
joachim99@8
|
355 }
|
joachim99@8
|
356
|
joachim99@8
|
357 KActionCollection* KMainWindow::actionCollection()
|
joachim99@8
|
358 {
|
joachim99@8
|
359 return &m_actionCollection;
|
joachim99@8
|
360 }
|
joachim99@8
|
361
|
joachim99@8
|
362 void KMainWindow::createGUI()
|
joachim99@8
|
363 {
|
joachim99@8
|
364 KStdAction::help(this, SLOT(slotHelp()), actionCollection());
|
joachim99@8
|
365 KStdAction::about(this, SLOT(slotAbout()), actionCollection());
|
joachim99@69
|
366 KStdAction::aboutQt(actionCollection());
|
joachim99@8
|
367 }
|
joachim99@8
|
368
|
joachim99@8
|
369 void KMainWindow::slotAbout()
|
joachim99@8
|
370 {
|
joachim99@73
|
371 QDialog d;
|
joachim99@73
|
372 QVBoxLayout* l = new QVBoxLayout( &d );
|
joachim99@73
|
373 QTabWidget* pTabWidget = new QTabWidget;
|
joachim99@73
|
374 l->addWidget( pTabWidget );
|
joachim99@73
|
375
|
joachim99@73
|
376 QPushButton* pOkButton = new QPushButton(i18n("Ok"));
|
joachim99@73
|
377 connect( pOkButton, SIGNAL(clicked()), &d, SLOT(accept()));
|
joachim99@73
|
378 l->addWidget( pOkButton );
|
joachim99@73
|
379
|
joachim99@66
|
380 d.setCaption("About " + s_appName);
|
joachim99@73
|
381 Q3TextBrowser* tb1 = new Q3TextBrowser();
|
joachim99@70
|
382 tb1->setWordWrap( Q3TextEdit::NoWrap );
|
joachim99@66
|
383 tb1->setText(
|
joachim99@66
|
384 s_appName + " Version " + s_version +
|
joachim99@66
|
385 "\n\n" + s_description +
|
joachim99@66
|
386 "\n\n" + s_copyright +
|
joachim99@66
|
387 "\n\nHomepage: " + s_homepage +
|
joachim99@66
|
388 "\n\nLicence: GNU GPL Version 2"
|
joachim99@66
|
389 );
|
joachim99@73
|
390 pTabWidget->addTab(tb1,i18n("&About"));
|
joachim99@66
|
391
|
joachim99@66
|
392 std::list<KAboutData::AboutDataEntry>::iterator i;
|
joachim99@66
|
393
|
joachim99@66
|
394 QString s2;
|
joachim99@66
|
395 for( i=s_pAboutData->m_authorList.begin(); i!=s_pAboutData->m_authorList.end(); ++i )
|
joachim99@66
|
396 {
|
joachim99@66
|
397 if ( !i->m_name.isEmpty() ) s2 += i->m_name + "\n";
|
joachim99@66
|
398 if ( !i->m_task.isEmpty() ) s2 += " " + i->m_task + "\n";
|
joachim99@66
|
399 if ( !i->m_email.isEmpty() ) s2 += " " + i->m_email + "\n";
|
joachim99@66
|
400 if ( !i->m_weblink.isEmpty() ) s2 += " " + i->m_weblink + "\n";
|
joachim99@66
|
401 s2 += "\n";
|
joachim99@66
|
402 }
|
joachim99@73
|
403 Q3TextBrowser* tb2 = new Q3TextBrowser();
|
joachim99@70
|
404 tb2->setWordWrap( Q3TextEdit::NoWrap );
|
joachim99@66
|
405 tb2->setText(s2);
|
joachim99@73
|
406 pTabWidget->addTab(tb2,i18n("A&uthor"));
|
joachim99@66
|
407
|
joachim99@66
|
408 QString s3;
|
joachim99@66
|
409 for( i=s_pAboutData->m_creditList.begin(); i!=s_pAboutData->m_creditList.end(); ++i )
|
joachim99@66
|
410 {
|
joachim99@66
|
411 if ( !i->m_name.isEmpty() ) s3 += i->m_name + "\n";
|
joachim99@66
|
412 if ( !i->m_task.isEmpty() ) s3 += " " + i->m_task + "\n";
|
joachim99@66
|
413 if ( !i->m_email.isEmpty() ) s3 += " " + i->m_email + "\n";
|
joachim99@66
|
414 if ( !i->m_weblink.isEmpty() ) s3 += " " + i->m_weblink + "\n";
|
joachim99@66
|
415 s3 += "\n";
|
joachim99@66
|
416 }
|
joachim99@73
|
417 Q3TextBrowser* tb3 = new Q3TextBrowser();
|
joachim99@70
|
418 tb3->setWordWrap( Q3TextEdit::NoWrap );
|
joachim99@66
|
419 tb3->setText(s3);
|
joachim99@73
|
420 pTabWidget->addTab(tb3,i18n("&Thanks To"));
|
joachim99@66
|
421
|
joachim99@66
|
422 d.resize(400,300);
|
joachim99@66
|
423 d.exec();
|
joachim99@66
|
424 /*
|
joachim99@8
|
425 QMessageBox::information(
|
joachim99@8
|
426 this,
|
joachim99@8
|
427 "About " + s_appName,
|
joachim99@8
|
428 s_appName + " Version " + s_version +
|
joachim99@8
|
429 "\n\n" + s_description +
|
joachim99@8
|
430 "\n\n" + s_copyright +
|
joachim99@8
|
431 "\n\nHomepage: " + s_homepage +
|
joachim99@8
|
432 "\n\nLicence: GNU GPL Version 2"
|
joachim99@8
|
433 );
|
joachim99@66
|
434 */
|
joachim99@8
|
435 }
|
joachim99@8
|
436
|
joachim99@8
|
437 void KMainWindow::slotHelp()
|
joachim99@8
|
438 {
|
joachim99@8
|
439 showHelp();
|
joachim99@8
|
440 }
|
joachim99@8
|
441
|
joachim99@69
|
442
|
joachim99@69
|
443 QString KStandardDirs::findResource(const QString& resource, const QString& /*appName*/)
|
joachim99@69
|
444 {
|
joachim99@69
|
445 if (resource=="config")
|
joachim99@69
|
446 {
|
joachim99@69
|
447 QString home = QDir::homeDirPath();
|
joachim99@69
|
448 return home + "/.kdiff3rc";
|
joachim99@69
|
449 }
|
joachim99@69
|
450 return QString();
|
joachim99@69
|
451 }
|
joachim99@69
|
452
|
joachim99@8
|
453 KConfig::KConfig()
|
joachim99@8
|
454 {
|
joachim99@69
|
455 }
|
joachim99@69
|
456
|
joachim99@69
|
457 void KConfig::readConfigFile( const QString& configFileName )
|
joachim99@69
|
458 {
|
joachim99@69
|
459 if ( !configFileName.isEmpty() )
|
joachim99@69
|
460 {
|
joachim99@69
|
461 m_fileName = configFileName;
|
joachim99@69
|
462 }
|
joachim99@69
|
463 else
|
joachim99@69
|
464 {
|
joachim99@69
|
465 m_fileName = KStandardDirs().findResource("config","kdiff3rc");
|
joachim99@69
|
466 }
|
joachim99@8
|
467
|
joachim99@8
|
468 QFile f( m_fileName );
|
joachim99@70
|
469 if ( f.open(QIODevice::ReadOnly) )
|
joachim99@8
|
470 { // file opened successfully
|
joachim99@69
|
471 QTextStream t( &f ); // use a text stream
|
joachim99@69
|
472 load(t);
|
joachim99@8
|
473 f.close();
|
joachim99@8
|
474 }
|
joachim99@8
|
475 }
|
joachim99@8
|
476
|
joachim99@8
|
477 KConfig::~KConfig()
|
joachim99@8
|
478 {
|
joachim99@8
|
479 QFile f(m_fileName);
|
joachim99@70
|
480 if ( f.open( QIODevice::WriteOnly | QIODevice::Text ) )
|
joachim99@8
|
481 { // file opened successfully
|
joachim99@8
|
482 QTextStream t( &f ); // use a text stream
|
joachim99@69
|
483 save(t);
|
joachim99@8
|
484 f.close();
|
joachim99@8
|
485 }
|
joachim99@8
|
486 }
|
joachim99@8
|
487
|
joachim99@8
|
488 void KConfig::setGroup(const QString&)
|
joachim99@8
|
489 {
|
joachim99@8
|
490 }
|
joachim99@8
|
491
|
joachim99@68
|
492 void KAction::init(QObject* receiver, const char* slot, KActionCollection* actionCollection,
|
joachim99@68
|
493 const char* name, bool bToggle, bool bMenu)
|
joachim99@8
|
494 {
|
joachim99@68
|
495 QString n(name);
|
joachim99@8
|
496 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@8
|
497 if( slot!=0 )
|
joachim99@8
|
498 {
|
joachim99@8
|
499 if (!bToggle)
|
joachim99@8
|
500 connect(this, SIGNAL(activated()), receiver, slot);
|
joachim99@8
|
501 else
|
joachim99@8
|
502 {
|
joachim99@8
|
503 connect(this, SIGNAL(toggled(bool)), receiver, slot);
|
joachim99@8
|
504 }
|
joachim99@8
|
505 }
|
joachim99@8
|
506
|
joachim99@8
|
507 if (bMenu)
|
joachim99@8
|
508 {
|
joachim99@68
|
509 if( n[0]=='g') addTo( p->movementMenu );
|
joachim99@68
|
510 else if( n.left(16)=="dir_current_sync")
|
joachim99@53
|
511 {
|
joachim99@53
|
512 if ( p->dirCurrentItemMenu==0 )
|
joachim99@53
|
513 {
|
joachim99@70
|
514 p->dirCurrentItemMenu = new Q3PopupMenu();
|
joachim99@53
|
515 p->directoryMenu->insertItem(i18n("Current Item Merge Operation"), p->dirCurrentItemMenu);
|
joachim99@70
|
516 p->dirCurrentSyncItemMenu = new Q3PopupMenu();
|
joachim99@53
|
517 p->directoryMenu->insertItem(i18n("Current Item Sync Operation"), p->dirCurrentSyncItemMenu);
|
joachim99@53
|
518 }
|
joachim99@53
|
519 addTo( p->dirCurrentItemMenu );
|
joachim99@53
|
520 }
|
joachim99@68
|
521 else if( n.left(11)=="dir_current")
|
joachim99@53
|
522 {
|
joachim99@53
|
523 if ( p->dirCurrentItemMenu==0 )
|
joachim99@53
|
524 {
|
joachim99@70
|
525 p->dirCurrentItemMenu = new Q3PopupMenu();
|
joachim99@53
|
526 p->directoryMenu->insertItem(i18n("Current Item Merge Operation"), p->dirCurrentItemMenu);
|
joachim99@70
|
527 p->dirCurrentSyncItemMenu = new Q3PopupMenu();
|
joachim99@53
|
528 p->directoryMenu->insertItem(i18n("Current Item Sync Operation"), p->dirCurrentSyncItemMenu);
|
joachim99@53
|
529 }
|
joachim99@53
|
530 addTo( p->dirCurrentSyncItemMenu );
|
joachim99@53
|
531 }
|
joachim99@68
|
532 else if( n.left(4)=="diff") addTo( p->diffMenu );
|
joachim99@8
|
533 else if( name[0]=='d') addTo( p->directoryMenu );
|
joachim99@8
|
534 else if( name[0]=='f') addTo( p->fileMenu );
|
joachim99@8
|
535 else if( name[0]=='w') addTo( p->windowsMenu );
|
joachim99@8
|
536 else addTo( p->mergeMenu );
|
joachim99@8
|
537 }
|
joachim99@8
|
538 }
|
joachim99@8
|
539
|
joachim99@68
|
540
|
joachim99@70
|
541 KAction::KAction(const QString& text, const QIcon& icon, int accel,
|
joachim99@68
|
542 QObject* receiver, const char* slot, KActionCollection* actionCollection,
|
joachim99@68
|
543 const char* name, bool bToggle, bool bMenu
|
joachim99@68
|
544 )
|
joachim99@70
|
545 : QAction ( icon, text, accel, actionCollection->m_pMainWindow, name )
|
joachim99@68
|
546 {
|
joachim99@70
|
547 setToggleAction( bToggle );
|
joachim99@68
|
548 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@68
|
549 if ( !icon.isNull() && p ) this->addTo( p->m_pToolBar );
|
joachim99@68
|
550
|
joachim99@68
|
551 init(receiver,slot,actionCollection,name,bToggle,bMenu);
|
joachim99@68
|
552 }
|
joachim99@68
|
553
|
joachim99@8
|
554 KAction::KAction(const QString& text, int accel,
|
joachim99@51
|
555 QObject* receiver, const char* slot, KActionCollection* actionCollection,
|
joachim99@68
|
556 const char* name, bool bToggle, bool bMenu
|
joachim99@8
|
557 )
|
joachim99@70
|
558 : QAction ( text, accel, actionCollection->m_pMainWindow, name )
|
joachim99@8
|
559 {
|
joachim99@70
|
560 setToggleAction( bToggle );
|
joachim99@68
|
561 init(receiver,slot,actionCollection,name,bToggle,bMenu);
|
joachim99@8
|
562 }
|
joachim99@8
|
563
|
joachim99@8
|
564 void KAction::setStatusText(const QString&)
|
joachim99@8
|
565 {
|
joachim99@8
|
566 }
|
joachim99@8
|
567
|
joachim99@70
|
568 void KAction::plug(Q3PopupMenu* menu)
|
joachim99@8
|
569 {
|
joachim99@8
|
570 addTo(menu);
|
joachim99@8
|
571 }
|
joachim99@8
|
572
|
joachim99@8
|
573
|
joachim99@70
|
574 KToggleAction::KToggleAction(const QString& text, const QIcon& icon, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bMenu)
|
joachim99@51
|
575 : KAction( text, icon, accel, receiver, slot, actionCollection, name, true, bMenu)
|
joachim99@8
|
576 {
|
joachim99@8
|
577 }
|
joachim99@8
|
578
|
joachim99@68
|
579 KToggleAction::KToggleAction(const QString& text, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bMenu)
|
joachim99@51
|
580 : KAction( text, accel, receiver, slot, actionCollection, name, true, bMenu)
|
joachim99@8
|
581 {
|
joachim99@8
|
582 }
|
joachim99@8
|
583
|
joachim99@70
|
584 KToggleAction::KToggleAction(const QString& text, const QIcon& icon, int accel, KActionCollection* actionCollection, const char* name, bool bMenu)
|
joachim99@8
|
585 : KAction( text, icon, accel, 0, 0, actionCollection, name, true, bMenu)
|
joachim99@8
|
586 {
|
joachim99@8
|
587 }
|
joachim99@8
|
588
|
joachim99@8
|
589 void KToggleAction::setChecked(bool bChecked)
|
joachim99@8
|
590 {
|
joachim99@8
|
591 blockSignals( true );
|
joachim99@8
|
592 setOn( bChecked );
|
joachim99@8
|
593 blockSignals( false );
|
joachim99@8
|
594 }
|
joachim99@8
|
595
|
joachim99@8
|
596 bool KToggleAction::isChecked()
|
joachim99@8
|
597 {
|
joachim99@8
|
598 return isOn();
|
joachim99@8
|
599 }
|
joachim99@8
|
600
|
joachim99@8
|
601
|
joachim99@8
|
602
|
joachim99@8
|
603 //static
|
joachim99@8
|
604 KAction* KStdAction::open( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
605 {
|
joachim99@8
|
606 #include "../xpm/fileopen.xpm"
|
joachim99@8
|
607 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@70
|
608 KAction* a = new KAction( i18n("Open"), QIcon(QPixmap(fileopen)), Qt::CTRL+Qt::Key_O, parent, slot, actionCollection, "open", false, false);
|
joachim99@8
|
609 if(p){ a->addTo( p->fileMenu ); }
|
joachim99@8
|
610 return a;
|
joachim99@8
|
611 }
|
joachim99@8
|
612
|
joachim99@8
|
613 KAction* KStdAction::save( QWidget* parent, const char* slot, KActionCollection* actionCollection )
|
joachim99@8
|
614 {
|
joachim99@8
|
615 #include "../xpm/filesave.xpm"
|
joachim99@8
|
616 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@70
|
617 KAction* a = new KAction( i18n("Save"), QIcon(QPixmap(filesave)), Qt::CTRL+Qt::Key_S, parent, slot, actionCollection, "save", false, false);
|
joachim99@8
|
618 if(p){ a->addTo( p->fileMenu ); }
|
joachim99@8
|
619 return a;
|
joachim99@8
|
620 }
|
joachim99@8
|
621
|
joachim99@8
|
622 KAction* KStdAction::saveAs( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
623 {
|
joachim99@8
|
624 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
625 KAction* a = new KAction( i18n("Save As..."), 0, parent, slot, actionCollection, "saveas", false, false);
|
joachim99@8
|
626 if(p) a->addTo( p->fileMenu );
|
joachim99@8
|
627 return a;
|
joachim99@8
|
628 }
|
joachim99@8
|
629
|
joachim99@69
|
630 KAction* KStdAction::print( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@69
|
631 {
|
joachim99@69
|
632 #include "../xpm/fileprint.xpm"
|
joachim99@69
|
633 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@70
|
634 KAction* a = new KAction( i18n("Print..."), QIcon(QPixmap(fileprint)),Qt::CTRL+Qt::Key_P, parent, slot, actionCollection, "print", false, false);
|
joachim99@69
|
635 if(p) a->addTo( p->fileMenu );
|
joachim99@69
|
636 return a;
|
joachim99@69
|
637 }
|
joachim99@69
|
638
|
joachim99@8
|
639 KAction* KStdAction::quit( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
640 {
|
joachim99@8
|
641 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
642 KAction* a = new KAction( i18n("Quit"), Qt::CTRL+Qt::Key_Q, parent, slot, actionCollection, "quit", false, false);
|
joachim99@8
|
643 if(p) a->addTo( p->fileMenu );
|
joachim99@8
|
644 return a;
|
joachim99@8
|
645 }
|
joachim99@8
|
646
|
joachim99@8
|
647 KAction* KStdAction::cut( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
648 {
|
joachim99@8
|
649 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
650 KAction* a = new KAction( i18n("Cut"), Qt::CTRL+Qt::Key_X, parent, slot, actionCollection, "cut", false, false );
|
joachim99@8
|
651 if(p) a->addTo( p->editMenu );
|
joachim99@8
|
652 return a;
|
joachim99@8
|
653 }
|
joachim99@8
|
654
|
joachim99@8
|
655 KAction* KStdAction::copy( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
656 {
|
joachim99@8
|
657 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
658 KAction* a = new KAction( i18n("Copy"), Qt::CTRL+Qt::Key_C, parent, slot, actionCollection, "copy", false, false );
|
joachim99@8
|
659 if(p) a->addTo( p->editMenu );
|
joachim99@8
|
660 return a;
|
joachim99@8
|
661 }
|
joachim99@8
|
662
|
joachim99@8
|
663 KAction* KStdAction::paste( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
664 {
|
joachim99@8
|
665 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
666 KAction* a = new KAction( i18n("Paste"), Qt::CTRL+Qt::Key_V, parent, slot, actionCollection, "paste", false, false );
|
joachim99@8
|
667 if(p) a->addTo( p->editMenu );
|
joachim99@8
|
668 return a;
|
joachim99@8
|
669 }
|
joachim99@8
|
670
|
joachim99@69
|
671 KAction* KStdAction::selectAll( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@69
|
672 {
|
joachim99@69
|
673 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@69
|
674 KAction* a = new KAction( i18n("Select All"), Qt::CTRL+Qt::Key_A, parent, slot, actionCollection, "selectall", false, false );
|
joachim99@69
|
675 if(p) a->addTo( p->editMenu );
|
joachim99@69
|
676 return a;
|
joachim99@69
|
677 }
|
joachim99@69
|
678
|
joachim99@8
|
679 KToggleAction* KStdAction::showToolbar( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
680 {
|
joachim99@8
|
681 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
682 KToggleAction* a = new KToggleAction( i18n("Show Toolbar"), 0, parent, slot, actionCollection, "showtoolbar", false );
|
joachim99@8
|
683 if(p) a->addTo( p->settingsMenu );
|
joachim99@8
|
684 return a;
|
joachim99@8
|
685 }
|
joachim99@8
|
686
|
joachim99@8
|
687 KToggleAction* KStdAction::showStatusbar( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
688 {
|
joachim99@8
|
689 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
690 KToggleAction* a = new KToggleAction( i18n("Show &Statusbar"), 0, parent, slot, actionCollection, "showstatusbar", false );
|
joachim99@8
|
691 if(p) a->addTo( p->settingsMenu );
|
joachim99@8
|
692 return a;
|
joachim99@8
|
693 }
|
joachim99@8
|
694
|
joachim99@8
|
695 KAction* KStdAction::preferences( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
696 {
|
joachim99@8
|
697 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
698 KAction* a = new KAction( i18n("&Configure %1...").arg("KDiff3"), 0, parent, slot, actionCollection, "settings", false, false );
|
joachim99@8
|
699 if(p) a->addTo( p->settingsMenu );
|
joachim99@8
|
700 return a;
|
joachim99@8
|
701 }
|
joachim99@8
|
702 KAction* KStdAction::keyBindings( QWidget*, const char*, KActionCollection*)
|
joachim99@8
|
703 {
|
joachim99@8
|
704 return 0;
|
joachim99@8
|
705 }
|
joachim99@8
|
706
|
joachim99@8
|
707 KAction* KStdAction::about( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
708 {
|
joachim99@8
|
709 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@69
|
710 KAction* a = new KAction( i18n("About")+" KDiff3", 0, parent, slot, actionCollection, "about_kdiff3", false, false );
|
joachim99@69
|
711 if(p) a->addTo( p->helpMenu );
|
joachim99@69
|
712 return a;
|
joachim99@69
|
713 }
|
joachim99@69
|
714
|
joachim99@69
|
715 KAction* KStdAction::aboutQt( KActionCollection* actionCollection )
|
joachim99@69
|
716 {
|
joachim99@69
|
717 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@69
|
718 KAction* a = new KAction( i18n("About")+" Qt", 0, qApp, SLOT(aboutQt()), actionCollection, "about_qt", false, false );
|
joachim99@8
|
719 if(p) a->addTo( p->helpMenu );
|
joachim99@8
|
720 return a;
|
joachim99@8
|
721 }
|
joachim99@8
|
722
|
joachim99@8
|
723 KAction* KStdAction::help( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
724 {
|
joachim99@8
|
725 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
726 KAction* a = new KAction( i18n("Help"), Qt::Key_F1, parent, slot, actionCollection, "help", false, false );
|
joachim99@8
|
727 if(p) a->addTo( p->helpMenu );
|
joachim99@8
|
728 return a;
|
joachim99@8
|
729 }
|
joachim99@8
|
730 KAction* KStdAction::find( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
731 {
|
joachim99@8
|
732 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
733 KAction* a = new KAction( i18n("Find"), Qt::CTRL+Qt::Key_F, parent, slot, actionCollection, "find", false, false );
|
joachim99@8
|
734 if(p) a->addTo( p->editMenu );
|
joachim99@8
|
735 return a;
|
joachim99@8
|
736 }
|
joachim99@8
|
737
|
joachim99@8
|
738 KAction* KStdAction::findNext( QWidget* parent, const char* slot, KActionCollection* actionCollection)
|
joachim99@8
|
739 {
|
joachim99@8
|
740 KMainWindow* p = actionCollection->m_pMainWindow;
|
joachim99@53
|
741 KAction* a = new KAction( i18n("Find Next"), Qt::Key_F3, parent, slot, actionCollection, "findNext", false, false );
|
joachim99@8
|
742 if(p) a->addTo( p->editMenu );
|
joachim99@8
|
743 return a;
|
joachim99@8
|
744 }
|
joachim99@8
|
745
|
joachim99@8
|
746
|
joachim99@8
|
747
|
joachim99@8
|
748
|
joachim99@8
|
749 KFontChooser::KFontChooser( QWidget* pParent, const QString& /*name*/, bool, const QStringList&, bool, int )
|
joachim99@8
|
750 : QWidget(pParent)
|
joachim99@8
|
751 {
|
joachim99@8
|
752 m_pParent = pParent;
|
joachim99@70
|
753 Q3VBoxLayout* pLayout = new Q3VBoxLayout( this );
|
joachim99@53
|
754 m_pSelectFont = new QPushButton(i18n("Select Font"), this );
|
joachim99@8
|
755 connect(m_pSelectFont, SIGNAL(clicked()), this, SLOT(slotSelectFont()));
|
joachim99@8
|
756 pLayout->addWidget(m_pSelectFont);
|
joachim99@8
|
757
|
joachim99@8
|
758 m_pLabel = new QLabel( "", this );
|
joachim99@8
|
759 m_pLabel->setFont( m_font );
|
joachim99@8
|
760 m_pLabel->setMinimumWidth(200);
|
joachim99@8
|
761 m_pLabel->setText( "The quick brown fox jumps over the river\n"
|
joachim99@8
|
762 "but the little red hen escapes with a shiver.\n"
|
joachim99@8
|
763 ":-)");
|
joachim99@8
|
764 pLayout->addWidget(m_pLabel);
|
joachim99@8
|
765 }
|
joachim99@8
|
766
|
joachim99@8
|
767 QFont KFontChooser::font()
|
joachim99@8
|
768 {
|
joachim99@8
|
769 return m_font;//QFont("courier",10);
|
joachim99@8
|
770 }
|
joachim99@8
|
771
|
joachim99@8
|
772 void KFontChooser::setFont( const QFont& font, bool )
|
joachim99@8
|
773 {
|
joachim99@8
|
774 m_font = font;
|
joachim99@8
|
775 m_pLabel->setFont( m_font );
|
joachim99@8
|
776 //update();
|
joachim99@8
|
777 }
|
joachim99@8
|
778
|
joachim99@8
|
779 void KFontChooser::slotSelectFont()
|
joachim99@8
|
780 {
|
joachim99@8
|
781 for(;;)
|
joachim99@8
|
782 {
|
joachim99@8
|
783 bool bOk;
|
joachim99@8
|
784 m_font = QFontDialog::getFont(&bOk, m_font );
|
joachim99@8
|
785 m_pLabel->setFont( m_font );
|
joachim99@8
|
786 QFontMetrics fm(m_font);
|
joachim99@8
|
787
|
joachim99@8
|
788 // Variable width font.
|
joachim99@8
|
789 if ( fm.width('W')!=fm.width('i') )
|
joachim99@8
|
790 {
|
joachim99@8
|
791 int result = KMessageBox::warningYesNo(m_pParent, i18n(
|
joachim99@8
|
792 "You selected a variable width font.\n\n"
|
joachim99@8
|
793 "Because this program doesn't handle variable width fonts\n"
|
joachim99@8
|
794 "correctly, you might experience problems while editing.\n\n"
|
joachim99@8
|
795 "Do you want to continue or do you want to select another font."),
|
joachim99@8
|
796 i18n("Incompatible font."),
|
joachim99@8
|
797 i18n("Continue at my own risk"), i18n("Select another font"));
|
joachim99@8
|
798 if (result==KMessageBox::Yes)
|
joachim99@8
|
799 return;
|
joachim99@8
|
800 }
|
joachim99@8
|
801 else
|
joachim99@8
|
802 return;
|
joachim99@8
|
803 }
|
joachim99@8
|
804 }
|
joachim99@8
|
805
|
joachim99@8
|
806
|
joachim99@8
|
807 KColorButton::KColorButton(QWidget* parent)
|
joachim99@8
|
808 : QPushButton(parent)
|
joachim99@8
|
809 {
|
joachim99@8
|
810 connect( this, SIGNAL(clicked()), this, SLOT(slotClicked()));
|
joachim99@8
|
811 }
|
joachim99@8
|
812
|
joachim99@8
|
813 QColor KColorButton::color()
|
joachim99@8
|
814 {
|
joachim99@8
|
815 return m_color;
|
joachim99@8
|
816 }
|
joachim99@8
|
817
|
joachim99@8
|
818 void KColorButton::setColor( const QColor& color )
|
joachim99@8
|
819 {
|
joachim99@8
|
820 m_color = color;
|
joachim99@8
|
821 update();
|
joachim99@8
|
822 }
|
joachim99@8
|
823
|
joachim99@8
|
824 void KColorButton::paintEvent( QPaintEvent* e )
|
joachim99@8
|
825 {
|
joachim99@8
|
826 QPushButton::paintEvent(e);
|
joachim99@8
|
827 QPainter p(this);
|
joachim99@8
|
828
|
joachim99@8
|
829 int w = width();
|
joachim99@8
|
830 int h = height();
|
joachim99@8
|
831 p.fillRect( 10, 5, w-20, h-10, m_color );
|
joachim99@8
|
832 p.drawRect( 10, 5, w-20, h-10 );
|
joachim99@8
|
833 }
|
joachim99@8
|
834
|
joachim99@8
|
835 void KColorButton::slotClicked()
|
joachim99@8
|
836 {
|
joachim99@8
|
837 // Under Windows ChooseColor() should be used. (Nicer if few colors exist.)
|
joachim99@8
|
838 QColor c = QColorDialog::getColor ( m_color, this );
|
joachim99@8
|
839 if ( c.isValid() ) m_color = c;
|
joachim99@8
|
840 update();
|
joachim99@8
|
841 }
|
joachim99@8
|
842
|
joachim99@69
|
843 KPrinter::KPrinter()
|
joachim99@69
|
844 {
|
joachim99@69
|
845 }
|
joachim99@70
|
846 Q3ValueList<int> KPrinter::pageList()
|
joachim99@69
|
847 {
|
joachim99@70
|
848 Q3ValueList<int> vl;
|
joachim99@69
|
849 int to = toPage();
|
joachim99@69
|
850 for(int i=fromPage(); i<=to; ++i)
|
joachim99@69
|
851 {
|
joachim99@69
|
852 vl.push_back(i);
|
joachim99@69
|
853 }
|
joachim99@69
|
854 return vl;
|
joachim99@69
|
855 }
|
joachim99@69
|
856 void KPrinter::setCurrentPage(int)
|
joachim99@69
|
857 {
|
joachim99@69
|
858 }
|
joachim99@69
|
859 void KPrinter::setPageSelection(e_PageSelection)
|
joachim99@69
|
860 {
|
joachim99@69
|
861 }
|
joachim99@69
|
862
|
joachim99@69
|
863
|
joachim99@8
|
864 QPixmap KIconLoader::loadIcon( const QString&, int )
|
joachim99@8
|
865 {
|
joachim99@8
|
866 return QPixmap();
|
joachim99@8
|
867 }
|
joachim99@8
|
868
|
joachim99@8
|
869 KAboutData::KAboutData( const QString& /*name*/, const QString& appName, const QString& version,
|
joachim99@8
|
870 const QString& description, int,
|
joachim99@8
|
871 const QString& copyright, int, const QString& homepage, const QString& email)
|
joachim99@8
|
872 {
|
joachim99@8
|
873 s_copyright = copyright;
|
joachim99@8
|
874 s_email = email;
|
joachim99@8
|
875 s_appName = appName;
|
joachim99@8
|
876 s_description = description;
|
joachim99@8
|
877 s_version = version;
|
joachim99@8
|
878 s_homepage = homepage;
|
joachim99@8
|
879 }
|
joachim99@8
|
880
|
joachim99@51
|
881 KAboutData::KAboutData( const QString& /*name*/, const QString& /*appName*/, const QString& /*version*/ )
|
joachim99@8
|
882 {
|
joachim99@8
|
883 }
|
joachim99@8
|
884
|
joachim99@66
|
885 void KAboutData::addAuthor(const char* name, const char* task, const char* email, const char* weblink)
|
joachim99@8
|
886 {
|
joachim99@66
|
887 m_authorList.push_back( AboutDataEntry( name, task, email, weblink) );
|
joachim99@66
|
888 }
|
joachim99@66
|
889
|
joachim99@66
|
890 void KAboutData::addCredit(const char* name, const char* task, const char* email, const char* weblink)
|
joachim99@66
|
891 {
|
joachim99@66
|
892 m_creditList.push_back( AboutDataEntry( name, task, email, weblink) );
|
joachim99@8
|
893 }
|
joachim99@8
|
894
|
joachim99@8
|
895 /* Option structure: e.g.:
|
joachim99@8
|
896 { "m", 0, 0 },
|
joachim99@8
|
897 { "merge", I18N_NOOP("Automatically merge the input."), 0 },
|
joachim99@8
|
898 { "o", 0, 0 },
|
joachim99@8
|
899 { "output file", I18N_NOOP("Output file. Implies -m. E.g.: -o newfile.txt"), 0 },
|
joachim99@8
|
900 { "+[File1]", I18N_NOOP("file1 to open (base)"), 0 },
|
joachim99@8
|
901 { "+[File2]", I18N_NOOP("file2 to open"), 0 },
|
joachim99@8
|
902 { "+[File3]", I18N_NOOP("file3 to open"), 0 },
|
joachim99@8
|
903 */
|
joachim99@8
|
904 ////////////////
|
joachim99@8
|
905 static KCmdLineArgs s_cmdLineArgs;
|
joachim99@8
|
906 static int s_argc;
|
joachim99@8
|
907 static char** s_argv;
|
joachim99@8
|
908 static KCmdLineOptions* s_pOptions;
|
joachim99@8
|
909
|
joachim99@8
|
910 static std::vector<QCStringList> s_vOption;
|
joachim99@8
|
911 static std::vector<const char*> s_vArg;
|
joachim99@8
|
912
|
joachim99@8
|
913 KCmdLineArgs* KCmdLineArgs::parsedArgs() // static
|
joachim99@8
|
914 {
|
joachim99@51
|
915 return &s_cmdLineArgs;
|
joachim99@8
|
916 }
|
joachim99@8
|
917
|
joachim99@66
|
918 void KCmdLineArgs::init( int argc, char**argv, KAboutData* pAboutData ) // static
|
joachim99@8
|
919 {
|
joachim99@8
|
920 s_argc = argc;
|
joachim99@8
|
921 s_argv = argv;
|
joachim99@66
|
922 s_pAboutData = pAboutData;
|
joachim99@8
|
923 }
|
joachim99@8
|
924
|
joachim99@8
|
925 void KCmdLineArgs::addCmdLineOptions( KCmdLineOptions* options ) // static
|
joachim99@8
|
926 {
|
joachim99@8
|
927 s_pOptions = options;
|
joachim99@8
|
928 }
|
joachim99@8
|
929
|
joachim99@8
|
930 int KCmdLineArgs::count()
|
joachim99@8
|
931 {
|
joachim99@8
|
932 return s_vArg.size();
|
joachim99@8
|
933 }
|
joachim99@8
|
934
|
joachim99@8
|
935 QString KCmdLineArgs::arg(int idx)
|
joachim99@8
|
936 {
|
joachim99@58
|
937 return QString::fromLocal8Bit( s_vArg[idx] );
|
joachim99@8
|
938 }
|
joachim99@8
|
939
|
joachim99@8
|
940 void KCmdLineArgs::clear()
|
joachim99@8
|
941 {
|
joachim99@8
|
942 }
|
joachim99@8
|
943
|
joachim99@8
|
944 QString KCmdLineArgs::getOption( const QString& s )
|
joachim99@8
|
945 {
|
joachim99@8
|
946 // Find the option
|
joachim99@8
|
947 int j=0;
|
joachim99@8
|
948 for( j=0; j<(int)s_vOption.size(); ++j )
|
joachim99@8
|
949 {
|
joachim99@69
|
950 const char* optName = s_pOptions[j].name;
|
joachim99@8
|
951 const char* pos = strchr( optName,' ' );
|
joachim99@8
|
952 int len = pos==0 ? strlen( optName ) : pos - optName;
|
joachim99@8
|
953
|
joachim99@70
|
954 if( s == (const char*)( Q3CString( optName, len+1) ) )
|
joachim99@8
|
955 {
|
joachim99@8
|
956 return s_vOption[j].isEmpty() ? QString() : s_vOption[j].last();
|
joachim99@8
|
957 }
|
joachim99@8
|
958 }
|
joachim99@8
|
959 assert(false);
|
joachim99@8
|
960 return QString();
|
joachim99@8
|
961 }
|
joachim99@8
|
962
|
joachim99@8
|
963 QCStringList KCmdLineArgs::getOptionList( const QString& s )
|
joachim99@8
|
964 {
|
joachim99@8
|
965 // Find the option
|
joachim99@8
|
966 int j=0;
|
joachim99@8
|
967 for( j=0; j<(int)s_vOption.size(); ++j )
|
joachim99@8
|
968 {
|
joachim99@69
|
969 const char* optName = s_pOptions[j].name;
|
joachim99@8
|
970 const char* pos = strchr( optName,' ' );
|
joachim99@8
|
971 int len = pos==0 ? strlen( optName ) : pos - optName;
|
joachim99@8
|
972
|
joachim99@70
|
973 if( s == (const char*)( Q3CString( optName, len+1) ) )
|
joachim99@8
|
974 {
|
joachim99@8
|
975 return s_vOption[j];
|
joachim99@8
|
976 }
|
joachim99@8
|
977 }
|
joachim99@8
|
978
|
joachim99@8
|
979 assert(false);
|
joachim99@8
|
980 return QCStringList();
|
joachim99@8
|
981 }
|
joachim99@8
|
982
|
joachim99@8
|
983 bool KCmdLineArgs::isSet(const QString& s)
|
joachim99@8
|
984 {
|
joachim99@8
|
985 // Find the option
|
joachim99@8
|
986 int j=0;
|
joachim99@8
|
987 for( j=0; j<(int)s_vOption.size(); ++j )
|
joachim99@8
|
988 {
|
joachim99@69
|
989 const char* optName = s_pOptions[j].name;
|
joachim99@8
|
990 if( s == QString( optName ) )
|
joachim99@8
|
991 {
|
joachim99@8
|
992 return ! s_vOption[j].isEmpty();
|
joachim99@8
|
993 }
|
joachim99@8
|
994 }
|
joachim99@8
|
995 assert(false);
|
joachim99@8
|
996 return false;
|
joachim99@8
|
997 }
|
joachim99@8
|
998
|
joachim99@8
|
999 ///////////////////
|
joachim99@8
|
1000 KApplication* kapp;
|
joachim99@8
|
1001
|
joachim99@8
|
1002 KApplication::KApplication()
|
joachim99@8
|
1003 : QApplication( s_argc,s_argv )
|
joachim99@8
|
1004 {
|
joachim99@8
|
1005 kapp = this;
|
joachim99@8
|
1006
|
joachim99@8
|
1007 int nofOptions=0;
|
joachim99@8
|
1008 int nofArgs=0;
|
joachim99@8
|
1009 int i=0;
|
joachim99@69
|
1010 while( s_pOptions[i].name != 0 )
|
joachim99@8
|
1011 {
|
joachim99@69
|
1012 if ( s_pOptions[i].name[0]=='[' )
|
joachim99@8
|
1013 nofArgs++;
|
joachim99@8
|
1014 else
|
joachim99@8
|
1015 nofOptions++;
|
joachim99@8
|
1016
|
joachim99@8
|
1017 ++i;
|
joachim99@8
|
1018 }
|
joachim99@8
|
1019
|
joachim99@69
|
1020 // First find the option "-config" or "--config" to allow loading of options
|
joachim99@69
|
1021 QString configFileName;
|
joachim99@69
|
1022 for( i=1; i<s_argc-1; ++i )
|
joachim99@69
|
1023 {
|
joachim99@69
|
1024 QString arg = s_argv[i];
|
joachim99@69
|
1025 if ( arg == "-config" || arg == "--config" )
|
joachim99@69
|
1026 {
|
joachim99@69
|
1027 configFileName = s_argv[i+1];
|
joachim99@69
|
1028 }
|
joachim99@69
|
1029 }
|
joachim99@69
|
1030 m_config.readConfigFile(configFileName);
|
joachim99@69
|
1031
|
joachim99@70
|
1032 QStringList ignorableCmdLineOptionsList = m_config.readListEntry("IgnorableCmdLineOptions", QStringList("-u;-query;-html;-abort"), '|');
|
joachim99@69
|
1033 QString ignorableCmdLineOptions;
|
joachim99@69
|
1034 if ( !ignorableCmdLineOptionsList.isEmpty() )
|
joachim99@69
|
1035 ignorableCmdLineOptions = ignorableCmdLineOptionsList.front() + ";";
|
joachim99@69
|
1036
|
joachim99@8
|
1037 s_vOption.resize(nofOptions);
|
joachim99@8
|
1038
|
joachim99@8
|
1039 for( i=1; i<s_argc; ++i )
|
joachim99@8
|
1040 {
|
joachim99@8
|
1041 if ( s_argv[i][0]=='-' ) // An option
|
joachim99@8
|
1042 {
|
joachim99@69
|
1043 if ( ignorableCmdLineOptions.contains(QString(s_argv[i])+";") )
|
joachim99@69
|
1044 continue;
|
joachim99@8
|
1045 // Find the option
|
joachim99@8
|
1046 int j=0;
|
joachim99@8
|
1047 for( j=0; j<nofOptions; ++j )
|
joachim99@8
|
1048 {
|
joachim99@69
|
1049 const char* optName = s_pOptions[j].name;
|
joachim99@8
|
1050 const char* pos = strchr( optName,' ' );
|
joachim99@8
|
1051 int len = pos==0 ? strlen( optName ) : pos - optName;
|
joachim99@69
|
1052 int len2 = strlen(s_argv[i]);
|
joachim99@8
|
1053
|
joachim99@69
|
1054 if( len>0 && ( s_argv[i][1]=='-' && len2-2==len && memcmp( &s_argv[i][2], optName, len )==0 ||
|
joachim99@69
|
1055 len2-1==len && memcmp( &s_argv[i][1], optName, len )==0 ))
|
joachim99@8
|
1056 {
|
joachim99@69
|
1057 if (s_pOptions[j].description == 0) // alias, because without description.
|
joachim99@8
|
1058 {
|
joachim99@8
|
1059 ++j;
|
joachim99@69
|
1060 optName = s_pOptions[j].name;
|
joachim99@8
|
1061 pos = strchr( optName,' ' );
|
joachim99@8
|
1062 }
|
joachim99@8
|
1063 if (pos!=0){ ++i; s_vOption[j].append(s_argv[i]); } //use param
|
joachim99@8
|
1064 else { s_vOption[j].append("1"); } //set state
|
joachim99@8
|
1065 break;
|
joachim99@8
|
1066 }
|
joachim99@8
|
1067 }
|
joachim99@8
|
1068 if (j==nofOptions)
|
joachim99@8
|
1069 {
|
joachim99@58
|
1070 QString s;
|
joachim99@70
|
1071 s = QString("Unknown option: ") + QString(s_argv[i]) + "\n";
|
joachim99@69
|
1072 s += "If KDiff3 should ignore this option, run KDiff3 normally and edit\n"
|
joachim99@69
|
1073 "the \"Command line options to ignore\" in the \"Integration Settings\".\n\n";
|
joachim99@8
|
1074
|
joachim99@58
|
1075 s += "KDiff3-Usage when starting via commandline: \n";
|
joachim99@58
|
1076 s += "- Comparing 2 files:\t\tkdiff3 file1 file2\n";
|
joachim99@58
|
1077 s += "- Merging 2 files: \t\tkdiff3 file1 file2 -o outputfile\n";
|
joachim99@58
|
1078 s += "- Comparing 3 files:\t\tkdiff3 file1 file2 file3\n";
|
joachim99@58
|
1079 s += "- Merging 3 files: \t\tkdiff3 file1 file2 file3 -o outputfile\n";
|
joachim99@58
|
1080 s += " Note that file1 will be treated as base of file2 and file3.\n";
|
joachim99@58
|
1081 s += "\n";
|
joachim99@58
|
1082 s += "If you start without arguments, then a dialog will appear\n";
|
joachim99@58
|
1083 s += "where you can select your files via a filebrowser.\n";
|
joachim99@58
|
1084 s += "\n";
|
joachim99@66
|
1085
|
joachim99@66
|
1086 s += "Options:\n";
|
joachim99@66
|
1087
|
joachim99@66
|
1088 j=0;
|
joachim99@66
|
1089 int pos=s.length();
|
joachim99@66
|
1090 for( j=0; j<nofOptions; ++j )
|
joachim99@66
|
1091 {
|
joachim99@69
|
1092 if ( s_pOptions[j].description!=0 )
|
joachim99@66
|
1093 {
|
joachim99@69
|
1094 if (s_pOptions[j].name[0]!='+')
|
joachim99@66
|
1095 {
|
joachim99@66
|
1096 s += "-";
|
joachim99@69
|
1097 if ( strlen(s_pOptions[j].name)>1 ) s += "-";
|
joachim99@66
|
1098 }
|
joachim99@69
|
1099 s += s_pOptions[j].name;
|
joachim99@66
|
1100 s += QString().fill(' ', minMaxLimiter( 20 - ((int)s.length()-pos), 3, 20 ) );
|
joachim99@69
|
1101 s += s_pOptions[j].description;
|
joachim99@66
|
1102 s +="\n";
|
joachim99@66
|
1103 pos=s.length();
|
joachim99@66
|
1104 }
|
joachim99@66
|
1105 else
|
joachim99@66
|
1106 {
|
joachim99@66
|
1107 s += "-";
|
joachim99@69
|
1108 if ( strlen(s_pOptions[j].name)>1 ) s += "-";
|
joachim99@69
|
1109 s += s_pOptions[j].name;
|
joachim99@66
|
1110 s += ", ";
|
joachim99@66
|
1111 }
|
joachim99@66
|
1112 }
|
joachim99@69
|
1113
|
joachim99@69
|
1114 s += "\n"+i18n("For more documentation, see the help-menu or the subdirectory doc.")+"\n";
|
joachim99@69
|
1115 #ifdef _WIN32
|
joachim99@58
|
1116 // A windows program has no console
|
joachim99@69
|
1117 if ( 0==QMessageBox::information(0, i18n("KDiff3-Usage"), s, i18n("Ignore"),i18n("Exit") ) )
|
joachim99@69
|
1118 continue;
|
joachim99@58
|
1119 #else
|
joachim99@58
|
1120 std::cerr << s.latin1() << std::endl;
|
joachim99@58
|
1121 #endif
|
joachim99@69
|
1122
|
joachim99@8
|
1123 ::exit(-1);
|
joachim99@8
|
1124 }
|
joachim99@8
|
1125 }
|
joachim99@8
|
1126 else
|
joachim99@8
|
1127 s_vArg.push_back( s_argv[i] );
|
joachim99@8
|
1128 }
|
joachim99@8
|
1129 }
|
joachim99@8
|
1130
|
joachim99@8
|
1131 KConfig* KApplication::config()
|
joachim99@8
|
1132 {
|
joachim99@8
|
1133 return &m_config;
|
joachim99@8
|
1134 }
|
joachim99@8
|
1135
|
joachim99@8
|
1136 bool KApplication::isRestored()
|
joachim99@8
|
1137 {
|
joachim99@8
|
1138 return false;
|
joachim99@8
|
1139 }
|
joachim99@8
|
1140
|
joachim99@8
|
1141 KApplication* KApplication::kApplication()
|
joachim99@8
|
1142 {
|
joachim99@8
|
1143 return kapp;
|
joachim99@8
|
1144 }
|
joachim99@8
|
1145
|
joachim99@8
|
1146 KIconLoader* KApplication::iconLoader()
|
joachim99@8
|
1147 {
|
joachim99@8
|
1148 return &m_iconLoader;
|
joachim99@8
|
1149 }
|
joachim99@8
|
1150
|
joachim99@8
|
1151
|
joachim99@8
|
1152 namespace KIO
|
joachim99@8
|
1153 {
|
joachim99@8
|
1154 SimpleJob* mkdir( KURL ){return 0;}
|
joachim99@8
|
1155 SimpleJob* rmdir( KURL ){return 0;}
|
joachim99@8
|
1156 SimpleJob* file_delete( KURL, bool ){return 0;}
|
joachim99@8
|
1157 FileCopyJob* file_move( KURL, KURL, int, bool, bool, bool ) {return 0;}
|
joachim99@8
|
1158 FileCopyJob* file_copy( KURL, KURL, int, bool, bool, bool ) {return 0;}
|
joachim99@8
|
1159 CopyJob* link( KURL, KURL, bool ) {return 0;}
|
joachim99@8
|
1160 ListJob* listRecursive( KURL, bool, bool ){return 0;}
|
joachim99@8
|
1161 ListJob* listDir( KURL, bool, bool ){return 0;}
|
joachim99@8
|
1162 StatJob* stat( KURL, bool, int, bool ){return 0;}
|
joachim99@8
|
1163 TransferJob* get( KURL, bool, bool ){return (TransferJob*)0;}
|
joachim99@8
|
1164 TransferJob* put( KURL, int, bool, bool, bool ){return (TransferJob*)0;}
|
joachim99@8
|
1165 };
|
joachim99@8
|
1166
|
joachim99@8
|
1167 KActionCollection* KParts::Part::actionCollection()
|
joachim99@8
|
1168 {
|
joachim99@8
|
1169 return 0;
|
joachim99@8
|
1170 }
|
joachim99@8
|
1171
|
joachim99@8
|
1172 KApplication* KParts::Part::instance()
|
joachim99@8
|
1173 {
|
joachim99@8
|
1174 return kapp;
|
joachim99@8
|
1175 }
|
joachim99@8
|
1176
|
joachim99@8
|
1177
|
joachim99@8
|
1178 KLibLoader* KLibLoader::self()
|
joachim99@8
|
1179 {
|
joachim99@8
|
1180 static KLibLoader ll;
|
joachim99@8
|
1181 return ≪
|
joachim99@8
|
1182 }
|
joachim99@8
|
1183
|
joachim99@8
|
1184 extern "C" void* init_libkdiff3part();
|
joachim99@8
|
1185 KLibFactory* KLibLoader::factory(QString const&)
|
joachim99@8
|
1186 {
|
joachim99@8
|
1187 return (KLibFactory*) init_libkdiff3part();
|
joachim99@8
|
1188 }
|
joachim99@8
|
1189
|
joachim99@68
|
1190 QObject* KLibFactory::create(QObject* pParent, const QString& name, const QString& classname )
|
joachim99@8
|
1191 {
|
joachim99@8
|
1192 KParts::Factory* f = dynamic_cast<KParts::Factory*>(this);
|
joachim99@8
|
1193 if (f!=0)
|
joachim99@68
|
1194 return f->createPartObject( (QWidget*)pParent, name.ascii(),
|
joachim99@68
|
1195 pParent, name.ascii(),
|
joachim99@68
|
1196 classname.ascii(), QStringList() );
|
joachim99@8
|
1197 else
|
joachim99@8
|
1198 return 0;
|
joachim99@8
|
1199 }
|
joachim99@8
|
1200
|
joachim99@8
|
1201
|
joachim99@8
|
1202
|
joachim99@58
|
1203
|
joachim99@8
|
1204 #include "kreplacements.moc"
|