- Timestamp:
- Feb 25, 2010, 9:48:46 PM (15 years ago)
- Location:
- trunk/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/defaults.h
r93 r94 69 69 #define DEF_SCROLL_TO_END true 70 70 /*! 71 * \def DEF_FON _FAMILY71 * \def DEF_FONT_FAMILY 72 72 * \brief Default font name. 73 73 */ -
trunk/src/main.cpp
r93 r94 54 54 55 55 QTranslator en; 56 if (en.load(" en", PATH_I18N))56 if (en.load("tspsg_en", PATH_I18N)) 57 57 app.installTranslator(&en); 58 58 -
trunk/src/mainwindow.cpp
r93 r94 35 35 { 36 36 settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, "TSPSG", "tspsg", this); 37 37 38 loadLanguage(); 38 39 setupUi(); … … 44 45 #endif // QT_NO_PRINTER 45 46 47 #ifdef Q_OS_WINCE 48 currentGeometry = QApplication::desktop()->availableGeometry(0); 49 // We need to react to SIP show/hide and resize the window appropriately 50 connect(QApplication::desktop(), SIGNAL(workAreaResized(int)), SLOT(desktopResized(int))); 51 #endif // Q_OS_WINCE 46 52 connect(actionFileNew,SIGNAL(triggered()),this,SLOT(actionFileNewTriggered())); 47 53 connect(actionFileOpen,SIGNAL(triggered()),this,SLOT(actionFileOpenTriggered())); … … 78 84 } 79 85 #else 80 setWindowState( windowState() |Qt::WindowMaximized);86 setWindowState(Qt::WindowMaximized); 81 87 #endif // Q_OS_WINCE 82 88 … … 268 274 if (checked) { 269 275 settings->remove("Language"); 270 QMessageBox (QMessageBox::Information,tr("Language change"),tr("Language will be autodetected on next application start."),QMessageBox::Ok,this).exec();276 QMessageBox::information(this, tr("Language change"), tr("Language will be autodetected on next application start.")); 271 277 } else 272 settings->setValue("Language", groupSettingsLanguageList->checkedAction()->data().toString());278 settings->setValue("Language", groupSettingsLanguageList->checkedAction()->data().toString()); 273 279 } 274 280 … … 493 499 } 494 500 501 #ifdef Q_OS_WINCE 502 void MainWindow::desktopResized(int screen) 503 { 504 if (screen != 0) 505 return; 506 507 QRect availableGeometry = QApplication::desktop()->availableGeometry(0); 508 if (currentGeometry != availableGeometry) { 509 /*! 510 * \hack HACK: This hack checks whether \link QDesktopWidget::availableGeometry() availableGeometry()\endlink's \c top + \c hegiht = \link QDesktopWidget::screenGeometry() screenGeometry()\endlink's \c height. 511 * If \c true, the window gets maximized. If we used \c setGeometry() in this case, the bottom of the 512 * window would end up being behind the soft buttons. Is this a bug in Qt or Windows Mobile? 513 */ 514 if ((availableGeometry.top() + availableGeometry.height()) == QApplication::desktop()->screenGeometry().height()) { 515 setWindowState(windowState() | Qt::WindowMaximized); 516 } else { 517 if (windowState() & Qt::WindowMaximized) 518 setWindowState(windowState() ^ Qt::WindowMaximized); 519 setGeometry(availableGeometry); 520 } 521 } 522 currentGeometry = availableGeometry; 523 } 524 #endif // Q_OS_WINCE 525 495 526 void MainWindow::numCitiesChanged(int nCities) 496 527 { … … 555 586 void MainWindow::loadLangList() 556 587 { 557 QSettings langinfo(PATH_I18N"/languages.ini", QSettings::IniFormat); 558 #if QT_VERSION >= 0x040500 559 // In Qt < 4.5 QSettings doesn't have method setIniCodec. 560 langinfo.setIniCodec("UTF-8"); 561 #endif 562 QDir dir(PATH_I18N, "*.qm", QDir::Name | QDir::IgnoreCase, QDir::Files); 588 QDir dir(PATH_I18N, "tspsg_*.qm", QDir::Name | QDir::IgnoreCase, QDir::Files); 563 589 if (!dir.exists()) 564 590 return; … … 567 593 return; 568 594 QAction *a; 595 QTranslator t; 596 QString name; 569 597 for (int k = 0; k < langs.size(); k++) { 570 598 QFileInfo lang = langs.at(k); 571 if (!lang.completeBaseName().startsWith("qt_") && lang.completeBaseName().compare("en")) { 572 #if QT_VERSION >= 0x040500 573 a = menuSettingsLanguage->addAction(langinfo.value(lang.completeBaseName() + "/NativeName", lang.completeBaseName()).toString()); 574 #else 575 // We use Name if Qt < 4.5 because NativeName is in UTF-8, QSettings 576 // reads .ini file as ASCII and there is no way to set file encoding. 577 a = menuSettingsLanguage->addAction(langinfo.value(lang.completeBaseName() + "/Name", lang.completeBaseName()).toString()); 578 #endif 579 a->setData(lang.completeBaseName()); 599 if (lang.completeBaseName().compare("tspsg_en", Qt::CaseInsensitive) && t.load(lang.completeBaseName(), PATH_I18N)) { 600 name = t.translate("--------", "LANGNAME", "Please, provide a native name of your translation language here."); 601 a = menuSettingsLanguage->addAction(name); 602 a->setStatusTip(QString("Set application language to %1").arg(name)); 603 a->setData(lang.completeBaseName().mid(6)); 580 604 a->setCheckable(true); 581 605 a->setActionGroup(groupSettingsLanguageList); 582 if (settings->value("Language", QLocale::system().name()).toString().startsWith(lang.completeBaseName() ))606 if (settings->value("Language", QLocale::system().name()).toString().startsWith(lang.completeBaseName().mid(6))) 583 607 a->setChecked(true); 584 608 } … … 628 652 // Now let's load application translation. 629 653 translator = new QTranslator(this); 630 if (translator->load( lng, PATH_I18N))654 if (translator->load("tspsg_" + lng, PATH_I18N)) 631 655 qApp->installTranslator(translator); 632 656 else { 633 657 delete translator; 634 658 translator = NULL; 635 if (!ad) 636 QMessageBox::warning(this, tr("Language Change"), tr("Unable to load translation language.")); 659 if (!ad) { 660 settings->remove("Language"); 661 if (QApplication::overrideCursor() != 0) 662 QApplication::restoreOverrideCursor(); 663 if (isVisible()) 664 QMessageBox::warning(this, tr("Language Change"), tr("Unable to load the translation language.\nFalling back to autodetection.")); 665 else 666 QMessageBox::warning(NULL, tr("Language Change"), tr("Unable to load the translation language.\nFalling back to autodetection.")); 667 } 637 668 return false; 638 669 } … … 705 736 Ui::MainWindow::retranslateUi(this); 706 737 738 actionSettingsLanguageEnglish->setStatusTip(tr("Set application language to %1").arg("English")); 739 707 740 #ifndef QT_NO_PRINTER 708 741 actionFilePrintPreview->setText(QApplication::translate("MainWindow", "P&rint Preview...", 0, QApplication::UnicodeUTF8)); … … 769 802 #ifdef Q_OS_WINCE 770 803 menuBar()->setDefaultAction(menuFile->menuAction()); 804 805 QScrollArea *scrollArea = new QScrollArea(this); 806 scrollArea->setFrameShape(QFrame::NoFrame); 807 scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 808 scrollArea->setWidgetResizable(true); 809 scrollArea->setWidget(tabWidget); 810 setCentralWidget(scrollArea); 771 811 #endif // Q_OS_WINCE 772 812 … … 804 844 actionSettingsLanguageEnglish->setActionGroup(groupSettingsLanguageList); 805 845 loadLangList(); 806 actionSettingsLanguageAutodetect->setChecked(settings->value("Language", "").toString().isEmpty());846 actionSettingsLanguageAutodetect->setChecked(settings->value("Language", "").toString().isEmpty()); 807 847 808 848 spinCities->setMaximum(MAX_NUM_CITIES); -
trunk/src/mainwindow.h
r92 r94 71 71 void dataChanged(); 72 72 void dataChanged(const QModelIndex &tl, const QModelIndex &br); 73 #ifdef Q_OS_WINCE 74 void desktopResized(int screen); 75 #endif // Q_OS_WINCE 73 76 void numCitiesChanged(int nCities); 74 77 #ifndef QT_NO_PRINTER … … 88 91 QSettings *settings; 89 92 CTSPModel *tspmodel; 93 #ifdef Q_OS_WINCE 94 QRect currentGeometry; 95 #endif // Q_OS_WINCE 90 96 91 97 void closeEvent(QCloseEvent *ev); -
trunk/src/settingsdialog.cpp
r93 r94 43 43 44 44 #if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN) 45 // Layout helper elements 46 QVBoxLayout *vbox1; 47 QHBoxLayout *hbox1; 45 QVBoxLayout *vbox1; // Layout helper 46 47 #ifdef Q_OS_WINCE 48 // On screens with small height when SIP is shown and the window is resized 49 // there is not enought space for all elements. 50 // So we show scrollbars to be able to access them. 51 QScrollArea *scrollArea = new QScrollArea(this); 52 scrollArea->setFrameShape(QFrame::NoFrame); 53 scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 54 scrollArea->setWidgetResizable(true); 55 scrollArea->setWidget(bgWhite); 56 #endif // Q_OS_WINCE 48 57 49 58 bgWhite->layout()->setMargin(0); 50 51 // Bottom part (with grey bg)52 hbox1 = new QHBoxLayout(bgGrey);53 hbox1->setMargin(6);54 hbox1->setSpacing(6);55 hbox1->addWidget(buttonHelp);56 hbox1->addStretch();57 59 58 60 // Central layout … … 60 62 vbox1->setMargin(0); 61 63 vbox1->setSpacing(0); 64 #ifdef Q_OS_WINCE 65 vbox1->addWidget(scrollArea); 66 #else 62 67 vbox1->addWidget(bgWhite); 63 vbox1->addWidget(lineHorizontal); 68 #endif // Q_OS_WINCE 64 69 vbox1->addWidget(bgGrey); 70 setLayout(vbox1); 65 71 #else 66 72 // Layout helper elements 67 73 QVBoxLayout *vbox1, *vbox2; 68 QHBoxLayout *hbox1 , *hbox2;74 QHBoxLayout *hbox1; 69 75 70 76 if (QtWin::isCompositionEnabled()) { … … 89 95 imgIcon->setObjectName("imgIcon"); 90 96 imgIcon->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); 91 imgIcon->setFrameShape(QFrame::Panel); 92 imgIcon->setLineWidth(0); 97 imgIcon->setFrameShape(QFrame::NoFrame); 93 98 imgIcon->setPixmap(QPixmap(":/images/icons/preferences_system.png")); 94 99 imgIcon->setStyleSheet("background-color: #0080C0; padding-top: 11px;"); … … 128 133 #endif // Q_OS_WIN32 129 134 130 // Bottom part (with grey bg) 131 hbox2 = new QHBoxLayout(bgGrey); 132 hbox2->setMargin(6); 133 hbox2->setSpacing(6); 134 hbox2->addWidget(buttonHelp); 135 hbox2->addWidget(labelHint); 136 hbox2->addWidget(buttonBox); 135 // Inserting label for hints to the bottom part (with grey bg) 136 buttons->insertWidget(buttons->indexOf(buttonHelp) + 1, labelHint, 1); 137 137 138 138 // Central layout … … 141 141 vbox2->setSpacing(0); 142 142 vbox2->addLayout(hbox1); 143 vbox2->addWidget(lineHorizontal);144 143 vbox2->addWidget(bgGrey); 145 #endif // Q_OS_WINCE 146 144 setLayout(vbox2); 145 #endif // Q_OS_WINCE 146 147 #ifdef Q_OS_WINCE 148 currentGeometry = QApplication::desktop()->availableGeometry(0); 149 // We need to react to SIP show/hide and resize the window appropriately 150 connect(QApplication::desktop(), SIGNAL(workAreaResized(int)), SLOT(desktopResized(int))); 151 #endif // Q_OS_WINCE 147 152 connect(spinRandMin,SIGNAL(valueChanged(int)),this,SLOT(spinRandMinValueChanged(int))); 148 153 connect(buttonFont,SIGNAL(clicked()),this,SLOT(buttonFontClicked())); … … 211 216 212 217 /*! 213 * 218 * \brief Indicates whether and how the translucency setting was changed 219 * \retval -1 the translucency was \em disabled. 220 * \retval 0 the translucency was <em>not changed</em>. 221 * \retval 1 the translucency was \em enabled. 214 222 */ 215 223 qint8 SettingsDialog::translucencyChanged() const … … 277 285 } 278 286 287 #ifdef Q_OS_WINCE 288 void SettingsDialog::desktopResized(int screen) 289 { 290 if (screen != 0) 291 return; 292 293 QRect availableGeometry = QApplication::desktop()->availableGeometry(0); 294 if (currentGeometry != availableGeometry) { 295 /*! 296 * \hack HACK: This hack checks whether \link QDesktopWidget::availableGeometry() availableGeometry()\endlink's \c top + \c hegiht = \link QDesktopWidget::screenGeometry() screenGeometry()\endlink's \c height. 297 * If \c true, the window gets maximized. If we used \c setGeometry() in this case, the bottom of the 298 * window would end up being behind the soft buttons. Is this a bug in Qt or Windows Mobile? 299 */ 300 if ((availableGeometry.top() + availableGeometry.height()) == QApplication::desktop()->screenGeometry().height()) { 301 setWindowState(windowState() | Qt::WindowMaximized); 302 } else { 303 if (windowState() & Qt::WindowMaximized) 304 setWindowState(windowState() ^ Qt::WindowMaximized); 305 setGeometry(availableGeometry); 306 } 307 } 308 currentGeometry = availableGeometry; 309 } 310 #endif // Q_OS_WINCE 311 279 312 void SettingsDialog::spinRandMinValueChanged(int val) { 280 313 spinRandMax->setMinimum(val); -
trunk/src/settingsdialog.h
r93 r94 59 59 QCheckBox *cbUseTranslucency; 60 60 #endif // Q_OS_WIN32 61 #if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN) 61 #ifdef Q_OS_WINCE 62 QRect currentGeometry; 63 #elif !defined(Q_OS_SYMBIAN) 62 64 QCheckBox *cbSaveState; 63 65 QLabel *imgIcon; … … 66 68 67 69 bool event(QEvent *ev); 68 #endif 70 #endif // Q_OS_WINCE 69 71 70 72 private slots: … … 72 74 void buttonColorClicked(); 73 75 void buttonFontClicked(); 76 #ifdef Q_OS_WINCE 77 void desktopResized(int screen); 78 #endif // Q_OS_WINCE 74 79 void spinRandMinValueChanged(int val); 75 80 };
Note: See TracChangeset
for help on using the changeset viewer.