Update about/status bar copyright info

This commit is contained in:
David Capello 2021-01-15 14:46:45 -03:00
parent b1b201a22c
commit 32106512dc
10 changed files with 130 additions and 45 deletions

View File

@ -50,12 +50,14 @@ You can ask for help in:
## Authors
[Igara Studio](https://www.igarastudio.com/) is developing Aseprite:
Aseprite is being developed by [Igara Studio](https://www.igarastudio.com/):
* [David Capello](https://davidcapello.com/): Lead developer, fixing
issues, new features, and user support.
* [Gaspar Capello](https://github.com/Gasparoken): Developer, fixing
issues and new features.
* [David Capello](https://davidcapello.com/): Lead developer,
bug fixing & new features in desktop & web, and user support.
* [Gaspar Capello](https://github.com/Gasparoken): Developer,
bug fixing & new features in desktop, and user support.
* [Martin Capello](https://github.com/martincapello): Developer,
new store website.
## Credits

View File

@ -1,31 +1,33 @@
<!-- Aseprite -->
<!-- Copyright (C) 2018-2019 Igara Studio S.A. -->
<!-- Copyright (C) 2018-2021 Igara Studio S.A. -->
<!-- Copyright (C) 2018 David Capello -->
<gui i18nwarnings="false">
<window id="about" text="About Aseprite">
<vbox>
<label text="" id="title" />
<label text="Animated sprite editor &amp;&amp; pixel art tool" />
<separator text="Authors:" horizontal="true" />
<separator text="Developers:" horizontal="true" />
<grid columns="2">
<link text="David Capello" url="https://twitter.com/davidcapello" />
<label text="- Lead developer, graphics &amp;&amp; maintainer" />
<label text="- Lead developer, new features &amp;&amp; bug fixing in desktop &amp;&amp; web" />
<link text="Gaspar Capello" url="https://twitter.com/Gasparoken" />
<label text="- Programmer, bug fixing" />
<label text="- Developer, new features &amp;&amp; bug fixing in desktop" />
<link text="Martin Capello" url="https://twitter.com/martincapell0" />
<label text="- Developer, new store website" />
<separator text="Contributors:" horizontal="true" cell_hspan="2" />
<link text="Ilija Melentijevic" url="https://ilkke.net/" />
<label text="- Default skin &amp;&amp; graphics introduced in v0.8" />
<hbox cell_hspan="2">
<link text="Other Contributors" url="https://www.aseprite.org/contributors/" />
<link text="Other Contributors" url="https://www.aseprite.org/contributors/" />
<label text="&amp;&amp;" />
<link text="Third-Party Projects" url="" id="licenses" />
</hbox>
</grid>
<separator horizontal="true" />
<hbox>
<label text="Copyright (C) 2001-2020" />
<label text="Copyright (C) 2001-2021" />
<link text="Igara Studio S.A." url="https://www.igarastudio.com/" />
</hbox>
<link text="https://www.aseprite.org/" url="https://www.aseprite.org/" />

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2021 Igara Studio S.A.
// Copyright (C) 2016-2017 David Capello
//
// This program is distributed under the terms of
@ -16,6 +16,7 @@
#include "app/ui/main_window.h"
#include "app/ui/separator_in_view.h"
#include "app/ui/skin/skin_theme.h"
#include "app/ui/status_bar.h"
#include "app/ui/workspace.h"
#include "base/file_handle.h"
#include "base/fs.h"
@ -567,7 +568,8 @@ WorkspaceView* BrowserView::cloneWorkspaceView()
void BrowserView::onWorkspaceViewSelected()
{
// Do nothing
if (auto statusBar = StatusBar::instance())
statusBar->clearText();
}
bool BrowserView::onCloseView(Workspace* workspace, bool quitting)

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2018-2021 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -241,7 +241,8 @@ WorkspaceView* DocView::cloneWorkspaceView()
void DocView::onWorkspaceViewSelected()
{
StatusBar::instance()->showDefaultText(m_document);
if (auto statusBar = StatusBar::instance())
statusBar->showDefaultText(m_document);
}
void DocView::onClonedFrom(WorkspaceView* from)

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2018-2021 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -264,9 +264,19 @@ void MainWindow::showHome()
m_tabsBar->selectTab(m_homeView);
}
bool MainWindow::isHomeSelected()
void MainWindow::showDefaultStatusBar()
{
return (m_tabsBar->getSelectedTab() == m_homeView && m_homeView);
if (DocView* docView = getDocView())
m_statusBar->showDefaultText(docView->document());
else if (isHomeSelected())
m_statusBar->showAbout();
else
m_statusBar->clearText();
}
bool MainWindow::isHomeSelected() const
{
return (m_homeView && m_workspace->activeView() == m_homeView);
}
void MainWindow::showBrowser(const std::string& filename)
@ -476,12 +486,12 @@ void MainWindow::onTabsContainerDoubleClicked(Tabs* tabs)
void MainWindow::onMouseOverTab(Tabs* tabs, TabView* tabView)
{
// Note: tabView can be NULL
if (DocView* docView = dynamic_cast<DocView*>(tabView)) {
if (DocView* docView = dynamic_cast<DocView*>(tabView))
m_statusBar->showDefaultText(docView->document());
}
else {
else if (tabView)
m_statusBar->setStatusText(0, tabView->getTabText());
else
m_statusBar->showDefaultText();
}
}
void MainWindow::onMouseLeaveTab()

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2019 Igara Studio S.A.
// Copyright (C) 2018-2021 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -71,9 +71,10 @@ namespace app {
void showNotification(INotificationDelegate* del);
void showHomeOnOpen();
void showHome();
bool isHomeSelected();
void showDefaultStatusBar();
void showDevConsole();
void showBrowser(const std::string& filename);
bool isHomeSelected() const;
Mode getMode() const { return m_mode; }
void setMode(Mode mode);

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2018-2021 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -62,6 +62,40 @@ using namespace gfx;
using namespace ui;
using namespace doc;
class StatusBar::AboutStatusBar : public HBox {
public:
AboutStatusBar()
: m_label(fmt::format("{} {} by ", get_app_name(), get_app_version()))
, m_link("", "Igara Studio")
{
m_link.Click.connect(
[]{
Command* cmd = Commands::instance()->byId(CommandId::About());
UIContext::instance()->executeCommandFromMenuOrShortcut(cmd);
});
addChild(new BoxFiller);
addChild(&m_label);
addChild(&m_link);
addChild(new BoxFiller);
InitTheme.connect(
[this]{
SkinTheme* theme = static_cast<SkinTheme*>(this->theme());
ui::Style* style = theme->styles.workspaceLink();
noBorderNoChildSpacing();
m_label.setStyle(style);
m_link.setStyle(style);
m_label.noBorderNoChildSpacing();
m_link.noBorderNoChildSpacing();
});
initTheme();
}
ui::Label m_label;
ui::LinkLabel m_link;
};
class StatusBar::Indicators : public HBox {
class Indicator : public Widget {
@ -543,6 +577,7 @@ StatusBar* StatusBar::m_instance = NULL;
StatusBar::StatusBar(TooltipManager* tooltipManager)
: m_timeout(0)
, m_about(new AboutStatusBar)
, m_indicators(new Indicators)
, m_docControls(new HBox)
, m_tipwindow(nullptr)
@ -553,8 +588,12 @@ StatusBar::StatusBar(TooltipManager* tooltipManager)
setDoubleBuffered(true);
setFocusStop(true);
m_about->setExpansive(true);
m_about->setVisible(true);
m_indicators->setExpansive(true);
m_indicators->setVisible(false);
m_docControls->setVisible(false);
addChild(m_about);
addChild(m_indicators);
addChild(m_docControls);
@ -609,6 +648,7 @@ void StatusBar::onSelectedToolChange(tools::Tool* tool)
void StatusBar::clearText()
{
showIndicators();
setStatusText(1, std::string());
}
@ -617,16 +657,11 @@ void StatusBar::clearText()
// details of the main window/docs/etc.
void StatusBar::showDefaultText()
{
if (current_editor) {
showDefaultText(current_editor->document());
}
else if (App::instance()->mainWindow()->isHomeSelected()) {
setStatusText(0, fmt::format("-- {} {} by David & Gaspar Capello -- Igara Studio --",
get_app_name(), get_app_version()));
}
else {
auto mainWindow = (App::instance() ? App::instance()->mainWindow(): nullptr);
if (mainWindow)
mainWindow->showDefaultStatusBar();
else
clearText();
}
}
void StatusBar::showDefaultText(Doc* doc)
@ -653,18 +688,22 @@ void StatusBar::showDefaultText(Doc* doc)
void StatusBar::updateFromEditor(Editor* editor)
{
if (editor)
if (editor) {
showIndicators();
m_zoomEntry->setZoom(editor->zoom());
}
}
void StatusBar::showBackupIcon(BackupIcon icon)
{
showIndicators();
m_indicators->showBackupIcon(icon);
}
bool StatusBar::setStatusText(int msecs, const std::string& msg)
{
if ((base::current_tick() > m_timeout) || (msecs > 0)) {
showIndicators();
IndicatorsGeneration(m_indicators).add(msg.c_str());
m_timeout = base::current_tick() + msecs;
return true;
@ -704,6 +743,7 @@ void StatusBar::showTip(int msecs, const std::string& msg)
void StatusBar::showColor(int msecs, const char* text, const app::Color& color)
{
if ((base::current_tick() > m_timeout) || (msecs > 0)) {
showIndicators();
IndicatorsGeneration gen(m_indicators);
gen.add(color);
if (text)
@ -715,7 +755,9 @@ void StatusBar::showColor(int msecs, const char* text, const app::Color& color)
void StatusBar::showTool(int msecs, tools::Tool* tool)
{
ASSERT(tool != NULL);
showIndicators();
ASSERT(tool != nullptr);
IndicatorsGeneration(m_indicators).add(tool);
m_timeout = base::current_tick() + msecs;
@ -843,4 +885,22 @@ void StatusBar::updateSnapToGridWindowPosition()
rc.y-m_snapToGridWindow->bounds().h);
}
void StatusBar::showAbout()
{
if (!m_about->isVisible()) {
m_indicators->setVisible(false);
m_about->setVisible(true);
m_about->layout();
}
}
void StatusBar::showIndicators()
{
if (!m_indicators->isVisible()) {
m_about->setVisible(false);
m_indicators->setVisible(true);
m_indicators->layout();
}
}
} // namespace app

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2018-2020 Igara Studio S.A.
// Copyright (C) 2018-2021 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -55,7 +55,8 @@ namespace app {
void clearText();
void showDefaultText();
void showDefaultText(Doc* document);
void showDefaultText(Doc* doc);
void showAbout();
bool setStatusText(int msecs, const std::string& text);
void showTip(int msecs, const std::string& msg);
@ -86,9 +87,14 @@ namespace app {
void newFrame();
void onChangeZoom(const render::Zoom& zoom);
void updateSnapToGridWindowPosition();
void showIndicators();
base::tick_t m_timeout;
// About text
class AboutStatusBar;
AboutStatusBar* m_about;
// Indicators
class Indicators;
class IndicatorsGeneration;

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2019-2020 Igara Studio S.A.
// Copyright (C) 2019-2021 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -100,16 +100,17 @@ void UIContext::setActiveView(DocView* docView)
return;
if (docView) {
current_editor = docView->editor();
mainWin->getTabsBar()->selectTab(docView);
if (mainWin->getWorkspace()->activeView() != docView)
mainWin->getWorkspace()->setActiveView(docView);
if (current_editor)
current_editor->requestFocus();
}
current_editor = (docView ? docView->editor(): nullptr);
if (current_editor)
current_editor->requestFocus();
else
current_editor = nullptr;
mainWin->getPreviewEditor()->updateUsingEditor(current_editor);
mainWin->getTimeline()->updateUsingEditor(current_editor);

View File

@ -23,7 +23,7 @@ BEGIN
VALUE "FileDescription", "Aseprite - Animated sprites editor & pixel art tool"
VALUE "FileVersion", "1,3,0,0"
VALUE "InternalName", "aseprite"
VALUE "LegalCopyright", "Copyright (C) 2001-2020 Igara Studio S.A."
VALUE "LegalCopyright", "Copyright (C) 2001-2021 Igara Studio S.A."
VALUE "OriginalFilename", "aseprite.exe"
VALUE "ProductName", "ASEPRITE"
VALUE "ProductVersion", "1,3,0,0"