Changeset 2022 in vbox
- Timestamp:
- Apr 11, 2007 7:25:07 AM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 20314
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/include/VBoxGlobal.h
r1922 r2022 375 375 bool openURL (const QString &aURL); 376 376 377 static const QString& languageID(); 378 static void loadLanguage (const QString &aLangId = QString::null); 379 static bool loadLanguageFile (const QString &); 380 377 381 QString languageName() const; 378 382 QString languageCountry() const; … … 506 510 507 511 QString verString; 512 513 static QString mLoadedLangId; 508 514 509 515 QValueVector <CGuestOSType> vm_os_types; -
trunk/src/VBox/Frontends/VirtualBox/include/VMGlobalSettings.h
r1557 r2022 44 44 bool autoCapture; 45 45 QString guiFeatures; 46 QString languageId; 46 47 47 48 friend class VMGlobalSettings; … … 56 57 Q_PROPERTY (bool autoCapture READ autoCapture WRITE setAutoCapture) 57 58 Q_PROPERTY (QString guiFeatures READ guiFeatures WRITE setGuiFeatures) 59 Q_PROPERTY (QString languageId READ languageId WRITE setLanguageId) 58 60 59 61 public: … … 85 87 } 86 88 bool isFeatureActive (const char*) const; 89 90 QString languageId() const { return data()->languageId; } 91 void setLanguageId (const QString &aLanguageId) 92 { 93 mData()->languageId = aLanguageId; 94 } 87 95 88 96 // -
trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp
r1925 r2022 424 424 #endif /* Q_WS_WIN */ 425 425 426 // Helpers for VBoxGlobal::loadLanguage() 427 ///////////////////////////////////////////////////////////////////////////// 428 429 extern const QString transFileName = "VirtualBox_"; 430 extern const QString langIdRegExp = "(([a-z]{2})(_([A-Z]{2}))?)"; 431 extern const QString builtInName = "built_in"; 432 static const QString transFileExt = ".qm"; 433 class VBoxTranslator : public QTranslator 434 { 435 public: 436 437 VBoxTranslator (QObject *aParent = 0) 438 : QTranslator (aParent, "VBoxTranslatorObject") {} 439 440 bool loadFile (const QString &aFileName) 441 { 442 QFile file (aFileName); 443 if (!file.open (IO_ReadOnly)) 444 return false; 445 mData = file.readAll(); 446 return load ((uchar*)mData.data(), mData.size()); 447 } 448 449 private: 450 451 QByteArray mData; 452 }; 453 static VBoxTranslator *mTranslator = 0; 426 454 427 455 // VBoxGlobal … … 1603 1631 1604 1632 /** 1633 * This variable used for storing loaded language id. 1634 */ 1635 /* static */ 1636 QString VBoxGlobal::mLoadedLangId = builtInName; 1637 1638 /** 1639 * This method returns loaded language id. 1640 */ 1641 /* static */ 1642 const QString& VBoxGlobal::languageID() 1643 { 1644 return mLoadedLangId; 1645 } 1646 1647 /** 1648 * This method is used to load language by language id. 1649 */ 1650 /* static */ 1651 void VBoxGlobal::loadLanguage (const QString &aLang) 1652 { 1653 const QString &langId = aLang.isNull() ? 1654 VBoxGlobal::systemLanguageID() : aLang; 1655 QString languageFileName = QString::null; 1656 QString selectedLangId = builtInName; 1657 1658 if (aLang != builtInName) 1659 { 1660 QRegExp regExp (langIdRegExp); 1661 int rule = regExp.search (langId); 1662 /* this rule should match the language id completely */ 1663 Assert (!rule); 1664 if (rule == -1) return; 1665 1666 QString mId1part = regExp.cap (2); 1667 QString mId2part = regExp.cap (4); 1668 /* language localization (second part) should not be empty? */ 1669 // Assert (!mId2part.isEmpty()); 1670 1671 QString nlsPath = qApp->applicationDirPath() + "/nls"; 1672 QDir nlsDir (nlsPath); 1673 if (nlsDir.exists (transFileName + langId + transFileExt)) 1674 { 1675 languageFileName = nlsDir.absFilePath (transFileName + langId + transFileExt); 1676 selectedLangId = langId; 1677 } 1678 else if (nlsDir.exists (transFileName + mId1part + transFileExt)) 1679 { 1680 languageFileName = nlsDir.absFilePath (transFileName + mId1part + transFileExt); 1681 selectedLangId = mId1part; 1682 } 1683 1684 if (mTranslator && languageFileName.isNull()) 1685 { 1686 /* process downgrade situation */ 1687 int loadLanguageQuest = vboxProblem().message ( 1688 0, VBoxProblemReporter::Question, 1689 tr ("<p>Correct *.qm language file for language with " 1690 "<b>%1</b> id could not be found in the " 1691 "%2 location.</p> Do you want to use built-in language " 1692 "instead of it?</p>").arg (langId).arg (nlsPath), 1693 0, /* autoConfirmId */ 1694 QIMessageBox::Ok | QIMessageBox::Default, 1695 QIMessageBox::Cancel | QIMessageBox::Escape); 1696 if (loadLanguageQuest == QIMessageBox::Cancel) 1697 return; 1698 } 1699 } 1700 1701 if (loadLanguageFile (languageFileName)) 1702 { 1703 mLoadedLangId = selectedLangId; 1704 } 1705 else 1706 { 1707 /* passed file is not loaded */ 1708 vboxProblem().message ( 1709 0, VBoxProblemReporter::Warning, 1710 tr ("<p>Language file <b>%1</b> could not be loaded. This " 1711 "issue could be caused by incorrect file content.</p>") 1712 .arg (languageFileName), 1713 0, /* autoConfirmId */ 1714 QIMessageBox::Ok | QIMessageBox::Default); 1715 } 1716 } 1717 1718 /** 1719 * This method is used to load language file into translator 1720 * and install loaded translator. 1721 */ 1722 /* static */ 1723 bool VBoxGlobal::loadLanguageFile (const QString &aFileName) 1724 { 1725 if (mTranslator) 1726 qApp->removeTranslator (mTranslator); 1727 delete mTranslator; 1728 mTranslator = new VBoxTranslator(); 1729 bool status = true; 1730 if (!aFileName.isNull()) 1731 status = mTranslator->loadFile (aFileName); 1732 qApp->installTranslator (mTranslator); 1733 return status; 1734 } 1735 1736 /** 1605 1737 * Native language name of the currently installed translation. 1606 1738 * Returns "English [built-in]" if no translation is installed … … 2719 2851 } 2720 2852 2853 /* Load predefined language */ 2854 const QString &languageId = gset.languageId(); 2855 if (!languageId.isNull()) 2856 loadLanguage (languageId); 2857 2721 2858 // process command line 2722 2859 -
trunk/src/VBox/Frontends/VirtualBox/src/VBoxSelectorWnd.cpp
r1757 r2022 319 319 { 320 320 mBtnEdit->setTextLabel (tr ("Edit")); 321 mBtnEdit->setAccel ( QString("Ctrl+E"));321 mBtnEdit->setAccel (tr ("Ctrl+E")); 322 322 QToolTip::add (mBtnEdit, tr ("Edit (Ctrl+E)")); 323 mBtnEdit->adjustSize(); 324 mBtnEdit->updateGeometry(); 323 325 } 324 326 … … 973 975 break; 974 976 } 977 case QEvent::LanguageChange: 978 { 979 languageChange(); 980 break; 981 } 975 982 976 983 default: … … 996 1003 #endif 997 1004 1005 vboxGlobal().languageChange(); 1006 998 1007 vmTabWidget->changeTab (vmDetailsView, tr ("&Details")); 999 1008 /* note: Snapshots and Details tabs are changed dynamically by … … 1027 1036 vmDeleteAction->setMenuText (tr ("&Delete")); 1028 1037 vmDeleteAction->setText (tr ("Delete")); 1029 vmDeleteAction->setAccel ( QString::null);1038 vmDeleteAction->setAccel (QString::null); 1030 1039 vmDeleteAction->setStatusTip (tr ("Delete the selected virtual machine")); 1031 1040 … … 1102 1111 vmDetailsView->setDetailsText ( 1103 1112 vboxGlobal().detailsReport (m, false /* isNewVM */, 1104 1113 modifyEnabled /* withLinks */)); 1105 1114 } 1106 1115 if (aRefreshSnapshots) -
trunk/src/VBox/Frontends/VirtualBox/src/VMGlobalSettings.cpp
r1557 r2022 56 56 autoCapture = true; 57 57 guiFeatures = QString::null; 58 languageId = QString::null; 58 59 } 59 60 … … 62 63 autoCapture = that.autoCapture; 63 64 guiFeatures = that.guiFeatures; 65 languageId = that.languageId; 64 66 } 65 67 … … 73 75 hostkey == that.hostkey && 74 76 autoCapture == that.autoCapture && 75 guiFeatures == that.guiFeatures 77 guiFeatures == that.guiFeatures && 78 languageId == that.languageId 76 79 ); 77 80 } … … 94 97 { "GUI/Input/AutoCapture", "autoCapture", "true|false" }, 95 98 { "GUI/Customizations", "guiFeatures", "\\S+" }, 99 { "GUI/LanguageID", "languageId", "([a-z]{2,5}(_[a-zA-Z]{2})?)?" }, 96 100 }; 97 101 -
trunk/src/VBox/Frontends/VirtualBox/src/main.cpp
r1922 r2022 161 161 162 162 /* load a translation based on the current locale */ 163 QTranslator translator; 164 QString lang = VBoxGlobal::systemLanguageID(); 165 QString nlsPath = a.applicationDirPath() + "/nls"; 166 LogFlowFunc (("lang=%S, nlsPath=\"%S\"\n", 167 lang.local8Bit().data(), nlsPath.local8Bit().data())); 168 translator.load (QString ("VirtualBox_%1").arg (lang), nlsPath); 169 a.installTranslator (&translator); 163 VBoxGlobal::loadLanguage(); 170 164 171 165 int rc = 1; -
trunk/src/VBox/Frontends/VirtualBox/ui/VBoxGlobalSettingsDlg.ui
r1889 r2022 32 32 </property> 33 33 <property name="caption"> 34 <string>V BoxGlobalSettingsDlg</string>34 <string>VirtualBox Global Settings</string> 35 35 </property> 36 36 <property name="sizeGripEnabled"> … … 139 139 <property name="pixmap"> 140 140 <pixmap>usb_16px.png</pixmap> 141 </property> 142 <property name="pixmap"> 143 <pixmap></pixmap> 144 </property> 145 <property name="pixmap"> 146 <pixmap></pixmap> 147 </property> 148 </item> 149 <item> 150 <property name="text"> 151 <string> Language </string> 152 </property> 153 <property name="text"> 154 <string>3</string> 155 </property> 156 <property name="text"> 157 <string>#language</string> 158 </property> 159 <property name="pixmap"> 160 <pixmap>site_16px.png</pixmap> 141 161 </property> 142 162 <property name="pixmap"> … … 734 754 </vbox> 735 755 </widget> 756 <widget class="QWidget"> 757 <property name="name"> 758 <cstring>pageLanguage</cstring> 759 </property> 760 <attribute name="id"> 761 <number>3</number> 762 </attribute> 763 <vbox> 764 <property name="name"> 765 <cstring>unnamed</cstring> 766 </property> 767 <property name="margin"> 768 <number>0</number> 769 </property> 770 <property name="spacing"> 771 <number>0</number> 772 </property> 773 <widget class="QGroupBox"> 774 <property name="name"> 775 <cstring>gbInterface</cstring> 776 </property> 777 <property name="title"> 778 <string>&Interface Language</string> 779 </property> 780 <hbox> 781 <property name="name"> 782 <cstring>unnamed</cstring> 783 </property> 784 <widget class="QListView"> 785 <column> 786 <property name="text"> 787 <string>Language</string> 788 </property> 789 <property name="clickable"> 790 <bool>false</bool> 791 </property> 792 <property name="resizable"> 793 <bool>false</bool> 794 </property> 795 </column> 796 <property name="name"> 797 <cstring>lvLanguages</cstring> 798 </property> 799 <property name="sizePolicy"> 800 <sizepolicy> 801 <hsizetype>0</hsizetype> 802 <vsizetype>7</vsizetype> 803 <horstretch>0</horstretch> 804 <verstretch>0</verstretch> 805 </sizepolicy> 806 </property> 807 <property name="resizeMode"> 808 <enum>AllColumns</enum> 809 </property> 810 <property name="whatsThis" stdset="0"> 811 <string>The list of languages available for interface translation.</string> 812 </property> 813 </widget> 814 <widget class="QLayoutWidget"> 815 <property name="name"> 816 <cstring>layout7</cstring> 817 </property> 818 <vbox> 819 <property name="name"> 820 <cstring>unnamed</cstring> 821 </property> 822 <widget class="QLayoutWidget"> 823 <property name="name"> 824 <cstring>layout6</cstring> 825 </property> 826 <grid> 827 <property name="name"> 828 <cstring>unnamed</cstring> 829 </property> 830 <widget class="QLabel" row="1" column="1"> 831 <property name="name"> 832 <cstring>tlAuthorData</cstring> 833 </property> 834 <property name="sizePolicy"> 835 <sizepolicy> 836 <hsizetype>7</hsizetype> 837 <vsizetype>5</vsizetype> 838 <horstretch>0</horstretch> 839 <verstretch>0</verstretch> 840 </sizepolicy> 841 </property> 842 <property name="text"> 843 <string></string> 844 </property> 845 <property name="alignment"> 846 <set>WordBreak|AlignTop</set> 847 </property> 848 </widget> 849 <widget class="QLabel" row="1" column="0"> 850 <property name="name"> 851 <cstring>tlAuthorName</cstring> 852 </property> 853 <property name="sizePolicy"> 854 <sizepolicy> 855 <hsizetype>1</hsizetype> 856 <vsizetype>5</vsizetype> 857 <horstretch>0</horstretch> 858 <verstretch>0</verstretch> 859 </sizepolicy> 860 </property> 861 <property name="text"> 862 <string>Author(s):</string> 863 </property> 864 <property name="alignment"> 865 <set>AlignTop</set> 866 </property> 867 </widget> 868 <widget class="QLabel" row="0" column="0"> 869 <property name="name"> 870 <cstring>tlLangName</cstring> 871 </property> 872 <property name="sizePolicy"> 873 <sizepolicy> 874 <hsizetype>1</hsizetype> 875 <vsizetype>5</vsizetype> 876 <horstretch>0</horstretch> 877 <verstretch>0</verstretch> 878 </sizepolicy> 879 </property> 880 <property name="text"> 881 <string>Language:</string> 882 </property> 883 <property name="alignment"> 884 <set>AlignTop</set> 885 </property> 886 </widget> 887 <widget class="QLabel" row="0" column="1"> 888 <property name="name"> 889 <cstring>tlLangData</cstring> 890 </property> 891 <property name="sizePolicy"> 892 <sizepolicy> 893 <hsizetype>7</hsizetype> 894 <vsizetype>5</vsizetype> 895 <horstretch>0</horstretch> 896 <verstretch>0</verstretch> 897 </sizepolicy> 898 </property> 899 <property name="text"> 900 <string></string> 901 </property> 902 <property name="alignment"> 903 <set>WordBreak|AlignTop</set> 904 </property> 905 </widget> 906 </grid> 907 </widget> 908 <spacer> 909 <property name="name"> 910 <cstring>spacer7</cstring> 911 </property> 912 <property name="orientation"> 913 <enum>Vertical</enum> 914 </property> 915 <property name="sizeType"> 916 <enum>Expanding</enum> 917 </property> 918 <property name="sizeHint"> 919 <size> 920 <width>20</width> 921 <height>121</height> 922 </size> 923 </property> 924 </spacer> 925 </vbox> 926 </widget> 927 </hbox> 928 </widget> 929 </vbox> 930 </widget> 736 931 </widget> 737 932 <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="2"> … … 987 1182 <receiver>VBoxGlobalSettingsDlg</receiver> 988 1183 <slot>tbUSBFilterDown_clicked()</slot> 1184 </connection> 1185 <connection> 1186 <sender>lvLanguages</sender> 1187 <signal>currentChanged(QListViewItem*)</signal> 1188 <receiver>VBoxGlobalSettingsDlg</receiver> 1189 <slot>lvLanguages_currentChanged(QListViewItem*)</slot> 989 1190 </connection> 990 1191 </connections> … … 1004 1205 <tabstop>tbUSBFilterUp</tabstop> 1005 1206 <tabstop>tbUSBFilterDown</tabstop> 1207 <tabstop>lvLanguages</tabstop> 1006 1208 <tabstop>buttonHelp</tabstop> 1007 1209 <tabstop>buttonOk</tabstop> … … 1041 1243 <variable access="private">bool mUSBFilterListModified;</variable> 1042 1244 <variable access="private">VBoxUSBMenu *usbDevicesMenu;</variable> 1245 <variable access="private">bool mLanguageChanged;</variable> 1043 1246 </variables> 1044 1247 <slots> … … 1058 1261 <slot>tbUSBFilterUp_clicked()</slot> 1059 1262 <slot>tbUSBFilterDown_clicked()</slot> 1263 <slot>lvLanguages_currentChanged( QListViewItem* )</slot> 1060 1264 </slots> 1061 1265 <functions> 1062 1266 <function access="private">init()</function> 1267 <function access="private" returnType="bool">event( QEvent * )</function> 1063 1268 <function access="protected">showEvent( QShowEvent * )</function> 1064 1269 <function>getFrom( const CSystemProperties & props, const VMGlobalSettings & gs )</function> -
trunk/src/VBox/Frontends/VirtualBox/ui/VBoxGlobalSettingsDlg.ui.h
r1902 r2022 31 31 32 32 33 extern const QString transFileName; 34 extern const QString langIdRegExp; 35 extern const QString builtInName; 36 33 37 /** 34 38 * Returns the path to the item in the form of 'grandparent > parent > item' … … 73 77 74 78 79 class LanguageItem : public QListViewItem 80 { 81 public: 82 83 enum { TypeId = 1001 }; 84 85 LanguageItem (QListView *aParent, const QString &aName) 86 : QListViewItem (aParent, aName) 87 { 88 /* making separator field */ 89 if (aName == "-") 90 { 91 QString sepLine; 92 while (listView()->fontMetrics().width (sepLine) < listView()->width()) 93 sepLine += "-"; 94 setText (0, sepLine); 95 setSelectable (false); 96 } 97 } 98 99 LanguageItem (QListView *aParent, const QTranslator &aTranslator, 100 const QString &aId, bool aBuiltIn = false) 101 : QListViewItem (aParent) 102 { 103 QTranslatorMessage transMes; 104 105 QString nativeLanguage = translate (aTranslator, 106 "@@@", "English", "Native language name", aBuiltIn); 107 QString nativeCountry = translate (aTranslator, 108 "@@@", "built-in", "Native language country name " 109 "(empty if this language is for all countries)", aBuiltIn); 110 111 QString englishLanguage = translate (aTranslator, 112 "@@@", "English", "Language name, in English", aBuiltIn); 113 QString englishCountry = translate (aTranslator, 114 "@@@", "built-in", "Language country name, in English " 115 "(empty if native country name is empty)", aBuiltIn); 116 117 QString translatorsName = translate (aTranslator, 118 "@@@", "InnoTek", "Comma-separated list of translators", aBuiltIn); 119 if (translatorsName.isNull()) 120 translatorsName = QListView::tr ("--", "no info"); 121 122 QString itemName = nativeLanguage; 123 if (!nativeCountry.isNull()) 124 itemName += " (" + nativeCountry + ")"; 125 126 QString langName = englishLanguage; 127 if (!englishCountry.isNull()) 128 langName += " (" + englishCountry + ")"; 129 if (!aBuiltIn) 130 langName = itemName + " / " + langName; 131 132 setText (0, itemName); 133 setText (1, aId); 134 setText (2, langName); 135 setText (3, translatorsName); 136 } 137 138 int rtti() const { return TypeId; } 139 140 int compare (QListViewItem *aItem, int aColumn, bool aAscending) const 141 { 142 QString thisValue = text (1); 143 QString thatValue = aItem->text (1); 144 if (thisValue == builtInName) 145 return -1; 146 else if (thatValue == builtInName) 147 return 1; 148 else 149 return QListViewItem::compare (aItem, aColumn, aAscending); 150 } 151 152 void paintCell (QPainter *aPainter, const QColorGroup &aGroup, 153 int aColumn, int aWidth, int aSlign) 154 { 155 /* adjusting list-view width */ 156 int fullwidth = width (listView()->fontMetrics(), listView(), 0) + 4; 157 if (listView()->width() < fullwidth) 158 listView()->setFixedWidth (fullwidth); 159 /* standard paint procedure */ 160 QListViewItem::paintCell (aPainter, aGroup, aColumn, aWidth, aSlign); 161 } 162 163 private: 164 165 QString translate (const QTranslator &aTranslator, const char *aCtxt, 166 const char *aSrc, const char *aCmnt, bool aBuiltIn) 167 { 168 QTranslatorMessage msg = aTranslator.findMessage (aCtxt, aSrc, aCmnt); 169 return msg.translation().isNull() && aBuiltIn ? QString (aSrc) : msg.translation(); 170 } 171 }; 172 173 75 174 void VBoxGlobalSettingsDlg::init() 76 175 { 77 176 polished = false; 78 177 79 setCaption (tr ("VirtualBox Global Settings"));80 178 setIcon (QPixmap::fromMimeSource ("global_settings_16px.png")); 81 179 … … 98 196 listView->setSorting (listView_Id); 99 197 listView->sort(); 100 /* disable further sorting (important for network adapters) */101 listView->setSorting (-1);102 /* set the first item selected */103 listView->setSelected (listView->firstChild(), true);104 listView_currentChanged (listView->firstChild());105 198 106 199 warningPixmap->setMaximumSize( 16, 16 ); … … 203 296 /* keyboard page */ 204 297 298 /* Language page */ 299 300 lvLanguages->header()->hide(); 301 lvLanguages->setSorting (0); 302 QString nlsPath = qApp->applicationDirPath() + "/nls"; 303 QDir nlsDir (nlsPath); 304 QStringList files = nlsDir.entryList (transFileName + "*", QDir::Files); 305 QTranslator translator; 306 new LanguageItem (lvLanguages, translator, builtInName, true /* built-in */); 307 new LanguageItem (lvLanguages, tr ("-")); 308 for (QStringList::Iterator it = files.begin(); it != files.end(); ++it) 309 { 310 const QString &fileName = *it; 311 bool status = translator.load (fileName, nlsPath); 312 if (!status) continue; 313 314 QRegExp regExp (transFileName + langIdRegExp); 315 int pos = regExp.search (fileName); 316 if (pos == -1) continue; 317 318 new LanguageItem (lvLanguages, translator, regExp.cap (1)); 319 } 320 205 321 /* 206 322 * update the Ok button state for pages with validation … … 209 325 wvalGeneral->revalidate(); 210 326 wvalKeyboard->revalidate(); 327 } 328 329 bool VBoxGlobalSettingsDlg::event (QEvent *aEvent) 330 { 331 bool result = QWidget::event (aEvent); 332 if (aEvent->type() == QEvent::LanguageChange) 333 { 334 /* set the first item selected */ 335 listView->setSelected (listView->firstChild(), true); 336 listView_currentChanged (listView->firstChild()); 337 lvLanguages_currentChanged (lvLanguages->currentItem()); 338 mLanguageChanged = false; 339 } 340 return result; 211 341 } 212 342 … … 369 499 } 370 500 #endif 501 502 /* language properties */ 503 504 QListViewItem *item = lvLanguages->findItem (VBoxGlobal::languageID(), 1); 505 if (item) 506 { 507 lvLanguages->setCurrentItem (item); 508 lvLanguages->setSelected (item, true); 509 } 371 510 } 372 511 … … 428 567 } 429 568 mUSBFilterListModified = false; 569 570 /* language properties */ 571 572 QListViewItem *selItem = lvLanguages->selectedItem(); 573 if (mLanguageChanged && selItem) 574 { 575 gs.setLanguageId (selItem->text (1) == VBoxGlobal::systemLanguageID() ? 576 QString::null : selItem->text (1)); 577 VBoxGlobal::loadLanguage (selItem->text (1)); 578 } 430 579 } 431 580 … … 690 839 mUSBFilterListModified = true; 691 840 } 841 842 void VBoxGlobalSettingsDlg::lvLanguages_currentChanged (QListViewItem *aItem) 843 { 844 if (!aItem) return; 845 846 tlLangData->setText (aItem->text (2)); 847 tlAuthorData->setText (aItem->text (3)); 848 if (!mLanguageChanged) 849 mLanguageChanged = true; 850 }
Note:
See TracChangeset
for help on using the changeset viewer.