1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-05-31 22:11:31 +00:00

Scrollbars don't save their positions between openings

This commit is contained in:
Stanislav Bas 2015-06-04 23:09:40 +03:00
parent 67f04e0ba1
commit c40987338d
16 changed files with 48 additions and 0 deletions

View file

@ -130,6 +130,7 @@ namespace MWGui
mSortModel = new SortFilterItemModel(model); mSortModel = new SortFilterItemModel(model);
mSortModel->setFilter(SortFilterItemModel::Filter_OnlyIngredients); mSortModel->setFilter(SortFilterItemModel::Filter_OnlyIngredients);
mItemView->setModel (mSortModel); mItemView->setModel (mSortModel);
mItemView->resetScrollBars();
mNameEdit->setCaption(""); mNameEdit->setCaption("");

View file

@ -114,6 +114,7 @@ void CompanionWindow::open(const MWWorld::Ptr& npc)
mModel = new CompanionItemModel(npc); mModel = new CompanionItemModel(npc);
mSortModel = new SortFilterItemModel(mModel); mSortModel = new SortFilterItemModel(mModel);
mItemView->setModel(mSortModel); mItemView->setModel(mSortModel);
mItemView->resetScrollBars();
setTitle(npc.getClass().getName(npc)); setTitle(npc.getClass().getName(npc));
} }

View file

@ -151,6 +151,7 @@ namespace MWGui
mSortModel = new SortFilterItemModel(mModel); mSortModel = new SortFilterItemModel(mModel);
mItemView->setModel (mSortModel); mItemView->setModel (mSortModel);
mItemView->resetScrollBars();
MWBase::Environment::get().getWindowManager()->setKeyFocusWidget(mCloseButton); MWBase::Environment::get().getWindowManager()->setKeyFocusWidget(mCloseButton);

View file

@ -39,6 +39,7 @@ namespace MWGui
mModel = new InventoryItemModel(container); mModel = new InventoryItemModel(container);
mSortModel = new SortFilterItemModel(mModel); mSortModel = new SortFilterItemModel(mModel);
mItemView->setModel(mSortModel); mItemView->setModel(mSortModel);
mItemView->resetScrollBars();
} }
void ItemSelectionDialog::setCategory(int category) void ItemSelectionDialog::setCategory(int category)

View file

@ -128,6 +128,11 @@ void ItemView::update()
layoutWidgets(); layoutWidgets();
} }
void ItemView::resetScrollBars()
{
mScrollView->setViewOffset(MyGUI::IntPoint(0, 0));
}
void ItemView::onSelectedItem(MyGUI::Widget *sender) void ItemView::onSelectedItem(MyGUI::Widget *sender)
{ {
ItemModel::ModelIndex index = (*sender->getUserData<std::pair<ItemModel::ModelIndex, ItemModel*> >()).first; ItemModel::ModelIndex index = (*sender->getUserData<std::pair<ItemModel::ModelIndex, ItemModel*> >()).first;

View file

@ -30,6 +30,8 @@ namespace MWGui
void update(); void update();
void resetScrollBars();
private: private:
virtual void initialiseOverride(); virtual void initialiseOverride();

View file

@ -114,6 +114,8 @@ void MerchantRepair::onMouseWheel(MyGUI::Widget* _sender, int _rel)
void MerchantRepair::open() void MerchantRepair::open()
{ {
center(); center();
// Reset scrollbars
mList->setViewOffset(MyGUI::IntPoint(0, 0));
} }
void MerchantRepair::exit() void MerchantRepair::exit()

View file

@ -548,6 +548,7 @@ namespace MWGui
WindowModal::open(); WindowModal::open();
mMagicList->setModel(new SpellModel(MWBase::Environment::get().getWorld()->getPlayerPtr())); mMagicList->setModel(new SpellModel(MWBase::Environment::get().getWorld()->getPlayerPtr()));
mMagicList->resetScrollbars();
} }
void MagicSelectionDialog::onModelIndexSelected(SpellModel::ModelIndex index) void MagicSelectionDialog::onModelIndexSelected(SpellModel::ModelIndex index)

