* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include "dialogs/preferences.hpp"
-#include "dialogs_provider.hpp"
#include "util/qvlcframe.hpp"
#include "components/complete_preferences.hpp"
#include <QHBoxLayout>
#include <QGroupBox>
#include <QRadioButton>
-#include <QVBoxLayout>
#include <QPushButton>
-#include <QCheckBox>
#include <QMessageBox>
#include <QDialogButtonBox>
QGridLayout *main_layout = new QGridLayout( this );
setWindowTitle( qtr( "Preferences" ) );
+ /* Whether we want it or not, we need to destroy on close to get
+ consistency when reset */
+ setAttribute( Qt::WA_DeleteOnClose );
+
/* Create Panels */
tree_panel = new QWidget;
tree_panel_l = new QHBoxLayout;
main_panel->setLayout( main_panel_l );
/* Choice for types */
- types = new QGroupBox( "Show settings" );
+ types = new QGroupBox( qtr("Show settings") );
types->setAlignment( Qt::AlignHCenter );
QHBoxLayout *types_l = new QHBoxLayout;
types_l->setSpacing( 3 ); types_l->setMargin( 3 );
- small = new QRadioButton( qtr("Basic"), types );
+ small = new QRadioButton( qtr( "Simple" ), types );
+ small->setToolTip( qtr( "Switch to simple preferences view" ) );
types_l->addWidget( small );
all = new QRadioButton( qtr("All"), types ); types_l->addWidget( all );
+ all->setToolTip( qtr( "Switch to full preferences view" ) );
types->setLayout( types_l );
small->setChecked( true );
/* Buttons */
QDialogButtonBox *buttonsBox = new QDialogButtonBox();
QPushButton *save = new QPushButton( qtr( "&Save" ) );
+ save->setToolTip( qtr( "Save and close the dialog" ) );
QPushButton *cancel = new QPushButton( qtr( "&Cancel" ) );
QPushButton *reset = new QPushButton( qtr( "&Reset Preferences" ) );
buttonsBox->addButton( save, QDialogButtonBox::AcceptRole );
buttonsBox->addButton( cancel, QDialogButtonBox::RejectRole );
- buttonsBox->addButton( reset, QDialogButtonBox::ActionRole );
+ buttonsBox->addButton( reset, QDialogButtonBox::ResetRole );
/* Layout */
main_layout->addWidget( tree_panel, 0, 0, 3, 1 );
main_layout->addWidget( types, 3, 0, 2, 1 );
- main_layout->addWidget( main_panel, 0, 1, 4, 1 );
- main_layout->addWidget( buttonsBox, 4, 1, 1 ,2 );
+ main_layout->addWidget( main_panel, 0, 1, 4, 2 );
+ main_layout->addWidget( buttonsBox, 4, 2, 1 ,1 );
main_layout->setColumnMinimumWidth( 0, 150 );
+ main_layout->setColumnMinimumWidth( 1, 10 );
main_layout->setColumnStretch( 0, 1 );
- main_layout->setColumnStretch( 1, 3 );
+ main_layout->setColumnStretch( 1, 0 );
+ main_layout->setColumnStretch( 2, 10 );
main_layout->setRowStretch( 2, 4 );
+ main_layout->setMargin( 9 );
setLayout( main_layout );
/* Margins */
tree_panel_l->setMargin( 1 );
- main_panel_l->setMargin( 3 );
+ main_panel_l->setLayoutMargins( 6, 0, 0, 3, 3 );
+ b_small = (p_intf->p_sys->i_screenHeight < 750);
+ if( b_small ) msg_Dbg( p_intf, "Small");
+ setMaximumHeight( p_intf->p_sys->i_screenHeight );
for( int i = 0; i < SPrefsMax ; i++ ) simple_panels[i] = NULL;
- if( config_GetInt( p_intf, "qt-advanced-pref" ) == 1 )
+ if( config_GetInt( p_intf, "qt-advanced-pref" ) || config_GetInt( p_intf, "advanced" ) )
setAdvanced();
else
setSmall();
BUTTONACT( small, setSmall() );
BUTTONACT( all, setAdvanced() );
- resize( 750, sizeHint().height() );
+ resize( 780, sizeHint().height() );
}
void PrefsDialog::setAdvanced()
/* If no simple_tree, create one, connect it */
if( !simple_tree )
{
- simple_tree = new SPrefsCatList( p_intf, tree_panel );
+ simple_tree = new SPrefsCatList( p_intf, tree_panel, b_small );
CONNECT( simple_tree,
currentItemChanged( int ),
this, changeSimplePanel( int ) );
if( !current_simple_panel )
{
current_simple_panel =
- new SPrefsPanel( p_intf, main_panel, SPrefsDefaultCat );
+ new SPrefsPanel( p_intf, main_panel, SPrefsDefaultCat, b_small );
simple_panels[SPrefsDefaultCat] = current_simple_panel;
main_panel_l->addWidget( current_simple_panel );
}
current_simple_panel = simple_panels[number];
if( !current_simple_panel )
{
- current_simple_panel = new SPrefsPanel( p_intf, main_panel, number );
+ current_simple_panel = new SPrefsPanel( p_intf, main_panel, number, b_small );
simple_panels[number] = current_simple_panel;
main_panel_l->addWidget( current_simple_panel );
}
/* Changing from one Advanced Panel to another */
void PrefsDialog::changeAdvPanel( QTreeWidgetItem *item )
{
+ if( item == NULL ) return;
PrefsItemData *data = item->data( 0, Qt::UserRole ).value<PrefsItemData*>();
if( advanced_panel )
/* Save to file */
config_SaveConfigFile( p_intf, NULL );
+ destroyPanels();
+
+ hide();
+}
+
+void PrefsDialog::destroyPanels()
+{
+ msg_Dbg( p_intf, "Destroying the Panels" );
/* Delete the other panel in order to force its reload after clicking
on apply. In fact, if we don't do that, the preferences from the other
panels won't be accurate, so we would have to recreate the whole dialog,
}
current_simple_panel = NULL;
}
-
- hide();
}
+
/* Clean the preferences, dunno if it does something really */
void PrefsDialog::cancel()
{
int ret = QMessageBox::question(
this,
qtr( "Reset Preferences" ),
- qtr( "This will reset your VLC media player preferences.\n"
- "Are you sure you want to continue?" ),
+ qtr( "Are you sure you want to reset your VLC media player preferences?" ),
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
{
config_ResetAll( p_intf );
config_SaveConfigFile( p_intf, NULL );
+ getSettings()->clear();
+
+ close();
+ instance = NULL;
+ PrefsDialog::getInstance( p_intf )->show();
}
}