2 Commits

Author SHA1 Message Date
Alexandre Arnt
97c11f0f10 BugFix: Let's not get a description as a pkgname 2025-10-03 17:57:05 -03:00
Alexandre Arnt
dec6656a44 UI changes 2025-10-03 15:21:14 -03:00
15 changed files with 110 additions and 76 deletions

View File

@@ -1,3 +1,9 @@
0.19 (dev)
BugFix: Pressing F11 to maximize bottom panel crashed Octopi if Info tab was selected.
BugFix: Optional deps dialog had a column header named "3" instead of "Repository".
Make the whole interface text less condensed.
Added chinese description for the application name in desktop file.
0.18.1 (2025-09-29)
BugFix: French translation was not working properly (thanks to roxfr).
BugFix: Yay searches with version 12.5.2 crashed Octopi (thanks to nije-to-sve).

View File

@@ -68,6 +68,7 @@ Comment[zh_HK]=加入或移除系統上安裝的軟件
Comment[zh_TW]=加入或移除系統上安裝的軟體
Exec=/usr/bin/octopi
Name[en_US]=Octopi
Name[zh_CN]=Octopi(软件管理)
Name=Octopi
Icon=octopi
MimeType=

View File

@@ -28,7 +28,7 @@
* Collection of Octopi constants and enums
*/
const QString ctn_APPLICATION_VERSION(QStringLiteral("0.18.1"));
const QString ctn_APPLICATION_VERSION(QStringLiteral("0.19 (dev)"));
//MainWindow related
enum SystemUpgradeOptions { ectn_NO_OPT, ectn_SYNC_DATABASE_OPT, ectn_NOCONFIRM_OPT };

View File