View file

@ -44,6 +44,8 @@ Recharge::Recharge()
void Recharge::open() void Recharge::open()
{ {
center(); center();
// Reset scrollbars
mView->setViewOffset(MyGUI::IntPoint(0, 0));
} }
void Recharge::exit() void Recharge::exit()

View file

@ -36,6 +36,8 @@ Repair::Repair()
void Repair::open() void Repair::open()
{ {
center(); center();
// Reset scrollbars
mRepairView->setViewOffset(MyGUI::IntPoint(0, 0));
} }
void Repair::exit() void Repair::exit()

View file

@ -8,6 +8,7 @@
#include <MyGUI_ListBox.h> #include <MyGUI_ListBox.h>
#include <MyGUI_ScrollView.h> #include <MyGUI_ScrollView.h>
#include <MyGUI_Gui.h> #include <MyGUI_Gui.h>
#include <MyGUI_TabControl.h>
#include <boost/algorithm/string.hpp> #include <boost/algorithm/string.hpp>
#include <boost/math/common_factor_rt.hpp> #include <boost/math/common_factor_rt.hpp>
@ -170,6 +171,7 @@ namespace MWGui
setTitle("#{sOptions}"); setTitle("#{sOptions}");
getWidget(mSettingsTab, "SettingsTab");
getWidget(mOkButton, "OkButton"); getWidget(mOkButton, "OkButton");
getWidget(mResolutionList, "ResolutionList"); getWidget(mResolutionList, "ResolutionList");
getWidget(mFullscreenButton, "FullscreenButton"); getWidget(mFullscreenButton, "FullscreenButton");
@ -208,6 +210,7 @@ namespace MWGui
mMainWidget->castType<MyGUI::Window>()->eventWindowChangeCoord += MyGUI::newDelegate(this, &SettingsWindow::onWindowResize); mMainWidget->castType<MyGUI::Window>()->eventWindowChangeCoord += MyGUI::newDelegate(this, &SettingsWindow::onWindowResize);
mSettingsTab->eventTabChangeSelect += MyGUI::newDelegate(this, &SettingsWindow::onTabChanged);
mOkButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onOkButtonClicked); mOkButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onOkButtonClicked);
mShaderModeButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onShaderModeToggled); mShaderModeButton->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onShaderModeToggled);
mTextureFilteringButton->eventComboChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onTextureFilteringChanged); mTextureFilteringButton->eventComboChangePosition += MyGUI::newDelegate(this, &SettingsWindow::onTextureFilteringChanged);
@ -275,6 +278,11 @@ namespace MWGui
mControllerSwitch->setStateSelected(false); mControllerSwitch->setStateSelected(false);
} }
void SettingsWindow::onTabChanged(MyGUI::TabControl* /*_sender*/, size_t /*index*/)
{
resetScrollbars();
}
void SettingsWindow::onOkButtonClicked(MyGUI::Widget* _sender) void SettingsWindow::onOkButtonClicked(MyGUI::Widget* _sender)
{ {
exit(); exit();
@ -480,6 +488,7 @@ namespace MWGui
mKeyboardSwitch->setStateSelected(true); mKeyboardSwitch->setStateSelected(true);
mControllerSwitch->setStateSelected(false); mControllerSwitch->setStateSelected(false);
updateControlsBox(); updateControlsBox();
resetScrollbars();
} }
void SettingsWindow::onControllerSwitchClicked(MyGUI::Widget* _sender) void SettingsWindow::onControllerSwitchClicked(MyGUI::Widget* _sender)
@ -490,6 +499,7 @@ namespace MWGui
mKeyboardSwitch->setStateSelected(false); mKeyboardSwitch->setStateSelected(false);
mControllerSwitch->setStateSelected(true); mControllerSwitch->setStateSelected(true);
updateControlsBox(); updateControlsBox();
resetScrollbars();
} }
void SettingsWindow::updateControlsBox() void SettingsWindow::updateControlsBox()
@ -584,6 +594,7 @@ namespace MWGui
void SettingsWindow::open() void SettingsWindow::open()
{ {
updateControlsBox (); updateControlsBox ();
resetScrollbars();
} }
void SettingsWindow::exit() void SettingsWindow::exit()
@ -595,4 +606,10 @@ namespace MWGui
{ {
updateControlsBox(); updateControlsBox();
} }
void SettingsWindow::resetScrollbars()
{
mResolutionList->setScrollPosition(0);
mControlsBox->setViewOffset(MyGUI::IntPoint(0, 0));
}
} }

