mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Preferences: add a new page for language
This is not hooked into anything - It's the bare minimum that I need to continue creating the new preferences dialog. But take a look at it... very simple. :) Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									b35ccc3a35
								
							
						
					
					
						commit
						255325e219
					
				
					 4 changed files with 158 additions and 2 deletions
				
			
		|  | @ -1,9 +1,21 @@ | |||
| # the profile widget | ||||
| include_directories(. | ||||
| 	${CMAKE_CURRENT_BINARY_DIR} | ||||
| 	${CMAKE_BINARY_DIR} | ||||
| ) | ||||
| 
 | ||||
| file(GLOB SUBSURFACE_PREFERENCES_UI *.ui) | ||||
| qt5_wrap_ui(SUBSURFACE_PREFERENCES_UI_HDRS ${SUBSURFACE_PREFERENCES_UI}) | ||||
| 
 | ||||
| source_group("Subsurface Interface Files" FILES ${SUBSURFACE_PREFERENCES_UI}) | ||||
| 
 | ||||
| set(SUBSURFACE_PREFERENCES_LIB_SRCS | ||||
| 	abstractpreferenceswidget.cpp | ||||
| 	preferences_language.cpp | ||||
| ) | ||||
| 
 | ||||
| source_group("Subsurface Preferences" FILES ${SUBSURFACE_PREFERENCES_LIB_SRCS}) | ||||
| 
 | ||||
| add_library(subsurface_desktop_preferences STATIC ${SUBSURFACE_PREFERENCES_LIB_SRCS}) | ||||
| add_library(subsurface_desktop_preferences STATIC ${SUBSURFACE_PREFERENCES_LIB_SRCS} ${SUBSURFACE_PREFERENCES_UI_HDRS}) | ||||
| target_link_libraries(subsurface_desktop_preferences ${QT_LIBRARIES}) | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										47
									
								
								desktop-widgets/preferences/preferences_language.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								desktop-widgets/preferences/preferences_language.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,47 @@ | |||
| #include "preferences_language.h" | ||||
| #include "ui_prefs_language.h" | ||||
| 
 | ||||
| #include <QApplication> | ||||
| #include <QSettings> | ||||
| #include <QMessageBox> | ||||
| 
 | ||||
| 
 | ||||
| PreferencesLanguage::PreferencesLanguage() : AbstractPreferencesWidget(tr("Language"), QIcon(":/language"), 4) | ||||
| { | ||||
| 	ui = new Ui::PreferencesLanguage(); | ||||
| 	ui->setupUi(this); | ||||
| } | ||||
| 
 | ||||
| PreferencesLanguage::~PreferencesLanguage() | ||||
| { | ||||
| 	delete ui; | ||||
| } | ||||
| 
 | ||||
| void PreferencesLanguage::refreshSettings() | ||||
| { | ||||
| 	QSettings s; | ||||
| 	s.beginGroup("Language"); | ||||
| 	ui->languageSystemDefault->setChecked(s.value("UseSystemLanguage", true).toBool()); | ||||
| 	QAbstractItemModel *m = ui->languageView->model(); | ||||
| 	QModelIndexList languages = m->match(m->index(0, 0), Qt::UserRole, s.value("UiLanguage").toString()); | ||||
| 	if (languages.count()) | ||||
| 		ui->languageView->setCurrentIndex(languages.first()); | ||||
| 	s.endGroup(); | ||||
| } | ||||
| 
 | ||||
| void PreferencesLanguage::syncSettings() | ||||
| { | ||||
| 	// Locale
 | ||||
| 	QLocale loc; | ||||
| 	QSettings s; | ||||
| 	s.beginGroup("Language"); | ||||
| 	bool useSystemLang = s.value("UseSystemLanguage", true).toBool(); | ||||
| 	if (useSystemLang != ui->languageSystemDefault->isChecked() || | ||||
| 	    (!useSystemLang && s.value("UiLanguage").toString() != ui->languageView->currentIndex().data(Qt::UserRole))) { | ||||
| 		QMessageBox::warning(this, tr("Restart required"), | ||||
| 			tr("To correctly load a new language you must restart Subsurface.")); | ||||
| 	} | ||||
| 	s.setValue("UseSystemLanguage", ui->languageSystemDefault->isChecked()); | ||||
| 	s.setValue("UiLanguage", ui->languageView->currentIndex().data(Qt::UserRole)); | ||||
| 	s.endGroup(); | ||||
| } | ||||
							
								
								
									
										21
									
								
								desktop-widgets/preferences/preferences_language.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								desktop-widgets/preferences/preferences_language.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| #ifndef PREFERENCES_LANGUAGE_H | ||||
