Update to v094r40 release.

byuu says:

Changelog:
- updated to newest hiro API
- SFC performance profile builds once again
- hiro: Qt port completed

Errata 1: the hiro/Qt target won't run tomoko just yet. Starts by
crashing inside InputSettings because hiro/Qt isn't forcefully selecting
the first item added to a ComboButton just yet. Even with a monkey patch
to get around that, the UI is incredibly unstable. Lots of geometry
calculation bugs, and a crash when you try and access certain folders in
the browser dialog. Lots of work left to be done there, sadly.

Errata 2: the hiro/Windows port has black backgrounds on all ListView
items. It's because I need to test for unassigned colors and grab the
default Windows brush colors in those cases.

Note: alternating row colors on multi-column ListView widgets is gone
now. Not a bug. May add it back later, but I'm not sure. It doesn't
interact nicely with per-cell background colors.

Things left to do:

First, I have to fix the Windows and Qt target bugs.

Next, I need to go through and revise the hiro API even more (nothing
too major.)

Next, I need to update icarus to use the new hiro API, and add support
for the SFC games database.

Next, I have to rewrite my TSV->BML cheat code tool.

Next, I need to post a final WIP of higan+icarus publicly and wait a few
days.

Next, I need to fix any bugs reported from the final WIP that I can.

Finally, I should be able to release v095.
This commit is contained in:
Tim Allen
2015-08-18 20:18:00 +10:00
parent 0271d6a12b
commit 4344b916b6
200 changed files with 7246 additions and 5659 deletions

View File