View file

@ -22,6 +22,7 @@ namespace MWGui
void updateControlsBox(); void updateControlsBox();
protected: protected:
MyGUI::TabControl* mSettingsTab;
MyGUI::Button* mOkButton; MyGUI::Button* mOkButton;
// graphics // graphics
@ -50,6 +51,7 @@ namespace MWGui
MyGUI::Button* mControllerSwitch; MyGUI::Button* mControllerSwitch;
bool mKeyboardMode; //if true, setting up the keyboard. Otherwise, it's controller bool mKeyboardMode; //if true, setting up the keyboard. Otherwise, it's controller
void onTabChanged(MyGUI::TabControl* _sender, size_t index);
void onOkButtonClicked(MyGUI::Widget* _sender); void onOkButtonClicked(MyGUI::Widget* _sender);
void onFpsToggled(MyGUI::Widget* _sender); void onFpsToggled(MyGUI::Widget* _sender);
void onTextureFilteringChanged(MyGUI::ComboBox* _sender, size_t pos); void onTextureFilteringChanged(MyGUI::ComboBox* _sender, size_t pos);
@ -74,6 +76,9 @@ namespace MWGui
void apply(); void apply();
void configureWidgets(MyGUI::Widget* widget); void configureWidgets(MyGUI::Widget* widget);
private:
void resetScrollbars();
}; };
} }

View file

@ -551,6 +551,7 @@ namespace MWGui
++i; ++i;
} }
mAvailableEffectsList->adjustSize (); mAvailableEffectsList->adjustSize ();
mAvailableEffectsList->scrollToTop();
for (std::vector<short>::const_iterator it = knownEffects.begin(); it != knownEffects.end(); ++it) for (std::vector<short>::const_iterator it = knownEffects.begin(); it != knownEffects.end(); ++it)
{ {

View file

@ -311,4 +311,8 @@ namespace MWGui
mScrollView->setViewOffset(MyGUI::IntPoint(0, static_cast<int>(mScrollView->getViewOffset().top + _rel*0.3f))); mScrollView->setViewOffset(MyGUI::IntPoint(0, static_cast<int>(mScrollView->getViewOffset().top + _rel*0.3f)));
} }
void SpellView::resetScrollbars()
{
mScrollView->setViewOffset(MyGUI::IntPoint(0, 0));
}
} }

View file

@ -51,6 +51,8 @@ namespace MWGui
virtual void setSize(const MyGUI::IntSize& _value); virtual void setSize(const MyGUI::IntSize& _value);
virtual void setCoord(const MyGUI::IntCoord& _value); virtual void setCoord(const MyGUI::IntCoord& _value);
void resetScrollbars();
private: private:
MyGUI::ScrollView* mScrollView; MyGUI::ScrollView* mScrollView;

View file

@ -136,6 +136,7 @@ namespace MWGui
mTradeModel = new TradeItemModel(new ContainerItemModel(itemSources, worldItems), mPtr); mTradeModel = new TradeItemModel(new ContainerItemModel(itemSources, worldItems), mPtr);
mSortModel = new SortFilterItemModel(mTradeModel); mSortModel = new SortFilterItemModel(mTradeModel);
mItemView->setModel (mSortModel); mItemView->setModel (mSortModel);
mItemView->resetScrollBars();
updateLabels(); updateLabels();