diff --git a/project/vc2008/vba-m.vcproj b/project/vc2008/vba-m.vcproj index 8beba5dc..3c2bb519 100644 --- a/project/vc2008/vba-m.vcproj +++ b/project/vc2008/vba-m.vcproj @@ -29,7 +29,7 @@ CleanCommandLine="nmake distclean rmdir /S /Q debug rmdir /S /Q release" Output="$(OutDir)\VisualBoyAdvance.exe" PreprocessorDefinitions="WIN32;_DEBUG" - IncludeSearchPath=""$(ProjectDir)";D:\qt\4.3.3\include" + IncludeSearchPath=""$(ProjectDir)"" ForcedIncludes="" AssemblySearchPath="" ForcedUsingAssemblies="" @@ -49,7 +49,7 @@ CleanCommandLine="nmake distclean rmdir /S /Q debug rmdir /S /Q release" Output="$(OutDir)\VisualBoyAdvance.exe" PreprocessorDefinitions="WIN32;NDEBUG" - IncludeSearchPath=""$(ProjectDir)";D:\qt\4.3.3\include" + IncludeSearchPath=""$(ProjectDir)"" ForcedIncludes="" AssemblySearchPath="" ForcedUsingAssemblies="" @@ -108,15 +108,43 @@ + + + + + + + + + + + + + + - - #include "MainOptions.h" +#include "MainOptions.h" VideoOptionsPage::VideoOptionsPage(QWidget *parent) - : QWidget(parent) - { -QGroupBox *RenderGroup = new QGroupBox(tr("Renderer Selection")); + : QWidget(parent) +{ + QGroupBox *RenderGroup = new QGroupBox(tr("Renderer Selection")); + QLabel *RenderLabel = new QLabel(tr("Renderer:")); + QComboBox *RenderCombo = new QComboBox; + RenderCombo->addItem(tr("OGL")); + RenderCombo->addItem(tr("D3D")); + RenderCombo->addItem(tr("QPainter")); - QLabel *RenderLabel = new QLabel(tr("Renderer:")); - QComboBox *RenderCombo = new QComboBox; - RenderCombo->addItem(tr("OGL")); - RenderCombo->addItem(tr("D3D")); - RenderCombo->addItem(tr("QPainter")); + QHBoxLayout *RenderLayout = new QHBoxLayout; + RenderLayout->addWidget(RenderLabel); + RenderLayout->addWidget(RenderCombo); - QHBoxLayout *RenderLayout = new QHBoxLayout; - RenderLayout->addWidget(RenderLabel); - RenderLayout->addWidget(RenderCombo); + QVBoxLayout *configLayout = new QVBoxLayout; + configLayout->addLayout(RenderLayout); + RenderGroup->setLayout(configLayout); - QVBoxLayout *configLayout = new QVBoxLayout; - configLayout->addLayout(RenderLayout); - RenderGroup->setLayout(configLayout); + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(RenderGroup); + mainLayout->addStretch(1); + setLayout(mainLayout); +} - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(RenderGroup); - mainLayout->addStretch(1); - setLayout(mainLayout); - } InputOptionsPage::InputOptionsPage(QWidget *parent) - : QWidget(parent) - { -QGroupBox *InputGroup = new QGroupBox(tr("Input Keys")); + : QWidget(parent) +{ + QGroupBox *InputGroup = new QGroupBox(tr("Input Keys")); - QLabel *StartLabel = new QLabel(tr("Start:")); - QLineEdit *StartEdit = new QLineEdit; - QLabel *SelectLabel = new QLabel(tr("Select:")); - QLineEdit *SelectEdit = new QLineEdit; - QLabel *UpLabel = new QLabel(tr("Up:")); - QLineEdit *UpEdit = new QLineEdit; - QLabel *DownLabel = new QLabel(tr("Down:")); - QLineEdit *DownEdit = new QLineEdit; - QLabel *LeftLabel = new QLabel(tr("Left:")); - QLineEdit *LeftEdit = new QLineEdit; - QLabel *RightLabel = new QLabel(tr("Right:")); - QLineEdit *RightEdit = new QLineEdit; - QLabel *ALabel = new QLabel(tr("A:")); - QLineEdit *AEdit = new QLineEdit; - QLabel *BLabel = new QLabel(tr("B:")); - QLineEdit *BEdit = new QLineEdit; - QLabel *LLabel = new QLabel(tr("L:")); - QLineEdit *LEdit = new QLineEdit; - QLabel *RLabel = new QLabel(tr("R:")); - QLineEdit *REdit = new QLineEdit; - QLabel *GSLabel = new QLabel(tr("Gameshark:")); - QLineEdit *GSEdit = new QLineEdit; - QLabel *SpeedUpLabel = new QLabel(tr("Speed Up:")); - QLineEdit *SpeedUpEdit = new QLineEdit; - QLabel *ScreenshotLabel = new QLabel(tr("Screenshot:")); - QLineEdit *ScreenshotEdit = new QLineEdit; - QCheckBox *MultipleAssignCheckBox = new QCheckBox(tr("Multiple key assignments")); + QLabel *StartLabel = new QLabel(tr("Start:")); + QLineEdit *StartEdit = new QLineEdit; - + QLabel *SelectLabel = new QLabel(tr("Select:")); + QLineEdit *SelectEdit = new QLineEdit; - QGridLayout *InputLayout = new QGridLayout; - InputLayout->addWidget(StartLabel, 0, 0); - InputLayout->addWidget(StartEdit, 0, 1); - InputLayout->addWidget(SelectLabel, 1, 0); - InputLayout->addWidget(SelectEdit, 1, 1); - InputLayout->addWidget(UpLabel, 2, 0); - InputLayout->addWidget(UpEdit, 2, 1); - InputLayout->addWidget(DownLabel, 3, 0); - InputLayout->addWidget(DownEdit, 3, 1); - InputLayout->addWidget(LeftLabel, 4, 0); - InputLayout->addWidget(LeftEdit, 4, 1); - InputLayout->addWidget(RightLabel, 5, 0); - InputLayout->addWidget(RightEdit, 5, 1); - InputLayout->addWidget(ALabel, 6, 0); - InputLayout->addWidget(AEdit, 6, 1); - InputLayout->addWidget(BLabel, 7, 0); - InputLayout->addWidget(BEdit, 7, 1); - InputLayout->addWidget(LLabel, 8, 0); - InputLayout->addWidget(LEdit, 8, 1); - InputLayout->addWidget(RLabel, 9, 0); - InputLayout->addWidget(REdit, 9, 1); - InputLayout->addWidget(GSLabel, 0, 2); - InputLayout->addWidget(GSEdit, 0, 3); - InputLayout->addWidget(SpeedUpLabel, 1, 2); - InputLayout->addWidget(SpeedUpEdit, 1, 3); - InputLayout->addWidget(ScreenshotLabel, 2, 2); - InputLayout->addWidget(ScreenshotEdit, 2, 3); - InputLayout->addWidget(MultipleAssignCheckBox, 3, 2); + QLabel *UpLabel = new QLabel(tr("Up:")); + QLineEdit *UpEdit = new QLineEdit; + + QLabel *DownLabel = new QLabel(tr("Down:")); + QLineEdit *DownEdit = new QLineEdit; + + QLabel *LeftLabel = new QLabel(tr("Left:")); + QLineEdit *LeftEdit = new QLineEdit; + + QLabel *RightLabel = new QLabel(tr("Right:")); + QLineEdit *RightEdit = new QLineEdit; + + QLabel *ALabel = new QLabel(tr("A:")); + QLineEdit *AEdit = new QLineEdit; + + QLabel *BLabel = new QLabel(tr("B:")); + QLineEdit *BEdit = new QLineEdit; + + QLabel *LLabel = new QLabel(tr("L:")); + QLineEdit *LEdit = new QLineEdit; + + QLabel *RLabel = new QLabel(tr("R:")); + QLineEdit *REdit = new QLineEdit; + + QLabel *GSLabel = new QLabel(tr("Gameshark:")); + QLineEdit *GSEdit = new QLineEdit; + + QLabel *SpeedUpLabel = new QLabel(tr("Speed Up:")); + QLineEdit *SpeedUpEdit = new QLineEdit; + + QLabel *ScreenshotLabel = new QLabel(tr("Screenshot:")); + QLineEdit *ScreenshotEdit = new QLineEdit; + + QCheckBox *MultipleAssignCheckBox = new QCheckBox(tr("Multiple key assignments")); - InputGroup->setLayout(InputLayout); + QGridLayout *InputLayout = new QGridLayout; + InputLayout->addWidget(StartLabel, 0, 0); + InputLayout->addWidget(StartEdit, 0, 1); + InputLayout->addWidget(SelectLabel, 1, 0); + InputLayout->addWidget(SelectEdit, 1, 1); + InputLayout->addWidget(UpLabel, 2, 0); + InputLayout->addWidget(UpEdit, 2, 1); + InputLayout->addWidget(DownLabel, 3, 0); + InputLayout->addWidget(DownEdit, 3, 1); + InputLayout->addWidget(LeftLabel, 4, 0); + InputLayout->addWidget(LeftEdit, 4, 1); + InputLayout->addWidget(RightLabel, 5, 0); + InputLayout->addWidget(RightEdit, 5, 1); + InputLayout->addWidget(ALabel, 6, 0); + InputLayout->addWidget(AEdit, 6, 1); + InputLayout->addWidget(BLabel, 7, 0); + InputLayout->addWidget(BEdit, 7, 1); + InputLayout->addWidget(LLabel, 8, 0); + InputLayout->addWidget(LEdit, 8, 1); + InputLayout->addWidget(RLabel, 9, 0); + InputLayout->addWidget(REdit, 9, 1); + InputLayout->addWidget(GSLabel, 0, 2); + InputLayout->addWidget(GSEdit, 0, 3); + InputLayout->addWidget(SpeedUpLabel, 1, 2); + InputLayout->addWidget(SpeedUpEdit, 1, 3); + InputLayout->addWidget(ScreenshotLabel, 2, 2); + InputLayout->addWidget(ScreenshotEdit, 2, 3); + InputLayout->addWidget(MultipleAssignCheckBox, 3, 2); - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(InputGroup); - mainLayout->addSpacing(12); - mainLayout->addStretch(1); - setLayout(mainLayout); - } + + InputGroup->setLayout(InputLayout); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(InputGroup); + mainLayout->addSpacing(12); + mainLayout->addStretch(1); + setLayout(mainLayout); + +} + SoundOptionsPage::SoundOptionsPage(QWidget *parent) - : QWidget(parent) - { - - } - +: QWidget(parent) +{ +} diff --git a/src/qt/MainOptions.h b/src/qt/MainOptions.h index f4aec3f7..98c6a94b 100644 --- a/src/qt/MainOptions.h +++ b/src/qt/MainOptions.h @@ -16,29 +16,27 @@ // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - #ifndef MAINOPTIONS_H #define MAINOPTIONS_H - #include +#include "precompile.h" - class VideoOptionsPage : public QWidget - { - public: - VideoOptionsPage(QWidget *parent = 0); - }; +class VideoOptionsPage : public QWidget +{ +public: + VideoOptionsPage(QWidget *parent = 0); +}; - class InputOptionsPage : public QWidget - { - public: - InputOptionsPage(QWidget *parent = 0); - }; +class InputOptionsPage : public QWidget +{ +public: + InputOptionsPage(QWidget *parent = 0); +}; - class SoundOptionsPage : public QWidget - { - public: - SoundOptionsPage(QWidget *parent = 0); - }; +class SoundOptionsPage : public QWidget +{ +public: + SoundOptionsPage(QWidget *parent = 0); +}; - #endif \ No newline at end of file +#endif diff --git a/src/qt/MainWnd.cpp b/src/qt/MainWnd.cpp index 4093acf1..3eccc3ca 100644 --- a/src/qt/MainWnd.cpp +++ b/src/qt/MainWnd.cpp @@ -96,13 +96,13 @@ void MainWnd::createMenus() // File menu fileMenu = menuBar()->addMenu( tr( "&File" ) ); - fileMenu->addAction( tr( "Open ROM" ), this, SLOT( showOpenROM() ) ); + fileMenu->addAction( tr( "Open ROM" ), this, SLOT( showOpenROM() ) ); fileMenu->addAction( tr( "Exit" ), this, SLOT( close() ) ); // Settings menu settingsMenu = menuBar()->addMenu( tr( "&Settings" ) ); - settingsMenu->addAction( tr( "Main options..." ), this, SLOT( showMainOptions() )); + settingsMenu->addAction( tr( "Main options..." ), this, SLOT( showMainOptions() ) ); settingsMenu->addAction( tr( "Select language..." ), this, SLOT( selectLanguage() ) ); settingsMenu->addAction( enableTranslationAct ); diff --git a/src/qt/MainWnd.h b/src/qt/MainWnd.h index dd26dc6e..ab8c3f48 100644 --- a/src/qt/MainWnd.h +++ b/src/qt/MainWnd.h @@ -53,8 +53,8 @@ private slots: void showAbout(); void showAboutOpenGL(); void showAboutQt(); - void showOpenROM(); - void showMainOptions(); + void showOpenROM(); + void showMainOptions(); }; #endif // #ifndef MAINWND_H diff --git a/src/qt/configdialog.cpp b/src/qt/configdialog.cpp index 92c6952e..e43bb351 100644 --- a/src/qt/configdialog.cpp +++ b/src/qt/configdialog.cpp @@ -15,80 +15,82 @@ // along with this program; if not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - #include - #include "configdialog.h" - #include "MainOptions.h" +#include "configdialog.h" - ConfigDialog::ConfigDialog() - { - contentsWidget = new QListWidget; - contentsWidget->setViewMode(QListView::IconMode); - contentsWidget->setIconSize(QSize(64, 64)); - contentsWidget->setMovement(QListView::Static); - contentsWidget->setResizeMode(QListView::Adjust); - contentsWidget->setMaximumWidth(130); - contentsWidget->setSpacing(12); +#include "MainOptions.h" - pagesWidget = new QStackedWidget; - pagesWidget->addWidget(new VideoOptionsPage); - pagesWidget->addWidget(new SoundOptionsPage); - pagesWidget->addWidget(new InputOptionsPage); +ConfigDialog::ConfigDialog() +{ + // close button + QPushButton *closeButton = new QPushButton( tr( "Close" ) ); + closeButton->setMaximumSize( closeButton->sizeHint() ); + connect( closeButton, SIGNAL( clicked() ), this, SLOT( close() ) ); - QPushButton *closeButton = new QPushButton(tr("Close")); + // settings + pagesWidget = new QStackedWidget; + pagesWidget->addWidget( new VideoOptionsPage( pagesWidget ) ); + pagesWidget->addWidget( new SoundOptionsPage( pagesWidget ) ); + pagesWidget->addWidget( new InputOptionsPage( pagesWidget ) ); - createIcons(); - contentsWidget->setCurrentRow(0); + // item box + contentsWidget = new QListWidget; + contentsWidget->setViewMode( QListView::IconMode ); + contentsWidget->setIconSize( QSize( 64, 64 ) ); + contentsWidget->setUniformItemSizes( true ); // enable optimizations + contentsWidget->setMovement( QListView::Static ); + contentsWidget->setResizeMode( QListView::Adjust ); + contentsWidget->setFlow( QListView::TopToBottom ); + contentsWidget->setSpacing( 8 ); + createIcons(); + contentsWidget->setCurrentRow( 0 ); + // set optimal width + int width = contentsWidget->sizeHintForColumn( 0 ) + 16; // not 100% accurate yet! + contentsWidget->setMinimumWidth( width ); + contentsWidget->setMaximumWidth( width ); - connect(closeButton, SIGNAL(clicked()), this, SLOT(close())); + // set up layout + QVBoxLayout *verticalLayout = new QVBoxLayout; + verticalLayout->addWidget( pagesWidget ); + verticalLayout->addWidget( closeButton, 0, Qt::AlignRight ); - QHBoxLayout *horizontalLayout = new QHBoxLayout; - horizontalLayout->addWidget(contentsWidget); - horizontalLayout->addWidget(pagesWidget, 1); + QHBoxLayout *horizontalLayout = new QHBoxLayout( this ); + horizontalLayout->addWidget( contentsWidget ); + horizontalLayout->addLayout( verticalLayout ); - QHBoxLayout *buttonsLayout = new QHBoxLayout; - buttonsLayout->addStretch(1); - buttonsLayout->addWidget(closeButton); - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addLayout(horizontalLayout); - mainLayout->addStretch(1); - mainLayout->addSpacing(12); - mainLayout->addLayout(buttonsLayout); - setLayout(mainLayout); + setWindowTitle(tr("Options")); +} - setWindowTitle(tr("VBA-M Options")); - } +void ConfigDialog::createIcons() +{ + QListWidgetItem *VideoButton = new QListWidgetItem(contentsWidget); // automatically inserts item into parent + VideoButton->setIcon(QIcon(":/resources/video.png")); + VideoButton->setText(tr("Video")); + VideoButton->setTextAlignment(Qt::AlignHCenter); + VideoButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - void ConfigDialog::createIcons() - { - QListWidgetItem *VideoButton = new QListWidgetItem(contentsWidget); - VideoButton->setIcon(QIcon(":/resources/video.png")); - VideoButton->setText(tr("Video")); - VideoButton->setTextAlignment(Qt::AlignHCenter); - VideoButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + QListWidgetItem *SoundButton = new QListWidgetItem(contentsWidget); + SoundButton->setIcon(QIcon(":/resources/sound.png")); + SoundButton->setText(tr("Sound")); + SoundButton->setTextAlignment(Qt::AlignHCenter); + SoundButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - QListWidgetItem *SoundButton = new QListWidgetItem(contentsWidget); - SoundButton->setIcon(QIcon(":/resources/sound.png")); - SoundButton->setText(tr("Sound")); - SoundButton->setTextAlignment(Qt::AlignHCenter); - SoundButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + QListWidgetItem *InputButton = new QListWidgetItem(contentsWidget); + InputButton->setIcon(QIcon(":/resources/input.png")); + InputButton->setText(tr("Input")); + InputButton->setTextAlignment(Qt::AlignHCenter); + InputButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - QListWidgetItem *InputButton = new QListWidgetItem(contentsWidget); - InputButton->setIcon(QIcon(":/resources/input.png")); - InputButton->setText(tr("Input")); - InputButton->setTextAlignment(Qt::AlignHCenter); - InputButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); + connect(contentsWidget, + SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), + this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*))); +} - connect(contentsWidget, - SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), - this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*))); - } +void ConfigDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous) +{ + if (!current) + current = previous; - void ConfigDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous) - { - if (!current) - current = previous; - - pagesWidget->setCurrentIndex(contentsWidget->row(current)); - } \ No newline at end of file + pagesWidget->setCurrentIndex(contentsWidget->row(current)); +} diff --git a/src/qt/configdialog.h b/src/qt/configdialog.h index 3fea6481..82cec21c 100644 --- a/src/qt/configdialog.h +++ b/src/qt/configdialog.h @@ -15,30 +15,27 @@ // along with this program; if not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - #ifndef CONFIGDIALOG_H - #define CONFIGDIALOG_H - #include +#ifndef CONFIGDIALOG_H +#define CONFIGDIALOG_H - class QListWidget; - class QListWidgetItem; - class QStackedWidget; +#include "precompile.h" - class ConfigDialog : public QDialog - { - Q_OBJECT +class ConfigDialog : public QDialog +{ + Q_OBJECT - public: - ConfigDialog(); +public: + ConfigDialog(); + +public slots: + void changePage( QListWidgetItem *current, QListWidgetItem *previous ); - public slots: - void changePage(QListWidgetItem *current, QListWidgetItem *previous); +private: + void createIcons(); + + QListWidget *contentsWidget; + QStackedWidget *pagesWidget; +}; - private: - void createIcons(); - - QListWidget *contentsWidget; - QStackedWidget *pagesWidget; - }; - - #endif \ No newline at end of file +#endif