@@ -32,30 +32,30 @@ private:
//accept button clicked, or enter pressed on file name line edit
//also called by list view activate after special case handling
auto BrowserDialogWindow::accept() -> void {
auto selectedItems = view.selectedItems();
auto batched = view.batched();
if(state.action == "openFile" && selectedItems) {
string name = selectedItems.first()->cell(0)->text();
if(state.action == "openFile" && batched) {
string name = batched.first()->cell(0)->text();
if(isFolder(name)) return setPath({state.path, name});
state.response.append(string{state.path, name});
}
if(state.action == "openFiles") {
for(auto selectedItem : selectedItems) {
string name = selectedItem->cell(0)->text();
for(auto item : batched) {
string name = item->cell(0)->text();
state.response.append(string{state.path, name, isFolder(name) ? "/" : ""});
}
}
if(state.action == "openFolder" && selectedItems) {
string name = selectedItems.first()->cell(0)->text();
if(state.action == "openFolder" && batched) {
string name = batched.first()->cell(0)->text();
if(!isMatch(name)) return setPath({state.path, name});
state.response.append(string{state.path, name, "/"});
}
if(state.action == "saveFile") {
string name = fileName.text();
if(!name && selectedItems) name = selectedItems.first()->cell(0)->text();
if(!name && batched) name = batched.first()->cell(0)->text();
if(!name || isFolder(name)) return;
if(file::exists({state.path, name})) {
if(MessageDialog("File already exists; overwrite it?").question() != "Yes") return;
@@ -63,8 +63,8 @@ auto BrowserDialogWindow::accept() -> void {
state.response.append(string{state.path, name});
}
if(state.action == "selectFolder" && selectedItems) {
string name = selectedItems.first()->cell(0)->text();
if(state.action == "selectFolder" && batched) {
string name = batched.first()->cell(0)->text();
if(isFolder(name)) state.response.append(string{state.path, name, "/"});
}
@@ -162,7 +162,9 @@ auto BrowserDialogWindow::setPath(string path) -> void {
pathName.setText(state.path = path);
view.reset();
view.append(ListViewColumn().setExpandable());
view.append(ListViewHeader().setVisible(false)
.append(ListViewColumn().setExpandable())
);
auto contents = directory::icontents(path);
bool folderMode = state.action == "openFolder";

View File

@@ -9,7 +9,7 @@ auto mFixedLayout::append(sSizable sizable, Geometry geometry) -> type& {
auto mFixedLayout::minimumSize() const -> Size {
signed width = Size::Minimum, height = Size::Minimum;
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
width = max(width, sizable(n)->minimumSize().width());
height = max(height, sizable(n)->minimumSize().height());
}
@@ -30,7 +30,7 @@ auto mFixedLayout::reset() -> type& {
auto mFixedLayout::setEnabled(bool enabled) -> type& {
mLayout::setEnabled(enabled);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setEnabled(sizable(n)->enabled());
}
return *this;
@@ -38,7 +38,7 @@ auto mFixedLayout::setEnabled(bool enabled) -> type& {
auto mFixedLayout::setFont(const string& font) -> type& {
mLayout::setFont(font);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setFont(sizable(n)->font());
}
return *this;
@@ -46,7 +46,7 @@ auto mFixedLayout::setFont(const string& font) -> type& {
auto mFixedLayout::setVisible(bool visible) -> type& {
mLayout::setVisible(visible);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setVisible(sizable(n)->visible());
}
return *this;

View File

@@ -9,7 +9,7 @@ auto mHorizontalLayout::append(sSizable sizable, Size size, signed spacing) -> t
auto mHorizontalLayout::minimumSize() const -> Size {
signed width = 0, height = 0;
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
auto& child = properties[sizable(n)->offset()];
if(child.width == Size::Minimum || child.width == Size::Maximum) {
width += sizable(n)->minimumSize().width();
@@ -19,7 +19,7 @@ auto mHorizontalLayout::minimumSize() const -> Size {
if(&child != &properties.last()) width += child.spacing;
}
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
auto& child = properties[sizable(n)->offset()];
if(child.height == Size::Minimum || child.height == Size::Maximum) {
height = max(height, sizable(n)->minimumSize().height());
@@ -50,7 +50,7 @@ auto mHorizontalLayout::setAlignment(double alignment) -> type& {
auto mHorizontalLayout::setEnabled(bool enabled) -> type& {
mLayout::setEnabled(enabled);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setEnabled(sizable(n)->enabled());
}
return *this;
@@ -58,7 +58,7 @@ auto mHorizontalLayout::setEnabled(bool enabled) -> type& {
auto mHorizontalLayout::setFont(const string& font) -> type& {
mLayout::setFont(font);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setFont(sizable(n)->font());
}
return *this;
@@ -68,7 +68,7 @@ auto mHorizontalLayout::setGeometry(Geometry containerGeometry) -> type& {
mLayout::setGeometry(containerGeometry);
auto properties = this->properties;
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
auto& child = properties[sizable(n)->offset()];
if(child.width == Size::Minimum) child.width = sizable(n)->minimumSize().width();
if(child.height == Size::Minimum) child.height = sizable(n)->minimumSize().height();
@@ -95,7 +95,7 @@ auto mHorizontalLayout::setGeometry(Geometry containerGeometry) -> type& {
signed maximumHeight = 0;
for(auto& child : properties) maximumHeight = max(maximumHeight, child.height);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
auto& child = properties[sizable(n)->offset()];
signed pivot = (maximumHeight - child.height) * settings.alignment;
Geometry childGeometry = {geometry.x(), geometry.y() + pivot, child.width, child.height};
@@ -120,7 +120,7 @@ auto mHorizontalLayout::setSpacing(signed spacing) -> type& {
auto mHorizontalLayout::setVisible(bool visible) -> type& {
mLayout::setVisible(visible);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setVisible(sizable(n)->visible());
}
return *this;

View File

@@ -9,7 +9,7 @@ auto mVerticalLayout::append(sSizable sizable, Size size, signed spacing) -> typ
auto mVerticalLayout::minimumSize() const -> Size {
signed width = 0, height = 0;
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
auto& child = properties[sizable(n)->offset()];
if(child.width == Size::Minimum || child.width == Size::Maximum) {
width = max(width, sizable(n)->minimumSize().width());
@@ -18,7 +18,7 @@ auto mVerticalLayout::minimumSize() const -> Size {
width = max(width, child.width);
}
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
auto& child = properties[sizable(n)->offset()];
if(child.height == Size::Minimum || child.height == Size::Maximum) {
height += sizable(n)->minimumSize().height();
@@ -50,7 +50,7 @@ auto mVerticalLayout::setAlignment(double alignment) -> type& {
auto mVerticalLayout::setEnabled(bool enabled) -> type& {
mLayout::setEnabled(enabled);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setEnabled(sizable(n)->enabled());
}
return *this;
@@ -58,7 +58,7 @@ auto mVerticalLayout::setEnabled(bool enabled) -> type& {
auto mVerticalLayout::setFont(const string& font) -> type& {
mLayout::setFont(font);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setFont(sizable(n)->font());
}
return *this;
@@ -68,7 +68,7 @@ auto mVerticalLayout::setGeometry(Geometry containerGeometry) -> type& {
mLayout::setGeometry(containerGeometry);
auto properties = this->properties;
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
auto& child = properties[sizable(n)->offset()];
if(child.width == Size::Minimum) child.width = sizable(n)->minimumSize().width();
if(child.height == Size::Minimum) child.height = sizable(n)->minimumSize().height();
@@ -95,7 +95,7 @@ auto mVerticalLayout::setGeometry(Geometry containerGeometry) -> type& {
signed maximumWidth = 0;
for(auto& child : properties) maximumWidth = max(maximumWidth, child.width);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
auto& child = properties[sizable(n)->offset()];
signed pivot = (maximumWidth - child.width) * settings.alignment;
Geometry childGeometry = {geometry.x() + pivot, geometry.y(), child.width, child.height};
@@ -122,7 +122,7 @@ auto mVerticalLayout::setSpacing(signed spacing) -> type& {
auto mVerticalLayout::setVisible(bool visible) -> type& {
mLayout::setVisible(visible);
for(auto n : range(sizables())) {
for(auto n : range(sizableCount())) {
sizable(n)->setVisible(sizable(n)->visible());
}
return *this;