-rw-r--r-- | microkde/kapplication.cpp | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/microkde/kapplication.cpp b/microkde/kapplication.cpp index 80a83e0..539397b 100644 --- a/microkde/kapplication.cpp +++ b/microkde/kapplication.cpp | |||
@@ -63,64 +63,184 @@ void KApplication::testCoords( int* x, int* y, int* wid, int * hei ) | |||
63 | } | 63 | } |
64 | void KApplication::showFile(QString caption, QString fn) | 64 | void KApplication::showFile(QString caption, QString fn) |
65 | { | 65 | { |
66 | QString text; | 66 | QString text; |
67 | QString fileName; | 67 | QString fileName; |
68 | #ifndef DESKTOP_VERSION | 68 | #ifndef DESKTOP_VERSION |
69 | fileName = getenv("QPEDIR"); | 69 | fileName = getenv("QPEDIR"); |
70 | fileName += "/pics/" + fn ; | 70 | fileName += "/pics/" + fn ; |
71 | #else | 71 | #else |
72 | fileName = qApp->applicationDirPath () + "/" + fn; | 72 | fileName = qApp->applicationDirPath () + "/" + fn; |
73 | #endif | 73 | #endif |
74 | QFile file( fileName ); | 74 | QFile file( fileName ); |
75 | if (!file.open( IO_ReadOnly ) ) { | 75 | if (!file.open( IO_ReadOnly ) ) { |
76 | return ; | 76 | return ; |
77 | } | 77 | } |
78 | QTextStream ts( &file ); | 78 | QTextStream ts( &file ); |
79 | text = ts.read(); | 79 | text = ts.read(); |
80 | file.close(); | 80 | file.close(); |
81 | KApplication::showText( caption, text ); | 81 | KApplication::showText( caption, text ); |
82 | 82 | ||
83 | } | 83 | } |
84 | 84 | ||
85 | bool KApplication::convert2latin1(QString fileName) | 85 | bool KApplication::convert2latin1(QString fileName) |
86 | { | 86 | { |
87 | QString text; | 87 | QString text; |
88 | QFile file( fileName ); | 88 | QFile file( fileName ); |
89 | if (!file.open( IO_ReadOnly ) ) { | 89 | if (!file.open( IO_ReadOnly ) ) { |
90 | return false; | 90 | return false; |
91 | 91 | ||
92 | } | 92 | } |
93 | QTextStream ts( &file ); | 93 | QTextStream ts( &file ); |
94 | ts.setEncoding( QTextStream::UnicodeUTF8 ); | 94 | ts.setEncoding( QTextStream::UnicodeUTF8 ); |
95 | text = ts.read(); | 95 | text = ts.read(); |
96 | file.close(); | 96 | file.close(); |
97 | if (!file.open( IO_WriteOnly ) ) { | 97 | if (!file.open( IO_WriteOnly ) ) { |
98 | return false; | 98 | return false; |
99 | } | 99 | } |
100 | QTextStream tsIn( &file ); | 100 | QTextStream tsIn( &file ); |
101 | tsIn.setEncoding( QTextStream::Latin1 ); | 101 | tsIn.setEncoding( QTextStream::Latin1 ); |
102 | tsIn << text.latin1(); | 102 | tsIn << text.latin1(); |
103 | file.close(); | 103 | file.close(); |
104 | return true; | 104 | return true; |
105 | 105 | ||
106 | 106 | ||
107 | } | 107 | } |
108 | void KApplication::showText(QString caption, QString text) | 108 | void KApplication::showText(QString caption, QString text) |
109 | { | 109 | { |
110 | QDialog dia( 0, "name", true ); ; | 110 | QDialog dia( 0, "name", true ); ; |
111 | dia.setCaption( caption ); | 111 | dia.setCaption( caption ); |
112 | QVBoxLayout* lay = new QVBoxLayout( &dia ); | 112 | QVBoxLayout* lay = new QVBoxLayout( &dia ); |
113 | lay->setSpacing( 3 ); | 113 | lay->setSpacing( 3 ); |
114 | lay->setMargin( 3 ); | 114 | lay->setMargin( 3 ); |
115 | KTextEdit tb ( &dia ); | 115 | KTextEdit tb ( &dia ); |
116 | tb.setWordWrap( QMultiLineEdit::WidgetWidth ); | 116 | tb.setWordWrap( QMultiLineEdit::WidgetWidth ); |
117 | lay->addWidget( &tb ); | 117 | lay->addWidget( &tb ); |
118 | tb.setText( text ); | 118 | tb.setText( text ); |
119 | #ifdef DESKTOP_VERSION | 119 | #ifdef DESKTOP_VERSION |
120 | dia.resize( 640, 480); | 120 | dia.resize( 640, 480); |
121 | #else | 121 | #else |
122 | dia.showMaximized(); | 122 | dia.showMaximized(); |
123 | #endif | 123 | #endif |
124 | dia.exec(); | 124 | dia.exec(); |
125 | 125 | ||
126 | } | 126 | } |
127 | |||
128 | #include <qlabel.h> | ||
129 | #include <qpushbutton.h> | ||
130 | #include <qlayout.h> | ||
131 | #include <qdir.h> | ||
132 | #include <qradiobutton.h> | ||
133 | #include <qbuttongroup.h> | ||
134 | #include "kglobal.h" | ||
135 | #include "klocale.h" | ||
136 | |||
137 | class KBackupPrefs : public QDialog | ||
138 | { | ||
139 | public: | ||
140 | KBackupPrefs( QString message , QWidget *parent=0, const char *name=0 ) : | ||
141 | QDialog( parent, name, true ) | ||
142 | { | ||
143 | setCaption( i18n("Backup Failed!") ); | ||
144 | QVBoxLayout* lay = new QVBoxLayout( this ); | ||
145 | lay->setSpacing( 3 ); | ||
146 | lay->setMargin( 3 ); | ||
147 | QLabel * lab = new QLabel( message, this ); | ||
148 | lay->addWidget( lab ); | ||
149 | QButtonGroup* format = new QButtonGroup( 1, Horizontal, i18n("Choose action"), this ); | ||
150 | lay->addWidget( format ); | ||
151 | format->setExclusive ( true ) ; | ||
152 | vcal = new QRadioButton(i18n("Try again now"), format ); | ||
153 | tcal = new QRadioButton(i18n("Try again later"), format ); | ||
154 | ical = new QRadioButton(i18n("Try again tomorrow"), format ); | ||
155 | ocal = new QRadioButton(i18n("Disable backup"), format ); | ||
156 | vcal->setChecked( true ); | ||
157 | QPushButton * ok = new QPushButton( i18n("OK"), this ); | ||
158 | lay->addWidget(ok ); | ||
159 | connect ( ok,SIGNAL(clicked() ),this , SLOT ( accept() ) ); | ||
160 | } | ||
161 | |||
162 | bool again() { return vcal->isChecked(); } | ||
163 | bool later() { return tcal->isChecked(); } | ||
164 | bool againTomorrow() { return ical->isChecked(); } | ||
165 | private: | ||
166 | QRadioButton* vcal, *ical, *ocal, *tcal; | ||
167 | }; | ||
168 | int KApplication::createBackup( QString fn, QString dp, int numBup ) | ||
169 | { | ||
170 | if ( numBup < 1) return 3; | ||
171 | int ret = 3; | ||
172 | qDebug("KApplication::createBackup %s --- %s --- %d", fn.latin1(), dp.latin1(), numBup); | ||
173 | QDir bupDir ( dp ); | ||
174 | bool tryAgain = true; | ||
175 | while ( tryAgain ) { | ||
176 | if ( !bupDir.exists() ) { | ||
177 | KBackupPrefs noDir( i18n("<b>Backup directory does not exist: </b>") + dp.right(30)); | ||
178 | if ( !noDir.exec() ) return 3; | ||
179 | if ( noDir.againTomorrow() ) { | ||
180 | return 0; | ||
181 | } else if ( noDir.later() ) { | ||
182 | return 3; | ||
183 | } else if ( !noDir.again() ) { | ||
184 | return 2; | ||
185 | } | ||
186 | } else { | ||
187 | tryAgain = false; | ||
188 | } | ||
189 | } | ||
190 | // we have a valid dir! | ||
191 | QStringList allFileList = bupDir.entryList(QDir::Files); | ||
192 | QFileInfo fileInfo ( fn ); | ||
193 | QString fName = fileInfo.fileName (); | ||
194 | QStringList fileList; | ||
195 | |||
196 | int i; | ||
197 | for ( i = 0; i < allFileList.count(); ++i ) { | ||
198 | QString fi = allFileList[i]; | ||
199 | if ( fi. find( fName ) > -1 ) | ||
200 | fileList.append( fi ); | ||
201 | } | ||
202 | qDebug("%d backup files exist ", fileList.count()); | ||
203 | int count = fileList.count(); | ||
204 | fileList.sort(); | ||
205 | int remCount = 0; | ||
206 | while ( count >= numBup ) { | ||
207 | QString fnr = dp + "/"+fileList[remCount]; | ||
208 | QFile::remove( fnr ); | ||
209 | --count; | ||
210 | ++remCount; | ||
211 | } | ||
212 | QDateTime mRunStart = QDateTime::currentDateTime(); | ||
213 | QString file = "%1%2%3-%4%5%6-"; | ||
214 | file = file.arg( mRunStart.date().year(), 4).arg( mRunStart.date().month(),2 ).arg( mRunStart.date().day(), 2 ).arg( mRunStart.time().hour(),2 ).arg( mRunStart.time().minute(),2 ).arg( mRunStart.time().second(),2 ); | ||
215 | file.replace ( QRegExp (" "), "0" ); | ||
216 | file += fName ; | ||
217 | file = dp + "/"+file; | ||
218 | QString command; | ||
219 | int res = 0; | ||
220 | #ifdef _WIN32_ | ||
221 | command = "xcopy "+ fn+ " "+file; | ||
222 | command = QDir::convertSeparators( command ); | ||
223 | #else | ||
224 | command = "cp "+ fn+ " "+file; | ||
225 | #endif | ||
226 | qDebug("command %s ",command.latin1() ); | ||
227 | tryAgain = true; | ||
228 | while ( tryAgain ) { | ||
229 | res = system ( command.latin1() ); | ||
230 | qDebug("copy result %d ", res); | ||
231 | if ( res != 0 ) { | ||
232 | KBackupPrefs noDir( i18n("<b>The backup copy command failed!</b>")); | ||
233 | if ( !noDir.exec() ) return 3; | ||
234 | if ( noDir.againTomorrow() ) { | ||
235 | return 0; | ||
236 | } else if ( noDir.later() ) { | ||
237 | return 3; | ||
238 | } else if ( !noDir.again() ) { | ||
239 | return 2; | ||
240 | } | ||
241 | } else { | ||
242 | tryAgain = false; | ||
243 | } | ||
244 | } | ||
245 | return 1; | ||
246 | } | ||