Preferences dialog: yet another attempt to make it fit

Designer is such an utter piece of crap I am at a lack for words.
After a few hours with a real UI tool (i.e., vim) I have the preferences
dialog reasonably close to where I want it. It's still not perfect, but at
least it no longer contains tons of unused space, it fits fine on a
1024x768 screen and it is visually consistent across the different pages.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2015-06-27 14:37:43 -07:00
parent 485df96cf6
commit 1f0c9eec96
3 changed files with 267 additions and 161 deletions

View file

@ -82,7 +82,7 @@ void PreferencesDialog::facebookLoggedIn()
#ifndef Q_OS_ANDROID #ifndef Q_OS_ANDROID
// remove the login view and add the disconnect button // remove the login view and add the disconnect button
ui.fbLayout->removeItem(ui.fbLayout->itemAt(1)); ui.fbLayout->removeItem(ui.fbLayout->itemAt(1));
ui.fbLayout->addWidget(ui.fbConnected); ui.fbLayout->insertWidget(1, ui.fbConnected, 0);
ui.fbConnected->show(); ui.fbConnected->show();
ui.FBLabel->setText(tr("To disconnect Subsurface from your Facebook account, use the button below")); ui.FBLabel->setText(tr("To disconnect Subsurface from your Facebook account, use the button below"));
if (facebookWebView) if (facebookWebView)
@ -96,7 +96,7 @@ void PreferencesDialog::facebookDisconnect()
// remove the connect/disconnect button // remove the connect/disconnect button
// and instead add the login view // and instead add the login view
ui.fbLayout->removeItem(ui.fbLayout->itemAt(1)); ui.fbLayout->removeItem(ui.fbLayout->itemAt(1));
ui.fbLayout->addWidget(facebookWebView); ui.fbLayout->insertWidget(1, facebookWebView, 1);
ui.fbConnected->hide(); ui.fbConnected->hide();
ui.FBLabel->setText(tr("To connect to Facebook, please log in. This enables Subsurface to publish dives to your timeline")); ui.FBLabel->setText(tr("To connect to Facebook, please log in. This enables Subsurface to publish dives to your timeline"));
if (facebookWebView) { if (facebookWebView) {

View file

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>868</width> <width>711</width>
<height>853</height> <height>662</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -32,7 +32,7 @@
<number>5</number> <number>5</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="mainHorizontalLayout">
<item> <item>
<widget class="QListWidget" name="listWidget"> <widget class="QListWidget" name="listWidget">
<property name="sizePolicy"> <property name="sizePolicy">
@ -168,9 +168,15 @@
</sizepolicy> </sizepolicy>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>6</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="defaults_page"> <widget class="QWidget" name="defaults_page">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3"> <layout class="QVBoxLayout" name="verticalLayout_3">
<property name="spacing"> <property name="spacing">
<number>5</number> <number>5</number>
@ -192,13 +198,7 @@
<property name="title"> <property name="title">
<string>Lists and tables</string> <string>Lists and tables</string>
</property> </property>
<layout class="QFormLayout" name="formLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_11">
<property name="horizontalSpacing">
<number>5</number>
</property>
<property name="verticalSpacing">
<number>5</number>
</property>
<property name="leftMargin"> <property name="leftMargin">
<number>5</number> <number>5</number>
</property> </property>
@ -211,24 +211,24 @@
<property name="bottomMargin"> <property name="bottomMargin">
<number>5</number> <number>5</number>
</property> </property>
<item row="0" column="0"> <item>
<widget class="QLabel" name="label_7"> <widget class="QLabel" name="label_7">
<property name="text"> <property name="text">
<string>Font</string> <string>Font</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item>
<widget class="QFontComboBox" name="font"/> <widget class="QFontComboBox" name="font"/>
</item> </item>
<item row="1" column="0"> <item>
<widget class="QLabel" name="label_8"> <widget class="QLabel" name="label_8">
<property name="text"> <property name="text">
<string>Font size</string> <string>Font size</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item>
<widget class="QDoubleSpinBox" name="fontsize"/> <widget class="QDoubleSpinBox" name="fontsize"/>
</item> </item>
</layout> </layout>
@ -290,7 +290,7 @@
<item> <item>
<widget class="QRadioButton" name="cloudDefaultFile"> <widget class="QRadioButton" name="cloudDefaultFile">
<property name="text"> <property name="text">
<string>Cloud storage default file</string> <string>Clo&amp;ud storage default file</string>
</property> </property>
<attribute name="buttonGroup"> <attribute name="buttonGroup">
<string notr="true">defaultFileGroup</string> <string notr="true">defaultFileGroup</string>
@ -433,47 +433,6 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QGroupBox" name="groupBox_8">
<property name="title">
<string>Subsurface web service</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QLabel" name="label_16">
<property name="text">
<string>Default user ID</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="default_uid"/>
</item>
<item>
<widget class="QCheckBox" name="save_uid_local">
<property name="text">
<string>Save user ID locally?</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item> <item>
<widget class="QGroupBox" name="groupBox_9"> <widget class="QGroupBox" name="groupBox_9">
<property name="title"> <property name="title">
@ -521,6 +480,12 @@
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="units_page"> <widget class="QWidget" name="units_page">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="spacing"> <property name="spacing">
<number>5</number> <number>5</number>
@ -538,50 +503,55 @@
<number>5</number> <number>5</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <widget class="QGroupBox" name="groupBox_units">
<item> <property name="title">
<widget class="QLabel" name="label_6"> <string>Unit system</string>
<property name="text"> </property>
<string>System</string> <layout class="QHBoxLayout" name="horizontalLayout">
</property> <item>
</widget> <widget class="QLabel" name="label_6">
</item> <property name="text">
<item> <string>System</string>
<widget class="QRadioButton" name="metric"> </property>
<property name="text"> </widget>
<string>&amp;Metric</string> </item>
</property> <item>
<attribute name="buttonGroup"> <widget class="QRadioButton" name="metric">
<string notr="true">buttonGroup_6</string> <property name="text">
</attribute> <string>&amp;Metric</string>
</widget> </property>
</item> <attribute name="buttonGroup">
<item> <string notr="true">buttonGroup_6</string>
<widget class="QRadioButton" name="imperial"> </attribute>
<property name="text"> </widget>
<string>Imperial</string> </item>
</property> <item>
<attribute name="buttonGroup"> <widget class="QRadioButton" name="imperial">
<string notr="true">buttonGroup_6</string> <property name="text">
</attribute> <string>Imperial</string>
</widget> </property>
</item> <attribute name="buttonGroup">
<item> <string notr="true">buttonGroup_6</string>
<widget class="QRadioButton" name="personalize"> </attribute>
<property name="text"> </widget>
<string>Personali&amp;ze</string> </item>
</property> <item>
<attribute name="buttonGroup"> <widget class="QRadioButton" name="personalize">
<string notr="true">buttonGroup_6</string> <property name="text">
</attribute> <string>Personali&amp;ze</string>
</widget> </property>
</item> <attribute name="buttonGroup">
</layout> <string notr="true">buttonGroup_6</string>
</attribute>
</widget>
</item>
</layout>
</widget>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="units_group"> <widget class="QGroupBox" name="units_group">
<property name="title"> <property name="title">
<string/> <string>Individual settings</string>
</property> </property>
<property name="checkable"> <property name="checkable">
<bool>false</bool> <bool>false</bool>
@ -820,6 +790,12 @@
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="graph_page"> <widget class="QWidget" name="graph_page">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5"> <layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing"> <property name="spacing">
<number>5</number> <number>5</number>
@ -1114,10 +1090,19 @@
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="language_page"> <widget class="QWidget" name="language_page">
<layout class="QVBoxLayout" name="verticalLayout_6"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6" stretch="0,1,0">
<property name="spacing"> <property name="spacing">
<number>5</number> <number>5</number>
</property> </property>
<property name="sizeConstraint">
<enum>QLayout::SetNoConstraint</enum>
</property>
<property name="leftMargin"> <property name="leftMargin">
<number>5</number> <number>5</number>
</property> </property>
@ -1131,45 +1116,82 @@
<number>5</number> <number>5</number>
</property> </property>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_6"> <widget class="QGroupBox" name="language_group">
<item> <property name="sizePolicy">
<widget class="QCheckBox" name="languageSystemDefault"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<property name="text"> <horstretch>0</horstretch>
<string>System default</string> <verstretch>0</verstretch>
</property> </sizepolicy>
</widget> </property>
</item> <property name="title">
<item> <string>UI language</string>
<spacer name="horizontalSpacer"> </property>
<property name="orientation"> <layout class="QHBoxLayout" name="horizontalLayout_6">
<enum>Qt::Horizontal</enum> <item>
</property> <widget class="QCheckBox" name="languageSystemDefault">
<property name="sizeHint" stdset="0"> <property name="text">
<size> <string>System default</string>
<width>40</width> </property>
<height>20</height> </widget>
</size> </item>
</property> <item>
</spacer> <spacer name="horizontalSpacer">
</item> <property name="orientation">
<item> <enum>Qt::Horizontal</enum>
<widget class="QLabel" name="label_14"> </property>
<property name="text"> <property name="sizeHint" stdset="0">
<string>Filter</string> <size>
</property> <width>40</width>
</widget> <height>20</height>
</item> </size>
<item> </property>
<widget class="QLineEdit" name="languageFilter"/> </spacer>
</item> </item>
</layout> <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>
<item> <item>
<widget class="QListView" name="languageView"/> <widget class="QListView" name="languageView">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="network_page"> <widget class="QWidget" name="network_page">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_15"> <layout class="QVBoxLayout" name="verticalLayout_15">
<property name="spacing"> <property name="spacing">
<number>5</number> <number>5</number>
@ -1386,6 +1408,47 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QGroupBox" name="groupBox_8">
<property name="title">
<string>Subsurface web service</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="QLabel" name="label_16">
<property name="text">
<string>Default user ID</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="default_uid"/>
</item>
<item>
<widget class="QCheckBox" name="save_uid_local">
<property name="text">
<string>Save user ID locally?</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item> <item>
<spacer name="verticalSpacer_3"> <spacer name="verticalSpacer_3">
<property name="orientation"> <property name="orientation">
@ -1402,7 +1465,13 @@
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="facebook_page"> <widget class="QWidget" name="facebook_page">
<layout class="QVBoxLayout" name="fbLayout"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="fbLayout" stretch="0,1,1">
<property name="spacing"> <property name="spacing">
<number>5</number> <number>5</number>
</property> </property>
@ -1420,6 +1489,12 @@
</property> </property>
<item> <item>
<widget class="QLabel" name="FBLabel"> <widget class="QLabel" name="FBLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="wordWrap"> <property name="wordWrap">
<bool>true</bool> <bool>true</bool>
</property> </property>
@ -1457,27 +1532,57 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="page"> <widget class="QWidget" name="geolookup_page">
<layout class="QVBoxLayout" name="verticalLayout_8"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QVBoxLayout" name="verticalLayout_155">
<property name="spacing">
<number>5</number>
</property>
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item> <item>
<widget class="QCheckBox" name="enable_geocoding"> <widget class="QGroupBox" name="groupBox_Geocoding">
<property name="text"> <property name="title">
<string>Enable geocoding for dive site management</string> <string>Dive site geo lookup</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="parse_without_gps">
<property name="text">
<string>Parse site without GPS data</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="tag_existing_dives">
<property name="text">
<string>Same format for existing dives</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_8">
<item>
<widget class="QCheckBox" name="enable_geocoding">
<property name="text">
<string>Enable geocoding for dive site management</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="parse_without_gps">
<property name="text">
<string>Parse site without GPS data</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="tag_existing_dives">
<property name="text">
<string>Same format for existing dives</string>
</property>
</widget>
</item>
</layout>
</widget> </widget>
</item> </item>
<item> <item>
@ -1547,7 +1652,7 @@
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>495</height> <height>0</height>
</size> </size>
</property> </property>
</spacer> </spacer>
@ -1911,13 +2016,13 @@
</connections> </connections>
<buttongroups> <buttongroups>
<buttongroup name="buttonGroup_6"/> <buttongroup name="buttonGroup_6"/>
<buttongroup name="defaultFileGroup"/>
<buttongroup name="buttonGroup"/>
<buttongroup name="buttonGroup_3"/>
<buttongroup name="buttonGroup_7"/>
<buttongroup name="buttonGroup_5"/>
<buttongroup name="buttonGroup_2"/> <buttongroup name="buttonGroup_2"/>
<buttongroup name="buttonGroup"/>
<buttongroup name="verticalSpeed"/> <buttongroup name="verticalSpeed"/>
<buttongroup name="buttonGroup_7"/>
<buttongroup name="defaultFileGroup"/>
<buttongroup name="buttonGroup_5"/>
<buttongroup name="buttonGroup_3"/>
<buttongroup name="buttonGroup_4"/> <buttongroup name="buttonGroup_4"/>
</buttongroups> </buttongroups>
</ui> </ui>

View file

@ -269,8 +269,9 @@ void FacebookManager::sendDive()
} }
} }
SocialNetworkDialog::SocialNetworkDialog(QWidget *parent) : QDialog(parent) SocialNetworkDialog::SocialNetworkDialog(QWidget *parent) :
, ui( new Ui::SocialnetworksDialog()) QDialog(parent),
ui( new Ui::SocialnetworksDialog())
{ {
ui->setupUi(this); ui->setupUi(this);
ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);