1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
#include "notepad.h"
#include <kparts/partmanager.h>
#include <kparts/mainwindow.h>
#include <qsplitter.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qmultilineedit.h>
#include <kaboutdata.h>
#include <kapplication.h>
#include <kdebug.h>
#include <kaction.h>
#include <klocale.h>
#include <kstatusbar.h>
#include <kstandarddirs.h>
NotepadPart::NotepadPart( QWidget* parentWidget, const char*,
QObject* parent, const char* name,
const QStringList& )
: KParts::ReadWritePart( parent, name )
{
setInstance( NotepadFactory::instance() );
m_edit = new QMultiLineEdit( parentWidget, "NotepadPart's multiline edit" );
setWidget( m_edit );
(void)new KAction( "Search and replace", 0, this, SLOT( slotSearchReplace() ), actionCollection(), "searchreplace" );
setXMLFile( "notepadpart.rc" );
setReadWrite( true );
}
NotepadPart::~NotepadPart()
{
}
void NotepadPart::setReadWrite( bool rw )
{
m_edit->setReadOnly( !rw );
if (rw)
connect( m_edit, SIGNAL( textChanged() ), this, SLOT( setModified() ) );
else
disconnect( m_edit, SIGNAL( textChanged() ), this, SLOT( setModified() ) );
ReadWritePart::setReadWrite( rw );
}
KAboutData* NotepadPart::createAboutData()
{
return new KAboutData( "notepadpart", I18N_NOOP( "Notepad" ), "2.0" );
}
bool NotepadPart::openFile()
{
kdDebug() << "NotepadPart: opening " << m_file << endl;
// Hehe this is from a tutorial I did some time ago :)
QFile f(m_file);
QString s;
if ( f.open(IO_ReadOnly) ) {
QTextStream t( &f );
while ( !t.eof() ) {
s += t.readLine() + "\n";
}
f.close();
}
m_edit->setText(s);
emit setStatusBarText( m_url.prettyURL() );
return true;
}
bool NotepadPart::saveFile()
{
if ( !isReadWrite() )
return false;
QFile f(m_file);
QString s;
if ( f.open(IO_WriteOnly) ) {
QTextStream t( &f );
t << m_edit->text();
f.close();
return true;
} else
return false;
}
void NotepadPart::slotSearchReplace()
{
// What's this ? (David)
/*
QValueList<KParts::XMLGUIServant *> plugins = KParts::Plugin::pluginServants( this );
QValueList<KParts::XMLGUIServant *>::ConstIterator it = plugins.begin();
QValueList<KParts::XMLGUIServant *>::ConstIterator end = plugins.end();
for (; it != end; ++it )
factory()->removeServant( *it );
*/
}
#include "notepad.moc"
|