瀏覽代碼

Cursor type is now configurable in Launcher

Ivan Savenko 2 年之前
父節點
當前提交
f5a7f5173f

+ 5 - 4
config/schemas/settings.json

@@ -82,7 +82,7 @@
 			"type" : "object",
 			"additionalProperties" : false,
 			"default": {},
-			"required" : [ "screenRes", "bitsPerPixel", "fullscreen", "realFullscreen", "softwareCursor", "spellbookAnimation", "driver", "showIntro", "displayIndex" ],
+			"required" : [ "screenRes", "bitsPerPixel", "fullscreen", "realFullscreen", "cursor", "spellbookAnimation", "driver", "showIntro", "displayIndex" ],
 			"properties" : {
 				"screenRes" : {
 					"type" : "object",
@@ -106,9 +106,10 @@
 					"type" : "boolean",
 					"default" : false
 				},
-				"softwareCursor" :  {
-					"type" : "boolean",
-					"default" : false
+				"cursor" :  {
+					"type" : "string",
+					"enum" : [ "auto", "hardware", "software" ],
+					"default" : "auto"
 				},
 				"showIntro" : {
 					"type" : "boolean",

+ 20 - 0
launcher/settingsView/csettingsview_moc.cpp

@@ -58,6 +58,13 @@ static const std::string languageTagList[] =
 	"ukrainian",
 };
 
+static const std::string cursorTypesList[] =
+{
+	"auto",
+	"hardware",
+	"software"
+};
+
 void CSettingsView::setDisplayList()
 {
 	QStringList list;
@@ -89,6 +96,8 @@ void CSettingsView::loadSettings()
 	ui->comboBoxFullScreen->setDisabled(true);
 #else
 	ui->comboBoxFullScreen->setCurrentIndex(settings["video"]["fullscreen"].Bool());
+	if (settings["video"]["realFullscreen"].Bool())
+		ui->comboBoxFullScreen->setCurrentIndex(2);
 #endif
 
 	ui->comboBoxFriendlyAI->setCurrentText(QString::fromStdString(settings["server"]["friendlyAI"].String()));
@@ -120,6 +129,10 @@ void CSettingsView::loadSettings()
 	size_t languageIndex = boost::range::find(languageTagList, language) - languageTagList;
 	if(languageIndex < ui->comboBoxLanguage->count())
 		ui->comboBoxLanguage->setCurrentIndex((int)languageIndex);
+
+	std::string cursorType = settings["video"]["cursor"].String();
+	size_t cursorTypeIndex = boost::range::find(cursorTypesList, cursorType) - cursorTypesList;
+	ui->comboBoxCursorType->setCurrentIndex((int)cursorTypeIndex);
 }
 
 void CSettingsView::fillValidResolutions(bool isExtraResolutionsModEnabled)
@@ -339,3 +352,10 @@ void CSettingsView::changeEvent(QEvent *event)
 	}
 	QWidget::changeEvent(event);
 }
+
+void CSettingsView::on_comboBoxCursorType_currentIndexChanged(int index)
+{
+	Settings node = settings.write["video"]["cursor"];
+	node->String() = cursorTypesList[index];
+}
+

+ 2 - 0
launcher/settingsView/csettingsview_moc.h

@@ -71,6 +71,8 @@ private slots:
 
 	void on_comboBoxLanguage_currentIndexChanged(int index);
 
+	void on_comboBoxCursorType_currentIndexChanged(int index);
+
 private:
 	Ui::CSettingsView * ui;
 

+ 26 - 0
launcher/settingsView/csettingsview_moc.ui

@@ -638,6 +638,32 @@
      </property>
     </widget>
    </item>
+   <item row="5" column="1">
+    <widget class="QLabel" name="labelCursorType">
+     <property name="text">
+      <string>Cursor</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="4">
+    <widget class="QComboBox" name="comboBoxCursorType">
+     <item>
+      <property name="text">
+       <string>Default</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Hardware</string>
+      </property>
+     </item>
+     <item>
+      <property name="text">
+       <string>Software</string>
+      </property>
+     </item>
+    </widget>
+   </item>
   </layout>
  </widget>
  <resources/>