| #define PREFERENCES_LANGUAGE_H | ||||
| 
 | ||||
| #include "abstractpreferenceswidget.h" | ||||
| 
 | ||||
| namespace Ui { | ||||
| 	class PreferencesLanguage; | ||||
| } | ||||
| 
 | ||||
| class PreferencesLanguage : public AbstractPreferencesWidget { | ||||
| 	Q_OBJECT | ||||
| public: | ||||
| 	PreferencesLanguage(); | ||||
| 	virtual ~PreferencesLanguage(); | ||||
| 	virtual void refreshSettings(); | ||||
| 	virtual void syncSettings(); | ||||
| private: | ||||
| 	Ui::PreferencesLanguage *ui; | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										76
									
								
								desktop-widgets/preferences/prefs_language.ui
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								desktop-widgets/preferences/prefs_language.ui
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,76 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <ui version="4.0"> | ||||
|  <class>PreferencesLanguage</class> | ||||
|  <widget class="QWidget" name="PreferencesLanguage"> | ||||
|   <property name="geometry"> | ||||
|    <rect> | ||||
|     <x>0</x> | ||||
|     <y>0</y> | ||||
|     <width>576</width> | ||||
|     <height>523</height> | ||||
|    </rect> | ||||
|   </property> | ||||
|   <property name="windowTitle"> | ||||
|    <string>Form</string> | ||||
|   </property> | ||||
|   <layout class="QVBoxLayout" name="verticalLayout"> | ||||
|    <item> | ||||
|     <widget class="QGroupBox" name="language_group"> | ||||
|      <property name="sizePolicy"> | ||||
|       <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred"> | ||||
|        <horstretch>0</horstretch> | ||||
|        <verstretch>0</verstretch> | ||||
|       </sizepolicy> | ||||
|      </property> | ||||
|      <property name="title"> | ||||
|       <string>UI language</string> | ||||
|      </property> | ||||
|      <layout class="QHBoxLayout" name="horizontalLayout"> | ||||
|       <item> | ||||
|        <widget class="QCheckBox" name="languageSystemDefault"> | ||||
|         <property name="text"> | ||||
|          <string>System default</string> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|       <item> | ||||
|        <spacer name="horizontalSpacer"> | ||||
|         <property name="orientation"> | ||||
|          <enum>Qt::Horizontal</enum> | ||||
|         </property> | ||||
|         <property name="sizeHint" stdset="0"> | ||||
|          <size> | ||||
|           <width>203</width> | ||||
|           <height>20</height> | ||||
|          </size> | ||||
|         </property> | ||||
|        </spacer> | ||||
|       </item> | ||||
|       <item> | ||||
|        <widget class="QLabel" name="label_14"> | ||||
|         <property name="text"> | ||||
|          <string>Filter</string> | ||||
|         </property> | ||||
|        </widget> | ||||
|       </item> | ||||
|       <item> | ||||
|        <widget class="QLineEdit" name="languageFilter"/> | ||||
|       </item> | ||||
|      </layout> | ||||
|     </widget> | ||||
|    </item> | ||||
|    <item> | ||||
|     <widget class="QListView" name="languageView"> | ||||
|      <property name="sizePolicy"> | ||||
|       <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding"> | ||||
|        <horstretch>0</horstretch> | ||||
|        <verstretch>0</verstretch> | ||||
|       </sizepolicy> | ||||
|      </property> | ||||
|     </widget> | ||||
|    </item> | ||||
|   </layout> | ||||
|  </widget> | ||||
|  <resources/> | ||||
|  <connections/> | ||||
| </ui> | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue