VBoxGlobalSettingsDlg.ui.h revision b9042bb7a5efd07d617a8a7d812b669d75682779
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd * VBox frontends: Qt GUI ("VirtualBox"):
fd9abdda70912b99b24e3bf1a38f26fde908a74cnd * "Global settings" dialog UI include (Qt Designer)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * Copyright (C) 2006 InnoTek Systemberatung GmbH
96ad5d81ee4a2cc66a4ae19893efc8aa6d06fae7jailletc * This file is part of VirtualBox Open Source Edition (OSE), as
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * available from http://www.virtualbox.org. This file is free software;
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * you can redistribute it and/or modify it under the terms of the GNU
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * General Public License as published by the Free Software Foundation,
2e545ce2450a9953665f701bb05350f0d3f26275nd * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * distribution. VirtualBox OSE is distributed in the hope that it will
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen * be useful, but WITHOUT ANY WARRANTY of any kind.
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * If you received this file as part of a commercial VirtualBox
af33a4994ae2ff15bc67d19ff1a7feb906745bf8rbowen * distribution, then only the terms of your commercial VirtualBox
3f08db06526d6901aa08c110b5bc7dde6bc39905nd * license agreement apply instead of the previous paragraph.
a78048ccbdb6256da15e6b0e7e95355e480c2301nd/****************************************************************************
3f08db06526d6901aa08c110b5bc7dde6bc39905nd** ui.h extension file, included from the uic-generated form implementation.
a78048ccbdb6256da15e6b0e7e95355e480c2301nd** If you wish to add, delete or rename functions or slots use
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung** Qt Designer which will update this file, preserving your code. Create an
a78048ccbdb6256da15e6b0e7e95355e480c2301nd** init() function in place of a constructor, and a destroy() function in
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem** place of a destructor.
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem*****************************************************************************/
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * Returns the path to the item in the form of 'grandparent > parent > item'
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * using the text of the first column of every item.
a78048ccbdb6256da15e6b0e7e95355e480c2301nd // listView column numbers
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* all pages are initially valid */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd warningSpacer->changeSize( 0, 0, QSizePolicy::Expanding );
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* disable unselecting items by clicking in the unused area of the list */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* hide the header and internal columns */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd listView->setColumnWidthMode (listView_Id, QListView::Manual);
a78048ccbdb6256da15e6b0e7e95355e480c2301nd listView->setColumnWidthMode (listView_Link, QListView::Manual);
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* sort by the id column (to have pages in the desired order) */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* disable further sorting (important for network adapters) */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* set the first item selected */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd warningPixmap->setPixmap( QMessageBox::standardIcon( QMessageBox::Warning ) );
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* page title font is derived from the system font */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* setup the what's this label */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd connect (whatsThisTimer, SIGNAL (timeout()), this, SLOT (updateWhatsThis()));
a78048ccbdb6256da15e6b0e7e95355e480c2301nd whatsThisLabel->setMinimumHeight (whatsThisLabel->frameWidth() * 2 +
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * create and layout non-standard widgets
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * ----------------------------------------------------------------------
a78048ccbdb6256da15e6b0e7e95355e480c2301nd hkeHostKey = new QIHotKeyEdit( pageKeyboard, "hkeHostKey" );
a78048ccbdb6256da15e6b0e7e95355e480c2301nd QSizePolicy( QSizePolicy::Preferred, QSizePolicy::Fixed ));
a78048ccbdb6256da15e6b0e7e95355e480c2301nd tr ("Displays the key used as a Host Key in the VM window. Activate the "
a78048ccbdb6256da15e6b0e7e95355e480c2301nd "entry field and press a new Host Key. Note that alphanumeric, "
a78048ccbdb6256da15e6b0e7e95355e480c2301nd "cursor movement and editing keys cannot be used as a Host Key."));
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * setup connections and set validation for pages
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * ----------------------------------------------------------------------
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* General page */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd/// @todo (dmik) remove
a78048ccbdb6256da15e6b0e7e95355e480c2301nd// leVDIFolder->setValidator (new QRegExpValidator (QRegExp (".+"), this));
a78048ccbdb6256da15e6b0e7e95355e480c2301nd// leMachineFolder->setValidator (new QRegExpValidator (QRegExp (".+"), this));
a78048ccbdb6256da15e6b0e7e95355e480c2301nd connect (wvalGeneral, SIGNAL (validityChanged (const QIWidgetValidator *)),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* Keyboard page */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd wvalKeyboard = new QIWidgetValidator( pageKeyboard, this );
a78048ccbdb6256da15e6b0e7e95355e480c2301nd connect (wvalKeyboard, SIGNAL (validityChanged (const QIWidgetValidator *)),
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * set initial values
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * ----------------------------------------------------------------------
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* General page */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* keyboard page */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * update the Ok button state for pages with validation
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * (validityChanged() connected to enableNext() will do the job)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndbool VBoxGlobalSettingsDlg::eventFilter (QObject *object, QEvent *event)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndvoid VBoxGlobalSettingsDlg::listView_currentChanged (QListViewItem *item)
a78048ccbdb6256da15e6b0e7e95355e480c2301ndvoid VBoxGlobalSettingsDlg::enableOk (const QIWidgetValidator *wval)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* detect the overall validity */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd bool newValid = true;
a78048ccbdb6256da15e6b0e7e95355e480c2301nd warningSpacer->changeSize (0, 0, QSizePolicy::Expanding);
a78048ccbdb6256da15e6b0e7e95355e480c2301ndvoid VBoxGlobalSettingsDlg::revalidate (QIWidgetValidator * /*wval*/)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* do individual validations for pages */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* currently nothing */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * Reads global settings from the given VMGlobalSettings instance
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * and from the given CSystemProperties object.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndvoid VBoxGlobalSettingsDlg::getFrom (const CSystemProperties &props,
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* default folders */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd leMachineFolder->setText (props.GetDefaultMachineFolder());
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* proprietary GUI settings */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd// wvalXXXX->revalidate();
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * Writes global settings to the given VMGlobalSettings instance
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * and to the given CSystemProperties object.
a78048ccbdb6256da15e6b0e7e95355e480c2301ndvoid VBoxGlobalSettingsDlg::putBackTo (CSystemProperties &props,
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* default folders */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* proprietary GUI settings */
a78048ccbdb6256da15e6b0e7e95355e480c2301ndvoid VBoxGlobalSettingsDlg::updateWhatsThis (bool gotFocus /* = false */)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd if (whatsThisCandidate != NULL && whatsThisCandidate != this)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* if the given widget lacks the whats'this text, look at its parent */
a78048ccbdb6256da15e6b0e7e95355e480c2301ndvoid VBoxGlobalSettingsDlg::setWarning (const QString &warning)
a78048ccbdb6256da15e6b0e7e95355e480c2301nd warningString = QString ("<font color=red>%1</font>").arg (warning);
a78048ccbdb6256da15e6b0e7e95355e480c2301nd else if (tb == tbResetMachineFolder) le = leMachineFolder;
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * do this instead of le->setText (QString::null) to cause
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * isModified() return true
a78048ccbdb6256da15e6b0e7e95355e480c2301nd else if (tb == tbSelectMachineFolder) le = leMachineFolder;
a78048ccbdb6256da15e6b0e7e95355e480c2301nd QString homeFolder = vboxGlobal().virtualBox().GetHomeFolder();
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* set the first parent directory that exists as the current */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd#if 0 /** @todo fix this linux bustage properly */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd while (!fld.exists() && !QDir (fld.absFilePath()).isRoot());
a78048ccbdb6256da15e6b0e7e95355e480c2301nd QString folder = QDir::convertSeparators (dlg.selectedFile());
a78048ccbdb6256da15e6b0e7e95355e480c2301nd /* remove trailing slash */
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * do this instead of le->setText (folder) to cause
a78048ccbdb6256da15e6b0e7e95355e480c2301nd * isModified() return true