@@ -670,7 +670,7 @@ void MainWindow::outputOutdatedPackageList()
StrConstants::getOutdatedPackages(m_outdatedStringList->count()) + QLatin1String("</h3>");
}
html += QLatin1String("<br><table border=\"0\">");
html += QLatin1String("<br><table cellpadding=\"5\" border=\"0\">");
html += QLatin1String("<tr><th width=\"25%\" align=\"left\">") + StrConstants::getName() +
QLatin1String("</th><th width=\"18%\" align=\"right\">") +
StrConstants::getOutdatedVersion() +
@@ -720,7 +720,7 @@ void MainWindow::outputOutdatedPackageList()
StrConstants::getOutdatedPackages(m_outdatedStringList->count()) + QLatin1String("</h3>");
}
html += QLatin1String("<br><table border=\"0\">");
html += QLatin1String("<br><table cellpadding=\"5\" border=\"0\">");
html += QLatin1String("<tr><th width=\"25%\" align=\"left\">") + StrConstants::getName() +
QLatin1String("</th><th width=\"18%\" align=\"right\">") +
StrConstants::getOutdatedVersion() +
@@ -816,7 +816,7 @@ void MainWindow::outputOutdatedAURPackageList()
StrConstants::getOutdatedPackages(m_outdatedAURStringList->count()) + QLatin1String("</h3>");
}
html += QLatin1String("<br><table border=\"0\">");
html += QLatin1String("<br><table cellpadding=\"5\" border=\"0\">");
html += QLatin1String("<tr><th width=\"25%\" align=\"left\">") + StrConstants::getName() +
QLatin1String("</th><th width=\"18%\" align=\"right\">") +
StrConstants::getOutdatedVersion() +
@@ -2055,7 +2055,15 @@ void MainWindow::maxDemaxPropertiesTabWidget(bool pSaveSettings)
if ( rl[0] != 0 ) //Maximize here
{
ui->splitterHorizontal->setSizes( l << 0 << ui->twProperties->maximumHeight());
ui->twProperties->currentWidget()->childAt(1,1)->setFocus();
if (ui->twProperties->currentIndex() == ctn_TABINDEX_INFORMATION)
{
QTextBrowser *tb = ui->twProperties->currentWidget()->findChild<QTextBrowser*>(QStringLiteral("textBrowser"));
if (tb) tb->setFocus();
}
else
ui->twProperties->currentWidget()->childAt(1,1)->setFocus();
ui->twProperties->tabBar()->hide();
if(pSaveSettings)

View File

@@ -60,16 +60,16 @@ QString MainWindow::generateHelpUsageHtmlText()
if(m_hasForeignTool && UnixCommand::getLinuxDistro() != ectn_CHAKRA)
{
strOutdatedAur=QLatin1String("<li>") +
tr("Ctrl+Shift+O to display outdated %1 packages").arg(StrConstants::getForeignRepositoryName()) + QLatin1String("</li>");
strOutdatedAur=QLatin1String("<li><p>") +
tr("Ctrl+Shift+O to display outdated %1 packages").arg(StrConstants::getForeignRepositoryName()) + QLatin1String("</p></li>");
}
else strOutdatedAur=QStringLiteral("<li></li>");
QString strVote;
if(m_aurVote != nullptr)
{
strVote=QLatin1String("<li>") +
tr("Ctrl+Shift+A to display AUR voted package list") + QLatin1String("</li>");
strVote=QLatin1String("<li><p>") +
tr("Ctrl+Shift+A to display AUR voted package list") + QLatin1String("</p></li>");
}
else strVote=QStringLiteral("<li></li>");
@@ -82,106 +82,107 @@ QString MainWindow::generateHelpUsageHtmlText()
html +=
QStringLiteral("<a href=\"http://www.gnu.org/licenses/gpl-2.0.html\">GPL v2</a>.</p></h3>") +
QStringLiteral("<h4><p>") + strForMoreInfo + QLatin1Char(' ') +
QStringLiteral("<p>") + strForMoreInfo + QLatin1Char(' ') +
QStringLiteral("<a href=\"https://tintaescura.com/projects/octopi/\">https://tintaescura.com/projects/octopi</a><br>");
html += QStringLiteral("<br>") +
html += QStringLiteral("<br><br>") +
tr("Package classification:") +
QStringLiteral("<ul type=\"square\"><li>") + iconPath + QLatin1String("ignored.png\"/> ") +
tr("An ignored package") + QStringLiteral("</li>") +
QStringLiteral("<li>") + iconPath + QLatin1String("installed.png\"/> ") +
tr("An installed package") + QStringLiteral("</li>") +
QStringLiteral("<li>") + iconPath + QLatin1String("unrequired.png\"/> ") +
QStringLiteral("<ul type=\"square\"><li><p>") + iconPath + QLatin1String("ignored.png\"/> ") +
tr("An ignored package") + QStringLiteral("</p></li>") +
QStringLiteral("<li><p>") + iconPath + QLatin1String("installed.png\"/> ") +
tr("An installed package") + QStringLiteral("</p></li>") +
QStringLiteral("<li><p>") + iconPath + QLatin1String("unrequired.png\"/> ") +
tr("An installed package (not required by others)") +
QStringLiteral("</li>") +
QLatin1String("<li>") + iconPath + QLatin1String("foreign_green.png\"/> ") +
QStringLiteral("</p></li>") +
QLatin1String("<li><p>") + iconPath + QLatin1String("foreign_green.png\"/> ") +
tr("A foreign package, installed from") + QLatin1Char(' ') + StrConstants::getForeignRepositoryName() +
QStringLiteral("</li>") +
QStringLiteral("<li>") + iconPath + QLatin1String("noninstalled.png\"/> ") +
QStringLiteral("</p></li>") +
QStringLiteral("<li><p>") + iconPath + QLatin1String("noninstalled.png\"/> ") +
tr("A non installed package") +
QStringLiteral("</li>") +
QStringLiteral("<li>") + iconPath + QLatin1String("outdated.png\"/> ") +
QStringLiteral("</p></li>") +
QStringLiteral("<li><p>") + iconPath + QLatin1String("outdated.png\"/> ") +
tr("An outdated package") +
QStringLiteral("</li>") +
QStringLiteral("<li>") + iconPath + QLatin1String("foreign_red.png\"/> ") +
QStringLiteral("</p></li>") +
QStringLiteral("<li><p>") + iconPath + QLatin1String("foreign_red.png\"/> ") +
tr("An outdated foreign package") +
QStringLiteral("</li>") +
QStringLiteral("<li>") + iconPath + QLatin1String("newer.png\"/> ") +
QStringLiteral("</p></li>") +
QStringLiteral("<li><p>") + iconPath + QLatin1String("newer.png\"/> ") +
tr("A newer version of this package is installed") +
QStringLiteral("</li></ul>") +
QStringLiteral("</p></li></ul><br>") +
tr("Basic usage help:") +
QStringLiteral("<ul><li>") +
QStringLiteral("<ul><li><p>") +
tr("Position the mouse over a package to see its description") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Double click an installed package to see its contents") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Right click package to install/reinstall or remove it") +
QStringLiteral("</li></ul>") +
QStringLiteral("</p></li></ul><br>") +
tr("Alt+key sequences:") +
QStringLiteral("<ul><li>") +
QStringLiteral("<ul><li><p>") +
tr("Alt+1 to switch to 'Info' tab") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Alt+2 to switch to 'Files' tab") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Alt+3 to switch to 'Actions' tab") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Alt+4 to switch to 'Output' tab") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Alt+5 to switch to 'News' tab") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Alt+6 or 'F1' to show this help page") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Alt+7 to switch to 'Terminal' tab") +
QStringLiteral("</li></ul>") +
QStringLiteral("</p></li></ul><br>") +
tr("Control+key sequences:") +
QStringLiteral("<ul><li>") +
QStringLiteral("<ul><li><p>") +
tr("Ctrl+E or 'Actions/Cancel' to clear the selection of to be removed/installed packages") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+F to search for text inside tab Files, News and Usage") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+G or 'File/Get latest distro news' to retrieve the latest RSS based distro news") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+K or 'File/Check updates' to check mirror for latest updates (checkupdates)") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+L to find a package in the package list") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+P to go to package list") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+Q or 'File/Exit' to exit the application") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+U or 'File/System upgrade' to make a full system upgrade (pacman -Su)") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+Y or 'Actions/Apply' to start installation/removal of selected packages") +
QStringLiteral("</li></ul>") +
QStringLiteral("</p></li></ul><br>") +
tr("Control+shift+key sequences:") +
QStringLiteral("<ul>") +
strVote +
QStringLiteral("<li>") +
QStringLiteral("<li><p>") +
tr("Ctrl+Shift+G to display all package groups") +
QStringLiteral("</li>") +
QStringLiteral("</p></li><p>") +
strOutdatedAur + QLatin1String("<li>") +
//tr("Ctrl+Shift+R to remove Pacman's transaction lock file") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+Shift+U to upgrade outdated %1 packages").arg(StrConstants::getForeignRepositoryGroupName()) +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("Ctrl+Shift+Y to display %1 group").arg(StrConstants::getForeignRepositoryGroupName()) +
QStringLiteral("</li></ul>") +
QStringLiteral("</p></li></ul><br>") +
tr("F+key sequences:") +
QStringLiteral("<ul><li>") +
QStringLiteral("<ul><li><p>") +
tr("F1 to show this help page") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("F4 to open a Terminal whitin the selected directory at Files tab") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("F6 to open a File Manager whitin the selected directory at Files tab") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("F10 to maximize/demaximize package list view") +
QStringLiteral("</li><li>") +
QStringLiteral("</p></li><li><p>") +
tr("F11 to maximize/demaximize Tab's view") +
QStringLiteral("</li></ul><br>");
QStringLiteral("</p></li></ul><br>");
return html;
}

