source: tests/widget/widget.cpp@ 499

Last change on this file since 499 was 499, checked in by Dmitry A. Kuminov, 15 years ago

tests/widget: Added testcase for QEvent::NonClientAreaMouse* events.

File size: 25.0 KB
Line 
1#include <QDebug>
2
3#include <QtGui>
4
5#ifndef Q_WS_PM
6
7// For printing non-quoted QString's with QDebug)
8struct QDbgStr: public QString
9{
10 inline QDbgStr(const QString &str) : QString(str) {}
11};
12
13// Prints a non-quoted QString
14inline QDebug operator<<(QDebug dbg, const QDbgStr &str)
15{ dbg << str.toUtf8().constData(); return dbg; }
16
17QDbgStr qWidgetName(QWidget *w)
18{
19 if (w)
20 return QString()
21 .sprintf("%s.%s", w->metaObject()->className(),
22 w->objectName().isEmpty() ? "<noname>" :
23 w->objectName().toUtf8().constData());
24 return QString(QLatin1String("<no-widget>"));
25}
26
27#endif
28
29#define myDefFlagEx(var,fl,varstr,flstr) if (var & fl) { \
30 if (!varstr.isEmpty()) varstr += QLatin1String("|"); varstr += QLatin1String(flstr); \
31} else do {} while(0)
32
33#define myDefFlag(var,fl,varstr) myDefFlagEx(var,fl,varstr,#fl)
34#define myDefFlagCut(var,fl,varstr,pos) myDefFlagEx(var,fl,varstr,#fl + pos)
35
36#define PRINT_EXPR(e) qWarning() << #e << e
37
38QDebug operator<<(QDebug dbg, Qt::WindowStates st)
39{
40 QString name;
41 myDefFlagEx(st, Qt::WindowMinimized, name, "Min");
42 myDefFlagEx(st, Qt::WindowMaximized, name, "Max");
43 myDefFlagEx(st, Qt::WindowFullScreen, name, "Full");
44 myDefFlagEx(st, Qt::WindowActive, name, "Act");
45 if (name.isEmpty()) name = QLatin1String("None");
46 dbg.nospace() << "WindowState(" << QDbgStr(name) << ")";
47 return dbg.space();
48}
49
50QDebug operator<<(QDebug dbg, Qt::FocusReason r)
51{
52 QString name;
53 if (r == Qt::MouseFocusReason) name = "Mouse";
54 if (r == Qt::TabFocusReason) name = "Tab";
55 if (r == Qt::BacktabFocusReason) name = "Backtab";
56 if (r == Qt::ActiveWindowFocusReason) name = "ActWin";
57 if (r == Qt::PopupFocusReason) name = "Popup";
58 if (r == Qt::ShortcutFocusReason) name = "Shortcut";
59 if (r == Qt::MenuBarFocusReason) name = "MenuBar";
60 if (r == Qt::OtherFocusReason) name = "Other";
61 dbg.nospace() << "FocusReason(" << QDbgStr(name) << ")";
62 return dbg.space();
63}
64
65////////////////////////////////////////////////////////////////////////////////
66
67class MyChild : public QWidget
68{
69 Q_OBJECT
70
71public:
72
73 MyChild(QWidget *aParent) : QWidget(aParent), mPressed(0)
74 {
75 setFocusPolicy(Qt::StrongFocus);
76
77 resize(64, 32);
78 }
79
80 void paintEvent(QPaintEvent *aE)
81 {
82 qDebug() << qWidgetName(this) << __FUNCTION__
83 << ": " << aE->rect() << "focus" << hasFocus();
84
85 QPainter p(this);
86 p.setRenderHint(QPainter::Antialiasing);
87
88 if (hasFocus())
89 p.fillRect(aE->rect(), mPressed % 2 ? Qt::red : Qt::green);
90 else
91 p.fillRect(aE->rect(), Qt::gray);
92 }
93
94 void mousePressEvent(QMouseEvent *aE)
95 {
96 ++mPressed;
97 update();
98 }
99
100 void mouseReleaseEvent(QMouseEvent *aE)
101 {
102 ++mPressed;
103 update();
104 }
105
106 void focusInEvent(QFocusEvent *aE)
107 {
108 qDebug() << qWidgetName(this) << __FUNCTION__ << ": reason" << aE->reason();
109 QWidget::focusInEvent(aE);
110 }
111
112 void focusOutEvent(QFocusEvent *aE)
113 {
114 qDebug() << qWidgetName(this) << __FUNCTION__ << ": reason" << aE->reason();
115 QWidget::focusOutEvent(aE);
116 }
117
118private:
119
120 int mPressed;
121};
122
123////////////////////////////////////////////////////////////////////////////////
124
125class MyButton : public QPushButton
126{
127public:
128
129 MyButton(QWidget *aParent) : QPushButton(aParent)
130 {
131 QMenu *menu = new QMenu(aParent);
132 menu->addAction(QLatin1String("Action &1"));
133 menu->addAction(QLatin1String("Action &2"));
134 setMenu(menu);
135 }
136
137#if 0
138 void focusInEvent(QFocusEvent *aE)
139 {
140 qDebug() << qWidgetName(this) << __FUNCTION__ << ":" << text()
141 << "reason" << aE->reason()
142 << "focus" << (qApp->focusWidget() ?
143 qWidgetName(qApp->focusWidget()) : QDbgStr(QLatin1String("<none>")));
144
145 QPushButton::focusInEvent(aE);
146 }
147
148 void focusOutEvent(QFocusEvent *aE)
149 {
150 qDebug() << qWidgetName(this) << __FUNCTION__ << ":" << text()
151 << "reason" << aE->reason()
152 << "focus" << (qApp->focusWidget() ?
153 qWidgetName(qApp->focusWidget()) : QDbgStr(QLatin1String("<none>")));
154 QPushButton::focusOutEvent(aE);
155 }
156#endif
157};
158
159
160////////////////////////////////////////////////////////////////////////////////
161
162class MyCombo : public QComboBox
163{
164public:
165
166 MyCombo(QWidget *aParent) : QComboBox(aParent) {}
167
168#if 0
169 void focusInEvent(QFocusEvent *aE)
170 {
171 qDebug() << qWidgetName(this) << __FUNCTION__ << ":" << currentText()
172 << "reason" << aE->reason()
173 << "focus" << (qApp->focusWidget() ?
174 qWidgetName(qApp->focusWidget()) : QDbgStr(QLatin1String("<none>")));
175 QComboBox::focusInEvent(aE);
176 }
177
178 void focusOutEvent(QFocusEvent *aE)
179 {
180 qDebug() << qWidgetName(this) << __FUNCTION__ << ":" << currentText()
181 << "reason" << aE->reason()
182 << "focus" << (qApp->focusWidget() ?
183 qWidgetName(qApp->focusWidget()) : QDbgStr(QLatin1String("<none>")));
184 QComboBox::focusOutEvent(aE);
185 }
186#endif
187
188#if 0
189 void resizeEvent(QResizeEvent *aE)
190 {
191 qDebug() << __FUNCTION__ << ":" << currentText() << "g" << geometry() << "fg" << frameGeometry()
192 << "sz" << aE->size() << "old" << aE->oldSize();
193 }
194
195 void moveEvent(QMoveEvent *aE)
196 {
197 qDebug() << __FUNCTION__ << ":" << currentText() << " g" << geometry() << "fg" << frameGeometry()
198 << "pos" << aE->pos() << "old" << aE->oldPos();
199 }
200#endif
201
202#if 0
203 virtual void enterEvent(QEvent *event)
204 {
205 qDebug() << __FUNCTION__ << ":" << currentText();
206 }
207
208 virtual void leaveEvent(QEvent *event)
209 {
210 qDebug() << __FUNCTION__ << ":" << currentText();
211 }
212#endif
213
214#if 0
215 void mousePressEvent(QMouseEvent *aE)
216 {
217 qDebug() << __FUNCTION__ << ": btn" << aE->button()
218 << QDbgStr(QString().sprintf("btns %08X mods %08X",
219 (int) aE->buttons(), (int) aE->modifiers()))
220 << "gpos" << aE->globalPos() << "pos" << aE->pos();
221 QComboBox::mousePressEvent(aE);
222 }
223
224 void mouseReleaseEvent(QMouseEvent *aE)
225 {
226 qDebug() << __FUNCTION__ << ": btn" << aE->button()
227 << QDbgStr(QString().sprintf("btns %08X mods %08X",
228 (int) aE->buttons(), (int) aE->modifiers()))
229 << "gpos" << aE->globalPos() << "pos" << aE->pos();
230 QComboBox::mouseReleaseEvent(aE);
231 }
232
233 void contextMenuEvent(QContextMenuEvent *aE)
234 {
235 QMenu menu;
236 menu.addAction(QLatin1String("Action &1"));
237 menu.addAction(QLatin1String("Action &2"));
238 menu.exec(aE->globalPos());
239 winId();
240 }
241#endif
242};
243
244////////////////////////////////////////////////////////////////////////////////
245
246class MyWidget : public QWidget
247{
248public:
249
250 MyWidget() : mPressed(0)
251 {
252#if 0
253 MyButton *btn1 = new MyButton(this);
254 btn1->setText(QLatin1String("&Hello (also Ctrl+H)"));
255 btn1->setObjectName("Hello");
256 btn1->move(20, 20);
257
258 connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_H), btn1),
259 SIGNAL(activated()), btn1, SLOT(animateClick()));
260
261 MyButton *btn2 = new MyButton(this);
262 btn2->setText(QString::fromUtf16((const ushort *)L"&\u041f\u0440\u0438\u0432\u0435\u0442 (also Ctrl+\u041f)"));
263 btn2->setObjectName(QString::fromUtf16((const ushort *)L"\u041f\u0440\u0438\u0432\u0435\u0442"));
264 btn2->move(20, 60);
265
266 connect(new QShortcut(QKeySequence(Qt::CTRL + 0x041F), btn2),
267 SIGNAL(activated()), btn2, SLOT(animateClick()));
268
269// QComboBox *cb1 = new MyCombo(this);
270// cb1->addItem(QLatin1String("Test 1"));
271// cb1->addItem(QLatin1String("Test 2"));
272
273// QComboBox *cb2 = new MyCombo(this);
274// cb2->addItem(QLatin1String("Test 3"));
275// cb2->addItem(QLatin1String("Test 4"));
276
277 QVBoxLayout *mainLayout = new QVBoxLayout();
278 mainLayout->addWidget(btn1);
279 mainLayout->addWidget(btn2);
280// mainLayout->addWidget(cb1);
281// mainLayout->addWidget(cb2);
282
283 setLayout(mainLayout);
284#endif
285
286#if 0
287 QMenuBar *mb = new QMenuBar(this);
288
289 QMenu *menu = new QMenu(mb);
290 menu->setTitle ("Menu &1");
291 menu->addAction(QLatin1String("Action &1"));
292 menu->addAction(QLatin1String("Action &2"));
293 mb->addMenu(menu);
294
295 menu = new QMenu(mb);
296 menu->setTitle ("Menu &2");
297 menu->addAction(QLatin1String("Action &1"));
298 menu->addAction(QLatin1String("Action &2"));
299 mb->addMenu(menu);
300
301 menu = new QMenu(mb);
302 menu->setTitle ("Menu &3");
303 menu->addAction(QLatin1String("Action &1"));
304 menu->addAction(QLatin1String("Action &2"));
305 mb->addMenu(menu);
306#endif
307
308#if 0
309 new MyChild(this);
310#endif
311
312 };
313
314#if 0
315 void closeEvent(QCloseEvent *aE)
316 {
317 QMessageBox::warning(this, QLatin1String("Close"),
318 QLatin1String("Somebody asked us to terminate"));
319 aE->accept();
320 }
321#endif
322
323#if 0
324 void paintEvent(QPaintEvent *aE)
325 {
326 qDebug() << __FUNCTION__ <<": " << aE->rect();
327
328 QPainter p(this);
329#if 0
330 // simple QPainter test
331
332 p.setRenderHint(QPainter::Antialiasing);
333
334 p.fillRect(0, 0, 20, 20, mPressed % 2 ? Qt::red : Qt::green);
335
336 p.setPen(Qt::black);
337 p.drawEllipse(10, 10, 10, 10);
338
339 //p.setFont(QFont("Arial", 12));
340 p.drawText(10, 30, QLatin1String("ABC"));
341#endif
342#if 0
343 // simple QClipboard image test
344
345 const QMimeData *data = QApplication::clipboard()->mimeData();
346 if (data && data->hasImage()){
347 QImage img = qvariant_cast<QImage>(data->imageData());
348 p.drawImage(0, 0, img);
349 }
350#endif
351 }
352#endif
353
354#if 0
355 void resizeEvent(QResizeEvent *aE)
356 {
357 qDebug() << __FUNCTION__ << ": g" << geometry() << "fg" << frameGeometry()
358 << "sz" << aE->size() << "old" << aE->oldSize();
359 }
360
361 void moveEvent(QMoveEvent *aE)
362 {
363 qDebug() << __FUNCTION__ << ": g" << geometry() << "fg" << frameGeometry()
364 << "pos" << aE->pos() << "old" << aE->oldPos();
365 }
366#endif
367
368#if 0
369 void focusInEvent(QFocusEvent *aE)
370 {
371 qDebug() << qWidgetName(this) << __FUNCTION__ << ": reason" << aE->reason();
372 QWidget::focusInEvent(aE);
373 }
374
375 void focusOutEvent(QFocusEvent *aE)
376 {
377 qDebug() << qWidgetName(this) << __FUNCTION__ << ": reason" << aE->reason();
378 QWidget::focusOutEvent(aE);
379 }
380#endif
381
382#if 0
383 void changeEvent(QEvent *aE)
384 {
385 switch (aE->type()) {
386 case QEvent::WindowStateChange: {
387 QWindowStateChangeEvent *e2 = (QWindowStateChangeEvent *)aE;
388 qDebug().nospace() << __FUNCTION__ << ": QWindowStateChangeEvent(" <<
389 e2->oldState() << "->" << windowState() << ")";
390 break;
391 }
392 default:
393 break;
394 }
395 }
396#endif
397
398#if 0
399 void keyPressEvent(QKeyEvent *aE)
400 {
401 qDebug() << __FUNCTION__ << " : cnt" << aE->count()
402 << "rep" << aE->isAutoRepeat()
403 << QDbgStr(QString().sprintf("key %08X mods %08X", aE->key(), (int) aE->modifiers()))
404 << "text" << aE->text()
405 << QDbgStr(aE->text().isEmpty() ? QString() :
406 QString().sprintf("(%04X)", aE->text()[0].unicode()));
407 }
408
409 void keyReleaseEvent(QKeyEvent *aE)
410 {
411 qDebug() << __FUNCTION__ << ": cnt" << aE->count()
412 << "rep" << aE->isAutoRepeat()
413 << QDbgStr(QString().sprintf("key %08X mods %08X", aE->key(), (int) aE->modifiers()))
414 << "text" << aE->text()
415 << QDbgStr(aE->text().isEmpty() ? QString() :
416 QString().sprintf("(%04X)", aE->text()[0].unicode()));
417 }
418#endif
419
420#if 0
421 // QCursor shape test
422 void mousePressEvent(QMouseEvent *aE)
423 {
424 static int shape = 0;
425 if (aE->button() == Qt::LeftButton)
426 ++shape;
427 else
428 --shape;
429 shape = (Qt::LastCursor + 1 + shape) % (Qt::LastCursor + 1);
430 setCursor(QCursor((Qt::CursorShape)shape));
431 }
432#endif
433
434#if 0
435 void mousePressEvent(QMouseEvent *aE)
436 {
437 qDebug() << __FUNCTION__ << ": btn" << aE->button()
438 << QDbgStr(QString().sprintf("btns %08X mods %08X",
439 (int) aE->buttons(), (int) aE->modifiers()))
440 << "gpos" << aE->globalPos() << "pos" << aE->pos();
441
442 ++mPressed;
443 update();
444 }
445
446 void mouseReleaseEvent(QMouseEvent *aE)
447 {
448 qDebug() << __FUNCTION__ << ": btn" << aE->button()
449 << QDbgStr(QString().sprintf("btns %08X mods %08X",
450 (int) aE->buttons(), (int) aE->modifiers()))
451 << "gpos" << aE->globalPos() << "pos" << aE->pos();
452 }
453
454 void mouseMoveEvent(QMouseEvent *aE)
455 {
456 qDebug() << __FUNCTION__ << ": btn" << aE->button()
457 << QDbgStr(QString().sprintf("btns %08X mods %08X",
458 (int) aE->buttons(), (int) aE->modifiers()))
459 << "gpos" << aE->globalPos() << "pos" << aE->pos();
460 }
461#endif
462
463#if 0
464 virtual void enterEvent(QEvent *event)
465 {
466 qDebug() << __FUNCTION__ << ":";
467 }
468
469 virtual void leaveEvent(QEvent *event)
470 {
471 qDebug() << __FUNCTION__ << ":";
472 }
473#endif
474
475#if 0
476 void contextMenuEvent(QContextMenuEvent *aE)
477 {
478 QMenu menu;
479 menu.addAction(QLatin1String("Action &1"));
480 menu.addAction(QLatin1String("Action &2"));
481 menu.exec(aE->globalPos());
482 }
483#endif
484
485#if 0
486 void timerEvent(QTimerEvent *aE)
487 {
488 qDebug() << __FUNCTION__ << ": id" << aE->timerId();
489 }
490#endif
491
492 bool event(QEvent *aE)
493 {
494 switch (aE->type())
495 {
496#if 1
497 case QEvent::Enter:
498 qDebug() << this << "Enter";
499 break;
500 case QEvent::Leave:
501 qDebug() << this << "Leave";
502 break;
503 case QEvent::NonClientAreaMouseMove:
504 case QEvent::NonClientAreaMouseButtonPress:
505 case QEvent::NonClientAreaMouseButtonRelease:
506 case QEvent::NonClientAreaMouseButtonDblClick: {
507 QMouseEvent *me = static_cast<QMouseEvent*>(aE);
508 qDebug() << this << aE->type() << ": btn" << me->button()
509 << QDbgStr(QString().sprintf("btns %08X mods %08X",
510 (int) me->buttons(), (int) me->modifiers()))
511 << "gpos" << me->globalPos() << "pos" << me->pos();
512 break;
513 }
514#endif
515 default:
516 break;
517 }
518
519 return QWidget::event(aE);
520 }
521
522private:
523
524 int mPressed;
525};
526
527void testCodec(const char *title, const QString &sample, QTextCodec *codec)
528{
529 // test console output
530
531 printf("%s : Unicode (source) : ", title);
532 foreach (QChar ch, sample)
533 printf("%hX ", ch.unicode());
534 printf("\n");
535
536 QByteArray eightbit = codec->fromUnicode(sample);
537 printf("%s : 8-bit (as is) : %s\n", title, eightbit.data());
538
539 QString sample2 = codec->toUnicode(eightbit);
540 printf("%s : Unicode (result) : ", title);
541 foreach (QChar ch, sample2)
542 printf("%hX ", ch.unicode());
543 printf("\n");
544
545 if (sample != sample2)
546 qWarning() << "Source and resulting Unicode differ!";
547
548 qWarning() << "";
549
550 // test GUI output (both window title and window text)
551
552 QString combined = QString("%1 : %2").arg(QLatin1String(title), sample);
553 QMessageBox mbox;
554 mbox.setWindowTitle(combined);
555 mbox.setText(combined);
556 mbox.exec();
557}
558
559int main(int argc, char **argv)
560{
561#if 0
562 ////////////////////////////////////////////////////////////////////////////
563 // Text mode
564
565 QCoreApplication app(argc, argv);
566
567#if 0
568 //--------------------------------------------------------------------------
569 // QTextStream test
570
571 QFile file("widget.cpp");
572 file.open(QIODevice::ReadOnly);
573 QTextStream text(&file);
574 QString str = text.readAll();
575 file.close();
576 qWarning() << "Read" << str.length() << "chars from widget.cpp";
577#endif
578
579#if 0
580 //--------------------------------------------------------------------------
581 // absolute/relative path test
582 qWarning() << "1" << QDir(QLatin1String("C:\\OS2")).absoluteFilePath(QLatin1String("../aaa"));
583 qWarning() << "1" << QDir(QLatin1String("C:\\OS2")).absoluteFilePath(QLatin1String("aaa"));
584 qWarning() << "1" << QDir(QLatin1String("C:\\OS2")).absoluteFilePath(QLatin1String("/aaa"));
585 qWarning() << "1" << QDir(QLatin1String("C:\\OS2")).absoluteFilePath(QLatin1String("\\aaa"));
586 qWarning() << "1" << QDir(QLatin1String("C:\\OS2")).absoluteFilePath(QLatin1String("D:\\aaa"));
587 qWarning() << "1" << QDir(QLatin1String("C:\\OS2")).absoluteFilePath(QLatin1String("D:aaa"));
588
589 qWarning() << "2" << QDir(QLatin1String(".")).absoluteFilePath(QLatin1String("../aaa"));
590 qWarning() << "2" << QDir(QLatin1String(".")).absoluteFilePath(QLatin1String("aaa"));
591 qWarning() << "2" << QDir(QLatin1String(".")).absoluteFilePath(QLatin1String("/aaa"));
592 qWarning() << "2" << QDir(QLatin1String(".")).absoluteFilePath(QLatin1String("\\aaa"));
593 qWarning() << "2" << QDir(QLatin1String(".")).absoluteFilePath(QLatin1String("D:\\aaa"));
594 qWarning() << "2" << QDir(QLatin1String(".")).absoluteFilePath(QLatin1String("D:aaa"));
595
596 qWarning() << "3" << QDir(QLatin1String("D:bbb")).absoluteFilePath(QLatin1String("../aaa"));
597 qWarning() << "3" << QDir(QLatin1String("D:bbb")).absoluteFilePath(QLatin1String("aaa"));
598 qWarning() << "3" << QDir(QLatin1String("D:bbb")).absoluteFilePath(QLatin1String("/aaa"));
599 qWarning() << "3" << QDir(QLatin1String("D:bbb")).absoluteFilePath(QLatin1String("\\aaa"));
600 qWarning() << "3" << QDir(QLatin1String("D:bbb")).absoluteFilePath(QLatin1String("D:\\aaa"));
601 qWarning() << "3" << QDir(QLatin1String("D:bbb")).absoluteFilePath(QLatin1String("D:aaa"));
602
603 qWarning() << "4" << QDir(QLatin1String("E:bbb")).absoluteFilePath(QLatin1String("D:aaa"));
604 qWarning() << "4" << QDir(QLatin1String("E:bbb")).absoluteFilePath(QLatin1String("bbb"));
605 qWarning() << "4" << QDir(QLatin1String("C:bbb")).absoluteFilePath(QLatin1String("bbb"));
606#endif
607
608#if 0
609 //--------------------------------------------------------------------------
610 // QDir::mkdir/mkpath test
611 PRINT_EXPR(QDir().mkdir("some_dir"));
612 PRINT_EXPR(QFile::exists("some_dir"));
613 PRINT_EXPR(QDir().rmdir("some_dir"));
614
615 PRINT_EXPR(QDir().mkdir("some_dir/subdir"));
616 PRINT_EXPR(QFile::exists("some_dir/subdir"));
617 PRINT_EXPR(QDir().rmdir("some_dir/subdir"));
618
619 PRINT_EXPR(QDir().mkpath("some_dir/subdir"));
620 PRINT_EXPR(QFile::exists("some_dir/subdir"));
621 PRINT_EXPR(QDir().rmpath("some_dir/subdir"));
622
623 PRINT_EXPR(QDir("C:/").mkpath("some_dir/subdir"));
624 PRINT_EXPR(QFile::exists("C:/some_dir/subdir"));
625 PRINT_EXPR(QDir("C:/").rmpath("some_dir/subdir"));
626
627 PRINT_EXPR(QDir("C:/").mkdir("/aaa"));
628 PRINT_EXPR(QFile::exists("C:/aaa"));
629 PRINT_EXPR(QDir("C:/").rmdir("/aaa"));
630#endif
631
632#if 0
633 //--------------------------------------------------------------------------
634 // QLibraryInfo test
635 qWarning() << "QLibraryInfo::buildKey :" << QLibraryInfo::buildKey();
636 qWarning() << "QLibraryInfo::licensedProducts :" << QLibraryInfo::licensedProducts();
637 qWarning() << "QLibraryInfo::licensee :" << QLibraryInfo::licensee();
638 #define PRINT_LOC(L) qWarning() << #L << ":" << QLibraryInfo::location(L)
639 PRINT_LOC(QLibraryInfo::PrefixPath);
640 PRINT_LOC(QLibraryInfo::DocumentationPath);
641 PRINT_LOC(QLibraryInfo::HeadersPath);
642 PRINT_LOC(QLibraryInfo::LibrariesPath);
643 PRINT_LOC(QLibraryInfo::BinariesPath);
644 PRINT_LOC(QLibraryInfo::PluginsPath);
645 PRINT_LOC(QLibraryInfo::DataPath);
646 PRINT_LOC(QLibraryInfo::TranslationsPath);
647 PRINT_LOC(QLibraryInfo::SettingsPath);
648 PRINT_LOC(QLibraryInfo::DemosPath);
649 PRINT_LOC(QLibraryInfo::ExamplesPath);
650 #undef PRINT_LOC
651#endif
652
653#if 0
654 //--------------------------------------------------------------------------
655 // QSettings test
656
657 QSettings sysOrgSet(QSettings::IniFormat, QSettings::SystemScope,
658 QLatin1String("MySoft"));
659 QSettings sysAppSet(QSettings::IniFormat, QSettings::SystemScope,
660 QLatin1String("MySoft"), QLatin1String("MyApp"));
661 QSettings userOrgSet(QSettings::IniFormat, QSettings::UserScope,
662 QLatin1String("MySoft"));
663 QSettings userAppSet(QSettings::IniFormat, QSettings::UserScope,
664 QLatin1String("MySoft"), QLatin1String("MyApp"));
665
666 QList<QSettings *> sets;
667 sets << &sysOrgSet << &sysAppSet << &userOrgSet << &userAppSet;
668
669 foreach (QSettings *set, sets) {
670 set->setValue("Time", QDateTime::currentDateTime());
671 }
672
673 qWarning() << "Modified Time key in MySoft/MyApp (system & user)";
674#endif
675
676#else
677 ////////////////////////////////////////////////////////////////////////////
678 // GUI
679
680 QApplication app(argc, argv);
681 app.setQuitOnLastWindowClosed(true);
682
683#if 0
684 //--------------------------------------------------------------------------
685 // locale test
686
687 QLocale locale = QLocale::system();
688
689 qWarning() << "Library paths :" << QApplication::libraryPaths();
690 qWarning() << "";
691 qWarning() << "Available codecs :\n" << QTextCodec::availableCodecs();
692 qWarning() << "";
693 qWarning() << "Codec for locale :" << QTextCodec::codecForLocale()->name();
694 qWarning() << " Aliases :" << QTextCodec::codecForLocale()->aliases();
695 qWarning() << "";
696 qWarning() << "Country for locale :" << QLocale::countryToString(locale.country())
697 << "[" << locale.country() << "]";
698 qWarning() << "Language for locale :" << QLocale::languageToString(locale.language())
699 << "[" << locale.language() << "]";
700 qWarning() << "";
701
702 testCodec("First 3 months",
703 QString("%1, %2, %3").arg(locale.standaloneMonthName(1),
704 locale.standaloneMonthName(2),
705 locale.standaloneMonthName(3)),
706 QTextCodec::codecForLocale());
707 return 0;
708#endif
709
710#if 1
711 QRect r = QApplication::desktop()->availableGeometry();
712 MyWidget widget;
713 widget.resize(100, 100);
714 widget.move(r.width() - 200, r.height() - 200);
715
716 widget.show();
717#endif
718
719#if 0
720 //--------------------------------------------------------------------------
721 // QDesktopServices test
722 {
723 for (int i = 0; i <= 10; ++i) {
724 qWarning() << "StandardLocation" << i
725 << QDesktopServices::
726 storageLocation((QDesktopServices::StandardLocation)i);
727 }
728
729 PRINT_EXPR(QDesktopServices::openUrl(QUrl::fromLocalFile(QDir::currentPath())));
730 PRINT_EXPR(QDesktopServices::openUrl(QUrl("file:///C:/OS2/BITMAP/OCEAN.BMP")));
731 PRINT_EXPR(QDesktopServices::openUrl(QUrl("mailto:user@example.com")));
732 PRINT_EXPR(QDesktopServices::openUrl(QUrl("http://www.ru")));
733 }
734#endif
735
736#if 0
737 //--------------------------------------------------------------------------
738 // QFontDialog test
739 {
740 QFontDialog fntDlg;
741 fntDlg.exec();
742
743 {
744 QFont font("MyCoolFont");
745 QFontInfo info(font);
746 qDebug() << info.family();
747 }
748 {
749 QFont font("MyCoolFont2");
750 QFontInfo info(font);
751 qDebug() << info.family();
752 }
753 }
754#endif
755
756#if 0
757 //--------------------------------------------------------------------------
758 // QFileDialog test
759 {
760 QFileDialog dlg;
761
762 dlg.setFileMode(QFileDialog::ExistingFile);
763 //dlg.setFilter(QDir::Dirs | QDir::Files | QDir::Drives);
764 dlg.setNameFilter("*.exe");
765 dlg.selectFile("mplayer.exe");
766 dlg.exec();
767
768 //PRINT_EXPR(QFileDialog::getOpenFileName());
769 }
770#endif
771
772#if 0
773 QSound snd2("C:/MMOS2/SOUNDS/DESKTOP/dsk_shut.wav");
774 snd2.setLoops(2);
775 snd2.play();
776
777 QSound snd1("C:/MMOS2/SOUNDS/DESKTOP/dsk_strt.wav");
778 snd1.setLoops(3);
779 snd1.play();
780#endif
781
782#if 0
783 widget.startTimer(1000);
784 widget.startTimer(2000);
785 widget.startTimer(4000);
786#endif
787
788#if 0
789 qDebug() << "------------- before min" << widget.geometry() << widget.frameGeometry();
790 widget.showMinimized();
791 qDebug() << "------------- after min" << widget.geometry() << widget.frameGeometry();
792 widget.move(100, 100);
793 qDebug() << "------------- after move" << widget.geometry() << widget.frameGeometry();
794 widget.showNormal();
795 qDebug() << "------------- after norm" << widget.geometry() << widget.frameGeometry();
796 widget.showFullScreen();
797 qDebug() << "------------- after full" << widget.geometry() << widget.frameGeometry();
798#endif
799
800 if (!app.topLevelWidgets().isEmpty())
801 return app.exec();
802
803 return 0;
804#endif
805}
806
807#include "widget.moc"
Note: See TracBrowser for help on using the repository browser.