View File

@@ -267,7 +267,7 @@ void MainWindow::initPackageGroups()
ui->twGroups->header()->setSectionResizeMode(QHeaderView::Fixed);
ui->twGroups->setFrameShape(QFrame::NoFrame);
ui->twGroups->setFrameShadow(QFrame::Plain);
ui->twGroups->setStyleSheet(StrConstants::getTreeViewCSS());
ui->twGroups->setStyleSheet(QStringLiteral("QTreeView::item { height: 30px; }"));
ui->twGroups->setSelectionMode(QAbstractItemView::SingleSelection);
ui->twGroups->setFocusPolicy(Qt::NoFocus);
connect(ui->twGroups, SIGNAL(itemSelectionChanged()), this, SLOT(onPackageGroupChanged()));

View File

@@ -1527,7 +1527,7 @@ void MainWindow::refreshTabInfo(bool clearContents, bool neverQuit)
if (Package::getForeignRepositoryToolName() != ctn_KCP_TOOL)
{
html += QLatin1String("<a style=\"font-size:16px;\">") + pkgDescription + QLatin1String("</a>");
html += QLatin1String("<table border=\"0\">");
html += QLatin1String("<table cellpadding=\"5\" border=\"0\">");
html += QLatin1String("<tr><th width=\"20%\"></th><th width=\"80%\"></th></tr>");
html += QLatin1String("<tr><td>") + version + QLatin1String("</td><td>") + package->version + QLatin1String("</td></tr>");
@@ -1580,7 +1580,7 @@ void MainWindow::refreshTabInfo(bool clearContents, bool neverQuit)
else if (Package::getForeignRepositoryToolName() == ctn_KCP_TOOL)
{
html += QLatin1String("<a style=\"font-size:16px;\">") + kcp.description + QLatin1String("</a>");
html += QLatin1String("<table border=\"0\">");
html += QLatin1String("<table cellpadding=\"5\" border=\"0\">");
html += QLatin1String("<tr><th width=\"20%\"></th><th width=\"80%\"></th></tr>");
html += QLatin1String("<tr><td>") + version + QLatin1String("</td><td>") + package->version + QLatin1String("</td></tr>");

View File

@@ -1055,7 +1055,7 @@ void MainWindow::doSystemUpgrade(SystemUpgradeOptions systemUpgradeOptions)
{
clearTabOutput();
writeToTabOutput(QLatin1String("<b>") + StrConstants::getCollectingTransactionData() +
QLatin1String("</b><br>"), ectn_DONT_TREAT_URL_LINK);
QLatin1String("</b><br><br>"), ectn_DONT_TREAT_URL_LINK);
qApp->processEvents();
//Shows a dialog indicating the targets needed to be retrieved and asks for the user's permission.
@@ -1235,7 +1235,7 @@ void MainWindow::doRemoveAndInstall()
{
clearTabOutput();
writeToTabOutput(QLatin1String("<b>") + StrConstants::getCollectingTransactionData() +
QLatin1String("</b><br>"), ectn_DONT_TREAT_URL_LINK);
QLatin1String("</b><br><br>"), ectn_DONT_TREAT_URL_LINK);
qApp->processEvents();
QString listOfRemoveTargets = getTobeRemovedPackages();
@@ -1436,7 +1436,7 @@ void MainWindow::doRemove()
{
clearTabOutput();
writeToTabOutput(QLatin1String("<b>") + StrConstants::getCollectingTransactionData() +
QLatin1String("</b><br>"), ectn_DONT_TREAT_URL_LINK);
QLatin1String("</b><br><br>"), ectn_DONT_TREAT_URL_LINK);
qApp->processEvents();
QString listOfTargets = getTobeRemovedPackages();
@@ -1907,7 +1907,7 @@ void MainWindow::doInstall()
clearTabOutput();
writeToTabOutput(QLatin1String("<b>") + StrConstants::getCollectingTransactionData() +
QLatin1String("</b><br>"), ectn_DONT_TREAT_URL_LINK);
QLatin1String("</b><br><br>"), ectn_DONT_TREAT_URL_LINK);
qApp->processEvents();
QHash<QString, bool> listToBeInst = getTobeInstalledPackages();

View File

@@ -36,7 +36,7 @@ MultiSelectionDialog::MultiSelectionDialog(QWidget *parent) :
{
m_actionIsToCheck = true;
QStringList hhl;
hhl << StrConstants::getName() << StrConstants::getDescription();
hhl << StrConstants::getName() << StrConstants::getDescription() << StrConstants::getRepository();
ui->setupUi(this);
ui->twDepPackages->setColumnCount(3);

View File

@@ -522,7 +522,7 @@ QStringList *Package::getOutdatedAURStringList()
res->append(pkgName); //We only need the package name!
}
}
else //We have a TRIZEN output
else if (!pkgName.contains(QStringLiteral("\t"))) //We have a TRIZEN output
{
if (!ignorePkgList.contains(pkgName))
{

View File

@@ -55,6 +55,10 @@ void PackageTreeView::init()
header()->setSectionResizeMode(QHeaderView::Interactive);
header()->setDefaultAlignment(Qt::AlignLeft);
setUniformRowHeights(true);
//TODO Add a setting...
//setIconSize(QSize(32,32));
setStyleSheet(QStringLiteral("QTreeView::item { height: 30px; }"));
}
/*

View File

@@ -108,6 +108,9 @@ void PropertiesTabWidget::initTabFiles()
m_tvPkgFileList->setFrameShadow(QFrame::Plain);
m_tvPkgFileList->setObjectName(QStringLiteral("tvPkgFileList"));
//TODO Add Option to change...
m_tvPkgFileList->setStyleSheet(QStringLiteral("QTreeView::item { height: 30px; }"));
modelPkgFileList->setSortRole(0);
modelPkgFileList->setColumnCount(0);
gridLayoutX->addWidget(m_tvPkgFileList, 0, 0, 1, 1);
@@ -146,7 +149,11 @@ void PropertiesTabWidget::initTabActions()
m_tvTransaction->header()->setSectionResizeMode(QHeaderView::Fixed);
m_tvTransaction->setFrameShape(QFrame::NoFrame);
m_tvTransaction->setFrameShadow(QFrame::Plain);
m_tvTransaction->expandAll();
//TODO Add Option to change...
m_tvTransaction->setStyleSheet(QStringLiteral("QTreeView::item { height: 30px; }"));
m_tvTransaction->expandAll();
m_modelTransaction->setSortRole(0);
m_modelTransaction->setColumnCount(0);
@@ -231,6 +238,11 @@ void PropertiesTabWidget::initTabOutput()
m_textOutput->setFrameShape(QFrame::NoFrame);
m_textOutput->setFrameShadow(QFrame::Plain);
QFont f = QApplication::font();
f.setFamily(SettingsManager::getTerminalFontFamily());
f.setPointSizeF(SettingsManager::getTerminalFontPointSize() - 1.5);
m_textOutput->setFont(f);
gridLayoutX->addWidget (m_textOutput, 0, 0, 1, 1);
QString aux(StrConstants::getTabOutputName());

View File

@@ -72,7 +72,9 @@ void TransactionDialog::setInformativeText(const QString &text)
void TransactionDialog::setDetailedText(const QString &detailedtext)
{
ui->detailedText->setText(detailedtext);
QString t = detailedtext;
t.replace(QLatin1String("\n"), QLatin1String("<br>"));
ui->detailedText->setText(QStringLiteral("<p style=\"line-height: 1.5;\">") + t + QStringLiteral("</p>"));
//We must search for a 'pacman-version-number' pkg to force terminal upgrade use
if (detailedtext.contains(QRegularExpression(QStringLiteral("pacman-[0-9]+"))))

View File

@@ -93,7 +93,7 @@ QString OctopiTabInfo::formatTabInfo(const PackageRepository::PackageData& packa
html += pkgDescription;
html += QLatin1String("<table border=\"0\">");
html += QLatin1String("<table cellpadding=\"5\" border=\"0\">");
html += QLatin1String("<tr><th width=\"20%\"></th><th width=\"80%\"></th></tr>");
html += QLatin1String("<tr><td>") + url + QLatin1String("</td><td>") + pid.url + QLatin1String("</td>");

View File

@@ -366,11 +366,11 @@ QString utils::parseDistroNews()
else if (eText.tagName() == QLatin1String("link"))
{
itemLink = Package::makeURLClickable(eText.text());
if (UnixCommand::getLinuxDistro() == ectn_MANJAROLINUX) itemLink += QLatin1String("<br>");
/*if (UnixCommand::getLinuxDistro() == ectn_MANJAROLINUX)*/ itemLink += QLatin1String("<br>");
}
else if (eText.tagName() == QLatin1String("description"))
{
itemDescription = eText.text();
itemDescription = QLatin1String("<p style=\"line-height: 1.5;\">") + eText.text() + QLatin1String("</p>");
itemDescription += QLatin1String("<br>");
}
else if (eText.tagName() == QLatin1String("pubDate"))
@@ -389,8 +389,8 @@ QString utils::parseDistroNews()
text = text.nextSibling();
}
html += QLatin1String("<li><p>") + itemTitle + QLatin1Char(' ') + itemPubDate + QLatin1String("<br>") +
itemLink + itemDescription + QLatin1String("</p></li>");
html += QLatin1String("<li>") + itemTitle + QLatin1Char(' ') + itemPubDate + QLatin1String("<br>") +
itemLink + itemDescription + QLatin1String("</li>");
itemCounter++;
}
}