diff --git a/src/CodeKeeper/CodeKeeper.pro b/src/CodeKeeper/CodeKeeper.pro index f2de103..6693c87 100644 --- a/src/CodeKeeper/CodeKeeper.pro +++ b/src/CodeKeeper/CodeKeeper.pro @@ -38,7 +38,8 @@ HEADERS += \ RESOURCES += \ ../resources/resources.qrc \ ../stylesheet/stylesheet.qss \ - ../stylesheet/stylesheet_setting_window.qss + ../stylesheet/stylesheet_setting_window.qss \ + ../stylesheet/custom_stylesheet.qss include(3rdParty/qmarkdowntextedit/qmarkdowntextedit.pri) diff --git a/src/CodeKeeper/accountFunc/functional.cpp b/src/CodeKeeper/accountFunc/functional.cpp index 03eb51c..f511e6c 100644 --- a/src/CodeKeeper/accountFunc/functional.cpp +++ b/src/CodeKeeper/accountFunc/functional.cpp @@ -6,6 +6,8 @@ #include #include +#include "mainwindow.h" + void AccountWindow::setImageFromUrl(const QString &url, QLabel *label) { QNetworkAccessManager *manager = new QNetworkAccessManager(this); @@ -173,11 +175,11 @@ void AccountWindow::setUserData(const QString &username, QLabel *label) qDebug() << "" << doc; - profileInfo->setText(obj["bio"].toString() + "\nPublic repos: " + profileInfo->setText("\n\n" + obj["bio"].toString() + "\nPublic repos: " + QString::number(obj["public_repos"].toInt()) + "\n\nFollowing: " + QString::number(obj["following"].toInt()) + "\n\nFollowers: " + QString::number(obj["followers"].toInt()) + "\n\nStars: " - + QString::number(getStarsCount(git_user)) + "\n____________________"); + + QString::number(getStarsCount(git_user)) + "\n"); setImageFromUrl(obj["avatar_url"].toString(), profilePicture); reply->deleteLater(); @@ -188,3 +190,22 @@ void AccountWindow::onOpenRepoClicked() { QDesktopServices::openUrl(QUrl("https://github.com/" + git_user + "/")); } + +void AccountWindow::setTasksProgress() { + MainWindow *mainWindow = qobject_cast(this->parent()); + QString stats = mainWindow->getKeeperStats(); + + int incompleteTasksCount = mainWindow->incompleteTasks->count(); + int completeTasksCount = mainWindow->completeTasks->count(); + int inprocessTasksCount = mainWindow->inprocessTasks->count(); + + int totalTasks = incompleteTasksCount + completeTasksCount + inprocessTasksCount; + + double percentage = static_cast(completeTasksCount) / static_cast(totalTasks) * 100.0; + + qDebug() << completeTasksCount << "/" << totalTasks; + + tasksStatsProgress->setMaximum(100); + tasksStatsProgress->setValue(percentage); + tasksStatsProgress->setFormat("Completed tasks: " + QString::number(completeTasksCount) + "/" + QString::number(totalTasks)); +} \ No newline at end of file diff --git a/src/CodeKeeper/accountwindow.cpp b/src/CodeKeeper/accountwindow.cpp index 11756bc..98d0bfd 100644 --- a/src/CodeKeeper/accountwindow.cpp +++ b/src/CodeKeeper/accountwindow.cpp @@ -8,14 +8,14 @@ AccountWindow::AccountWindow(QWidget *parent) : QMainWindow{ parent } { QFile file(":/stylesheet/stylesheet_setting_window.qss"); file.open(QFile::ReadOnly); - this->setStyleSheet(file.readAll()); + // this->setStyleSheet(file.readAll()); setWindowFlags(windowFlags() | Qt::FramelessWindowHint); centralWidget = new QWidget(this); setCentralWidget(centralWidget); mainLayout = new QGridLayout(centralWidget); - setFixedSize(400, 700); + setFixedSize(400, 750); globalSettings = new QSettings("CodeKeeper", "CodeKeeper"); @@ -36,6 +36,10 @@ AccountWindow::AccountWindow(QWidget *parent) : QMainWindow{ parent } codeKeeperStats->setText(stats); codeKeeperStats->setAlignment(Qt::AlignHCenter); + tasksStatsProgress = new QProgressBar(); + tasksStatsProgress->setFixedHeight(25); + tasksStatsProgress->setAlignment(Qt::AlignCenter); + userName = new QLabel(); userName->setText(git_user); userName->setAlignment(Qt::AlignHCenter); @@ -58,20 +62,23 @@ AccountWindow::AccountWindow(QWidget *parent) : QMainWindow{ parent } QThread *setUserDataThread = new QThread; QObject::connect(setUserDataThread, &QThread::started, this, [this]() { setUserData(git_user, profilePicture); + setTasksProgress(); qDebug() << "setUserDataThread started"; }); setUserDataThread->start(); + mainLayout->addWidget(closeWindow, 0, 0, 1, 3, Qt::AlignLeft); mainLayout->addWidget(profilePicture, 1, 0, 3, 3, Qt::AlignCenter); mainLayout->addWidget(userName, 5, 0, 1, 3, Qt::AlignCenter); mainLayout->addWidget(profileInfo, 6, 0, 1, 3, Qt::AlignCenter); - mainLayout->addWidget(codeKeeperStats, 7, 0, 1, 3, Qt::AlignCenter); - mainLayout->addWidget(openRepo, 8, 0, 1, 3, Qt::AlignCenter); + mainLayout->addWidget(tasksStatsProgress, 9, 0, 1, 3, Qt::AlignCenter); + mainLayout->addWidget(codeKeeperStats, 10, 0, 1, 3, Qt::AlignCenter); + mainLayout->addWidget(openRepo, 13, 0, 1, 3, Qt::AlignCenter); connect(closeWindow, SIGNAL(clicked()), this, SLOT(closeWindowSlot())); connect(openRepo, SIGNAL(clicked()), this, SLOT(onOpenRepoClicked())); } -AccountWindow::~AccountWindow(){}; +AccountWindow::~AccountWindow() {}; diff --git a/src/CodeKeeper/accountwindow.h b/src/CodeKeeper/accountwindow.h index 5112984..b8e0d36 100644 --- a/src/CodeKeeper/accountwindow.h +++ b/src/CodeKeeper/accountwindow.h @@ -36,10 +36,13 @@ class AccountWindow : public QMainWindow QLabel *userName; QLabel *profileInfo; QLabel *codeKeeperStats; + QLabel *tasksStats; QPushButton *closeWindow; QPushButton *openRepo; + QProgressBar *tasksStatsProgress; + private slots: void setUserData(const QString &username, QLabel *label); void closeWindowSlot(); @@ -47,6 +50,7 @@ private slots: void setImageFromUrl(const QString &url, QLabel *label); void onOpenRepoClicked(); int getStarsCount(const QString &username); + void setTasksProgress(); }; #endif // ACCOUNTWINDOW_H diff --git a/src/CodeKeeper/keeperFunc/functional.cpp b/src/CodeKeeper/keeperFunc/functional.cpp index e059a9e..8a5b56b 100644 --- a/src/CodeKeeper/keeperFunc/functional.cpp +++ b/src/CodeKeeper/keeperFunc/functional.cpp @@ -16,14 +16,12 @@ QString MainWindow::getKeeperStats() int tasks_count = incompleteTasksCount + completeTasksCount + inprocessTasksCount; - QString tasksStats = "Complete tasks: " + QString::number(completeTasksCount) + "/" - + QString::number(tasks_count); QString projectsStats = "Not started projects: " + QString::number(notStartedProjects->count()) + "\n\n" + "Started projects: " + QString::number(startedProjects->count()) + "\n\n" + "Projects on review: " + QString::number(finishlineProjects->count()) + "\n\n" + "Finished projects: " + QString::number(finishedProjects->count()); - QString stats = tasksStats + "\n\n" + projectsStats; + QString stats = "\n" + projectsStats; qDebug() << stats; return stats; @@ -62,6 +60,7 @@ void MainWindow::getSettingsData() font_size = globalSettings->value("fontSize").value(); theme = globalSettings->value("theme").value(); isCustomTitlebar = globalSettings->value("isCustomTitlebar").value(); + isCustomTheme = globalSettings->value("isCustomTheme").value(); sortNotesRole = globalSettings->value("sortRole", Qt::DisplayRole).value(); isAutoSyncing = globalSettings->value("isAutoSync").value(); isVisibleNotesList = globalSettings->value("isVisibleNotesList", true).toBool(); @@ -89,7 +88,7 @@ void MainWindow::getSettingsData() qDebug() << " " << dir << selectedFont << font_size << theme << isCustomTitlebar << sortNotesRole << isAutoSyncing << isVisibleNotesList << isVisibleFolders - << isVisiblePreview << isViewMode << git_repo << git_user << git_token << isAutoSyncB; + << isVisiblePreview << isViewMode << git_repo << git_user << git_token << isAutoSyncB << isCustomTheme; } void MainWindow::setConnectionStatus() @@ -333,17 +332,16 @@ void MainWindow::setFontPr1(QFont *selectedFont, int *font_size_int) openSettingsBtn->setFont(*selectedFont); openSettingsBtn->setStyleSheet( - "QPushButton {background-color: transparent; color: #ffffff; font-size: " + font_size - + "pt;} " - "QPushButton:hover{text-decoration: none; background-color: transparent; color: " - "#37d442; font-size: " - + font_size + "pt;}"); + "QPushButton {border: none; background-color: transparent; font-size: " + font_size + + "pt;} "); syncDataBtn->setFont(*selectedFont); syncDataBtn->setStyleSheet( - "QPushButton {background-color: transparent; color: #ffffff; font-size: " + font_size + "QPushButton {background-color: transparent; border: none; color: #ffffff; font-size: " + + font_size + "pt;} " - "QPushButton:hover{text-decoration: none; background-color: transparent; color: " + "QPushButton:hover{text-decoration: none; border: none; background-color: " + "transparent; color: " "#37d442; font-size: " + font_size + "pt;}"); @@ -549,9 +547,11 @@ void MainWindow::setFontPr1(QFont *selectedFont, int *font_size_int) openAccountWindow->setFont(*selectedFont); openAccountWindow->setStyleSheet( - "QPushButton {background-color: transparent; color: #ffffff; font-size: " + font_size - + "pt;} " - "QPushButton:hover{text-decoration: none; background-color: transparent; color: " - "#37d442; font-size: " - + font_size + "pt;}"); + "QPushButton {border: none; background-color: transparent; font-size: " + font_size + + "pt;} "); + + mainTabButton->setStyleSheet("background-color: transparent; border: none;"); + tasksTabButton->setStyleSheet("background-color: transparent; border: none;"); + notesTabButton->setStyleSheet("background-color: transparent; border: none;"); + projectsTabButton->setStyleSheet("background-color: transparent; border: none;"); } diff --git a/src/CodeKeeper/main.cpp b/src/CodeKeeper/main.cpp index 423fde2..7822f35 100644 --- a/src/CodeKeeper/main.cpp +++ b/src/CodeKeeper/main.cpp @@ -27,8 +27,8 @@ bool loadApp(QSplashScreen *psplash) int main(int argc, char *argv[]) { - QFile file(":/stylesheet/stylesheet.qss"); - file.open(QFile::ReadOnly); + // QFile file(":/stylesheet/custom_stylesheet.qss"); + // file.open(QFile::ReadOnly); QApplication a(argc, argv); @@ -36,7 +36,7 @@ int main(int argc, char *argv[]) // splash.show(); MainWindow keeper; - a.setStyleSheet(file.readAll()); + // a.setStyleSheet(file.readAll()); keeper.setWindowIcon(QIcon(":/icon.png")); diff --git a/src/CodeKeeper/mainwindow.cpp b/src/CodeKeeper/mainwindow.cpp index dece7b2..8e87d6c 100644 --- a/src/CodeKeeper/mainwindow.cpp +++ b/src/CodeKeeper/mainwindow.cpp @@ -35,18 +35,40 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) getSettingsData(); + if (isCustomTheme) { + QFile custom_theme(":/stylesheet/custom_stylesheet.qss"); + if (custom_theme.open(QFile::ReadOnly)) { + QString customStyleSheet = custom_theme.readAll(); + qDebug() << "Loading custom stylesheet:" << customStyleSheet; + setStyleSheet(customStyleSheet); + custom_theme.close(); + } else { + qDebug() << "Failed to open custom stylesheet file"; + } + } else { + QFile theme_file(":/stylesheet/stylesheet.qss"); + if (theme_file.open(QFile::ReadOnly)) { + QString defaultStyleSheet = theme_file.readAll(); + qDebug() << "Loading default stylesheet:" << defaultStyleSheet; + setStyleSheet(defaultStyleSheet); + theme_file.close(); + } else { + qDebug() << "Failed to open default stylesheet file"; + } + } + closeBtn = new QPushButton(); minimizeBtn = new QPushButton(); maximizeBtn = new QPushButton(); openAccountWindow = new QPushButton(QPixmap(":/user.png") - .scaled(font_size.toInt() + 1, font_size.toInt() + 1, + .scaled(font_size.toInt() + 10, font_size.toInt() + 10, Qt::KeepAspectRatio, Qt::SmoothTransformation), ""); openAccountWindow->setToolTip("

Account

"); - openAccountWindow->setFixedSize(15, 15); + openAccountWindow->setFixedSize(35, 35); winControlL = new QHBoxLayout; winControlL->setSpacing(7); @@ -93,21 +115,21 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) // settings btn openSettingsBtn = new QPushButton(QPixmap(":/settings.png") - .scaled(font_size.toInt() + 1, font_size.toInt() + 1, + .scaled(font_size.toInt() + 10, font_size.toInt() + 10, Qt::KeepAspectRatio, Qt::SmoothTransformation), ""); openSettingsBtn->setToolTip("

Settings

"); - openSettingsBtn->setFixedSize(15, 15); + openSettingsBtn->setFixedSize(35, 35); // sync btn syncDataBtn = new QPushButton(QPixmap(":/sync.png") - .scaled(font_size.toInt() + 1, font_size.toInt() + 1, + .scaled(font_size.toInt() + 10, font_size.toInt() + 10, Qt::KeepAspectRatio, Qt::SmoothTransformation), ""); syncDataBtn->setToolTip( "

Sync

"); - syncDataBtn->setFixedSize(15, 15); + syncDataBtn->setFixedSize(35, 35); // ======================================================== QHBoxLayout *menuLayout = new QHBoxLayout; @@ -178,8 +200,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) Qt::KeepAspectRatio, Qt::SmoothTransformation)); menuButton->setIconSize(QSize(10, 10)); menuButton->setPopupMode(QToolButton::InstantPopup); - menuButton->setStyleSheet( - "background-color: #0D1117; border-color: #0D1117; border-width: 4px;"); + menuButton->setStyleSheet("background-color: transparent; border: none;"); menu = new QMenu(menuButton); @@ -357,21 +378,21 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) Qt::KeepAspectRatio, Qt::SmoothTransformation), ""); - setH1B->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); - setH2B->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); - setH3B->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); - setListB->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); - setLinkB->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); - setBoldB->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); + setH1B->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); + setH2B->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); + setH3B->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); + setListB->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); + setLinkB->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); + setBoldB->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); setItalicB->setStyleSheet( - "background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); + "background-color: transparent; border: none; margin-left: 4px;"); setStrikeB->setStyleSheet( - "background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); - setTaskB->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); + "background-color: transparent; border: none; margin-left: 4px;"); + setTaskB->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); setNumListB->setStyleSheet( - "background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); - setTableB->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); - setQuoteB->setStyleSheet("background-color: #0D1117; border-color: #0D1117; margin-left: 4px;"); + "background-color: transparent; border: none; margin-left: 4px;"); + setTableB->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); + setQuoteB->setStyleSheet("background-color: transparent; border: none; margin-left: 4px;"); setH1B->setFixedSize(20, 20); setH2B->setFixedSize(20, 20); @@ -451,7 +472,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) tasksMenuBtn->setFixedSize(30, 30); tasksMenuBtn->setPopupMode(QToolButton::InstantPopup); tasksMenuBtn->setStyleSheet( - "background-color: #0D1117; border-color: #0D1117; border-width: 0px;"); + "background-color: transparent; border: none; border-width: 0px;"); tasksMenu = new QMenu(tasksMenuBtn); @@ -550,7 +571,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) projectsMenuButton->setFixedSize(30, 25); projectsMenuButton->setIconSize(QSize(40, 40)); projectsMenuButton->setStyleSheet( - "background-color: #0D1117; border-color: #0D1117; border-width: 0px;"); + "background-color: transparent; border: none; border-width: 0px;"); projectsMenu = new QMenu(projectsMenuButton); @@ -694,6 +715,10 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) tabs->setIconSize(QSize(font_size.toInt(), font_size.toInt())); tabs->setTabBarAutoHide(true); + tabs->setTabVisible(0, false); + tabs->setTabVisible(1, false); + tabs->setTabVisible(2, false); + tabs->setTabVisible(3, false); if (isCustomTitlebar) { mainLayout->addLayout(winControlL, 0, 0, 1, 2); @@ -717,17 +742,62 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) QSpacerItem *headerSp3 = new QSpacerItem(100, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); QSpacerItem *headerSp4 = new QSpacerItem(100, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); - winControlL->addWidget(openAccountWindow); - winControlL->addWidget(openSettingsBtn); - winControlL->addWidget(syncDataBtn); - winControlL->addItem(headerSp); winControlL->addWidget(isConnected); winControlL->addWidget(isAutoSync); winControlL->addWidget(sizeGrip2); - mainLayout->addWidget(tabs, 1, 0); + QVBoxLayout *tabButtons = new QVBoxLayout(); + + mainTabButton = new QPushButton(QPixmap(":/main.png") + .scaled(font_size.toInt() + 10, font_size.toInt() + 10, + Qt::KeepAspectRatio, Qt::SmoothTransformation), + ""); + mainTabButton->setFixedSize(35, 35); + + tasksTabButton = new QPushButton(QPixmap(":/task.png") + .scaled(font_size.toInt() + 10, font_size.toInt() + 10, + Qt::KeepAspectRatio, Qt::SmoothTransformation), + ""); + tasksTabButton->setFixedSize(35, 35); + + notesTabButton = new QPushButton(QPixmap(":/note.png") + .scaled(font_size.toInt() + 10, font_size.toInt() + 10, + Qt::KeepAspectRatio, Qt::SmoothTransformation), + ""); + notesTabButton->setFixedSize(35, 35); + + projectsTabButton = + new QPushButton(QPixmap(":/project.png") + .scaled(font_size.toInt() + 10, font_size.toInt() + 10, + Qt::KeepAspectRatio, Qt::SmoothTransformation), + ""); + projectsTabButton->setFixedSize(35, 35); + + QSpacerItem *headerSp5 = new QSpacerItem(30, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); + QSpacerItem *headerSp6 = new QSpacerItem(30, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); + + tabButtons->addItem(headerSp5); + tabButtons->addWidget(mainTabButton); + tabButtons->addWidget(tasksTabButton); + tabButtons->addWidget(notesTabButton); + tabButtons->addWidget(projectsTabButton); + tabButtons->addItem(headerSp6); + tabButtons->addWidget(openAccountWindow); + tabButtons->addWidget(syncDataBtn); + tabButtons->addWidget(openSettingsBtn); + + connect(mainTabButton, &QPushButton::clicked, [=]() { tabs->setCurrentIndex(0); }); + connect(tasksTabButton, &QPushButton::clicked, [=]() { tabs->setCurrentIndex(1); }); + connect(notesTabButton, &QPushButton::clicked, [=]() { tabs->setCurrentIndex(2); }); + connect(projectsTabButton, &QPushButton::clicked, [=]() { tabs->setCurrentIndex(3); }); + + // open homepage + tabs->setCurrentIndex(0); + + mainLayout->addLayout(tabButtons, 1, 0); + mainLayout->addWidget(tabs, 1, 1); // =================================================================================== // connects @@ -752,18 +822,6 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) connect(noteEdit, &QMarkdownTextEdit::textChanged, this, &MainWindow::updateMDPreview); - connect(tabs, &QTabWidget::currentChanged, this, [=]() { - updateTasksProgress(tabs, incompleteTasks, inprocessTasks, completeTasks, tasksProgress); - }); - - connect(tabs, &QTabWidget::currentChanged, this, - [=]() { getTotalTasks(tabs, incompleteTasks, inprocessTasks, completeTasks); }); - - connect(tabs, &QTabWidget::currentChanged, this, [=]() { - getTotalProjects(tabs, notStartedProjects, startedProjects, finishedProjects, - finishlineProjects); - }); - connect(completeTasks, &QListWidget::itemDoubleClicked, this, [=](QListWidgetItem *item) { renameItemOnDoubleClick(completeTasks, item); }); @@ -888,6 +946,18 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) } }); + connect(tabs, &QTabWidget::currentChanged, this, [=]() { + updateTasksProgress(tabs, incompleteTasks, inprocessTasks, completeTasks, tasksProgress); + }); + + connect(tabs, &QTabWidget::currentChanged, this, + [=]() { getTotalTasks(tabs, incompleteTasks, inprocessTasks, completeTasks); }); + + connect(tabs, &QTabWidget::currentChanged, this, [=]() { + getTotalProjects(tabs, notStartedProjects, startedProjects, finishedProjects, + finishlineProjects); + }); + QShortcut *openSettingsWindowQS = new QShortcut(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S), this); connect(openSettingsWindowQS, &QShortcut::activated, this, [this]() { openSettingsWindow(); }); diff --git a/src/CodeKeeper/mainwindow.h b/src/CodeKeeper/mainwindow.h index a9d068e..5473566 100644 --- a/src/CodeKeeper/mainwindow.h +++ b/src/CodeKeeper/mainwindow.h @@ -131,9 +131,14 @@ class MainWindow : public QMainWindow QMarkdownTextEdit *note; + QListWidget *incompleteTasks; + QListWidget *inprocessTasks; + QListWidget *completeTasks; + MainWindow(QWidget *parent = nullptr); ~MainWindow(); + bool isCustomTheme; bool isCreated; bool isReleaseDate; bool isLastCommit; @@ -313,9 +318,6 @@ private slots: // ======================================================== // tasks tab - QListWidget *incompleteTasks; - QListWidget *inprocessTasks; - QListWidget *completeTasks; QProgressBar *tasksProgress; QToolButton *tasksMenuBtn; @@ -326,6 +328,13 @@ private slots: QLineEdit *taskText; + // ======================================================== + + QPushButton *mainTabButton; + QPushButton *tasksTabButton; + QPushButton *notesTabButton; + QPushButton *projectsTabButton; + // ======================================================== // projects tab QLabel *projectsMainLabel; diff --git a/src/CodeKeeper/settingsFunc/functional.cpp b/src/CodeKeeper/settingsFunc/functional.cpp index 9a4c876..ee318e8 100644 --- a/src/CodeKeeper/settingsFunc/functional.cpp +++ b/src/CodeKeeper/settingsFunc/functional.cpp @@ -165,6 +165,9 @@ void SettingsWindow::saveData() isCustomTitlebar = customTitleBar->isChecked(); globalSettings->setValue("isCustomTitlebar", isCustomTitlebar); + isCustomTheme = customTheme->isChecked(); + globalSettings->setValue("isCustomTheme", isCustomTheme); + isCreated = CisCreated->isChecked(); globalSettings->setValue("isCreated", isCreated); isReleaseDate = CisReleaseDate->isChecked(); @@ -274,8 +277,8 @@ void SettingsWindow::setFontPr2(QFont *selectedFont, int *font_size_int) saveBtn->setFont(*selectedFont); saveBtn->setStyleSheet( - "QPushButton {background-color: transparent; color: #fff; font-size: " + font_size - + "pt;} QPushButton:hover {background-color: transparent; color: #7289DA; font-size: " + "QPushButton {border: none; background-color: transparent; color: #fff; font-size: " + font_size + + "pt;} QPushButton:hover {border: none; background-color: transparent; color: #7289DA; font-size: " + font_size + "pt;}"); appName->setFont(*selectedFont); @@ -345,6 +348,9 @@ void SettingsWindow::setFontPr2(QFont *selectedFont, int *font_size_int) customTitleBar->setFont(*selectedFont); customTitleBar->setStyleSheet("font-size: " + font_size + "pt;"); + customTheme->setFont(*selectedFont); + customTheme->setStyleSheet("font-size: " + font_size + "pt;"); + repoAvailability->setFont(*selectedFont); repoAvailability->setStyleSheet("font-size: " + font_size + "pt;"); diff --git a/src/CodeKeeper/settingswindow.cpp b/src/CodeKeeper/settingswindow.cpp index ff77bf4..592104a 100644 --- a/src/CodeKeeper/settingswindow.cpp +++ b/src/CodeKeeper/settingswindow.cpp @@ -31,6 +31,7 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QMainWindow{ parent } isAutoSyncB = globalSettings->value("isAutoSync").value(); isCustomTitlebar = globalSettings->value("isCustomTitlebar").value(); + isCustomTheme = globalSettings->value("isCustomTheme").value(); isCreated = globalSettings->value("isCreated").value(); isReleaseDate = globalSettings->value("isReleaseDate").value(); @@ -46,14 +47,14 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QMainWindow{ parent } isForks = globalSettings->value("isForks").value(); isRepoSize = globalSettings->value("isRepoSize").value(); - this->setStyleSheet(file.readAll()); + // this->setStyleSheet(file.readAll()); setWindowFlags(windowFlags() | Qt::FramelessWindowHint); centralWidget = new QWidget(this); setCentralWidget(centralWidget); mainLayout = new QVBoxLayout(centralWidget); - setFixedSize(600, 600); + setMinimumSize(600, 600); // tabs tabs = new QTabWidget(); @@ -205,17 +206,24 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QMainWindow{ parent } customTitleBar->setText("Use custom titlebar"); customTitleBar->setChecked(isCustomTitlebar); + qDebug() << "isCustomTheme: " << isCustomTheme; + + customTheme = new QCheckBox(); + customTheme->setText("Use custom theme"); + customTheme->setChecked(isCustomTheme); + themeSelector->addItem("Dark"); themeSelector->addItem("Light"); layout1->addWidget(mainTitle, 0, 2, 0, 4); - layout1->addWidget(customTitleBar, 1, 2, 1, 4, Qt::AlignHCenter); - layout1->addWidget(fontLabel, 2, 3); - layout1->addWidget(fontSelector, 2, 4); - layout1->addWidget(fontSizeLabel, 3, 3); - layout1->addWidget(fontSize, 3, 4); - layout1->addWidget(themeLabel, 4, 3); - layout1->addWidget(themeSelector, 4, 4); + layout1->addWidget(customTheme, 1, 2, 1, 4, Qt::AlignHCenter); + layout1->addWidget(customTitleBar, 2, 2, 1, 4, Qt::AlignHCenter); + layout1->addWidget(fontLabel, 3, 3); + layout1->addWidget(fontSelector, 3, 4); + layout1->addWidget(fontSizeLabel, 4, 3); + layout1->addWidget(fontSize, 4, 4); + layout1->addWidget(themeLabel, 5, 3); + layout1->addWidget(themeSelector, 5, 4); // storage tab QGridLayout *storageL = new QGridLayout; @@ -280,20 +288,30 @@ SettingsWindow::SettingsWindow(QWidget *parent) : QMainWindow{ parent } CisRepoSize = new QCheckBox("Repo size"); CisRepoSize->setChecked(isRepoSize); + QSpacerItem *checkBoxSpacer1 = new QSpacerItem(30, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); + QSpacerItem *checkBoxSpacer2 = new QSpacerItem(30, 0, QSizePolicy::Minimum, QSizePolicy::Expanding); + + QVBoxLayout *checkboxLayout = new QVBoxLayout(); + checkboxLayout->setAlignment(Qt::AlignCenter); + + checkboxLayout->addItem(checkBoxSpacer1); + checkboxLayout->addWidget(CisCreated); + checkboxLayout->addWidget(CisReleaseDate); + checkboxLayout->addWidget(CisLastCommit); + checkboxLayout->addWidget(CisPullReq); + checkboxLayout->addWidget(CisLicense); + checkboxLayout->addWidget(CisRelease); + checkboxLayout->addWidget(CisIssue); + checkboxLayout->addWidget(CisDownloads); + checkboxLayout->addWidget(CisCommit); + checkboxLayout->addWidget(CisLang); + checkboxLayout->addWidget(CisStars); + checkboxLayout->addWidget(CisForks); + checkboxLayout->addWidget(CisRepoSize); + checkboxLayout->addItem(checkBoxSpacer2); + projectsContentL->addWidget(projectsContentLabel, 0, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisCreated, 1, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisReleaseDate, 2, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisLastCommit, 3, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisPullReq, 4, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisLicense, 5, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisRelease, 6, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisIssue, 7, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisDownloads, 8, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisCommit, 9, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisLang, 10, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisStars, 11, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisForks, 12, 0, 1, 1, Qt::AlignCenter); - projectsContentL->addWidget(CisRepoSize, 13, 0, 1, 1, Qt::AlignCenter); + projectsContentL->addLayout(checkboxLayout, 2, 0, 1, 1, Qt::AlignCenter); // info tab QWidget *aboutTab = new QWidget(); diff --git a/src/CodeKeeper/settingswindow.h b/src/CodeKeeper/settingswindow.h index 0cab658..2848930 100644 --- a/src/CodeKeeper/settingswindow.h +++ b/src/CodeKeeper/settingswindow.h @@ -26,6 +26,7 @@ class SettingsWindow : public QMainWindow bool isHostB; bool isAutoSyncB; bool isCustomTitlebar; + bool isCustomTheme; bool isCreated; bool isReleaseDate; @@ -94,6 +95,7 @@ private slots: QFontComboBox *fontSelector; QComboBox *themeSelector; + QCheckBox *customTheme; QCheckBox *customTitleBar; // storage diff --git a/src/CodeKeeper/syncwindow.cpp b/src/CodeKeeper/syncwindow.cpp index 256879a..8299584 100644 --- a/src/CodeKeeper/syncwindow.cpp +++ b/src/CodeKeeper/syncwindow.cpp @@ -18,7 +18,7 @@ SyncWindow::SyncWindow(QWidget *parent) : QMainWindow(parent) setCentralWidget(centralWidget); this->setWindowFlags(windowFlags() | Qt::FramelessWindowHint); this->setFixedSize(300, 500); - this->setStyleSheet(file.readAll()); + // this->setStyleSheet(file.readAll()); globalSettings = new QSettings("CodeKeeper", "CodeKeeper"); selectedFont = globalSettings->value("font").value(); diff --git a/src/stylesheet/custom_stylesheet.qss b/src/stylesheet/custom_stylesheet.qss new file mode 100644 index 0000000..c70e638 --- /dev/null +++ b/src/stylesheet/custom_stylesheet.qss @@ -0,0 +1,538 @@ +QDialog { + background-color: #0d1117; + border-width: 2px; +} + +QTableWidget { + background-color: #0d1117; + alternate-background-color: #171b22; + show-decoration-selected: 0; + border: 0px; + border-radius: 5px; +} +QTableWidget::item { + border-radius: 5px; +} + +QWidget { + background-color: #0D1117; + border-width: 2px; + border-color: #fff; +} +QMainWindow { + background-color: #0D1117; + color: #fff; +} + +QCheckBox { + color: #fff; +} +QCheckBox::indicator { + border-radius: 7px; + width: 15px; + height: 15px; +} +QCheckBox::indicator:unchecked { + border-radius: 7px; + background-color: #171b22; +} +QCheckBox::indicator:unchecked:hover { + border-radius: 7px; + background-color: #171b22; +} + +QCheckBox::indicator:unchecked:pressed { + border-radius: 7px; + background-color: #171b22; +} + +QCheckBox::indicator:checked { + border-radius: 7px; + background-color: #c3e88d; +} + +QCheckBox::indicator:checked:hover { + border-radius: 7px; + background-color: #c3e88d; +} + +QCheckBox::indicator:checked:pressed { + border-radius: 7px; + background-color: #c3e88d; +} + +QCheckBox::indicator:indeterminate:hover { + border-radius: 7px; + background-color: #c3e88d; +} + +QCheckBox::indicator:indeterminate:pressed { + border-radius: 7px; + background-color: #c3e88d; +} + +QStatusBar { + background-color: #0D1117; + border-top-left-radius: 12px; + border-top-right-radius: 12px; + border-bottom-right-radius: 12px; + border-bottom-left-radius: 12px; +} + +QStatusBar::QSizeGrip { + background-color: transparent; +} + +QSizeGrip { + background-color: transparent; + border-radius: 10px; +} + +QMarkdownTextEdit { + line-height: 10px; + background-color: #0d1117; + border-radius: 10px; +} + +QMarkdownTextEdit::lineNumber { + background-color: #5260bb; + border-radius: 10px; +} + +QMarkdownTextEdit::lineNumber:selected { + color: #fff; + background-color: #0d1117; + border-radius: 10px; +} + +QMarkdownTextEdit::lineNumber::selected:active { + color: #05ff00; + background-color: #0d1117; + border-radius: 10px; +} + +QFileDialog { + background-color: #1a1b26; +} + +QFileDialog QLabel { + color: #a9b1d6; +} + +QFileDialog QListView { + background-color: #1a1b26; + color: #a9b1d6; +} + +QFileDialog QTreeView { + background-color: #1a1b26; + color: #a9b1d6; +} + +QFileDialog QListView::item { + padding: 6px; +} + +QFileDialog QListView::item:hover { + background: #34354a; +} + +QFileDialog QListView::item:selected { + background: #2a2b3b; +} + +QFileDialog QPushButton { + background-color: #565f89; + color: #fff; + border: 1px solid #565f89; + border-radius: 5px; + height: 30px; + min-width: 80px; +} + +QFileDialog QPushButton:hover { + background-color: #7785a2; + border: 1px solid #7785a2; +} + +QFontComboBox { + color: #fff; + border-radius: 10px; + background-color: #7289da; + alternate-background-color: #7289DA; +} + +QComboBox { + color: #fff; + border-radius: 10px; + background-color: #7289da; + alternate-background-color: #7289DA; +} + +QSpinBox { + color: #fff; + background-color: #7289da; + border-radius: 10px; + alternate-background-color: #7289DA; +} + +QTabWidget { + background-color: #0d1117; + font-size: 9px; +} + +QTabWidget::pane { + border: 0px solid lightgray; + border-radius: 10px; + top:-1px; + background: #0D1117;; +} + +QMenu { + background-color: #0d1117; + color: #fff; + border: 1px solid #fff; + border-radius: 10px; +} + +QMenu::separator { + height: 3px; + border-radius: 1px; + background-color: #fff; +} + +QMenu::item { + border-radius: 0px; + color: #fff; + margin: 5px 10px; +} + +QMenu::item:selected { + border-radius: 10px; + color: #7289DA; + text-decoration: none; +} +QMenu::indicator { + border-radius: 5px; + width: 10px; + height: 10px; +} +QMenu::indicator:unchecked { + border-radius: 5px; + background-color: #171b22; +} +QMenu::indicator:unchecked:hover { + border-radius: 5px; + background-color: #171b22; +} + +QMenu::indicator:unchecked:pressed { + border-radius: 5px; + background-color: #171b22; +} +QMenu::indicator:checked { + border-radius: 5px; + background-color: #c3e88d; +} +QMenu::indicator:checked:hover { + border-radius: 5px; + background-color: #c3e88d; +} +QMenu::indicator:checked:pressed { + border-radius: 5px; + background-color: #c3e88d; +} +QMenu::indicator:indeterminate:hover { + border-radius: 5px; + background-color: #c3e88d; +} +QMenu::indicator:indeterminate:pressed { + border-radius: 5px; + background-color: #c3e88d; +} + + +QToolButton:pressed { + background-color: #505a6a; +} +QToolButton { + background-color: #0d1117; + selection-background-color: #7289DA; + color: #fff; + border-width: 2px; + border-style: solid; + border-radius: 10px; + alignment: center; + border-color: #0d1117; +} + +QTabWidget::tab-bar { alignment: center; } + +QTabBar::tab { + height: 10px; + width: 100px; + font-size: 10px; + background: #0d1117; + color: #fff; + border: 0px solid lightgray; + border-radius: 5px; + margin: 5px; + padding: 5px 5px; + margin-bottom: 1px; +} + +QTabBar::tab:selected { + height: 10px; + width: 100px; + font-size: 10px; + color: #fff; + background: #7289DA; + padding: 5px 5px; + border-radius: 5px; + margin-bottom: 1px; +} + + +QPushButton { + background-color: #7289DA; + selection-background-color: #7289DA; + color: #fff; + border-width: 2px; + border-style: solid; + border-radius: 10px; + alignment: center; + border-color: #0d1117; +} + +QPushButton::ToolTip { + color: #fff; +} + +QLabel { + color: #fff; +} + +QLineEdit { + background-color: #7289DA; + selection-background-color: #999999; + selection-color: #fff; + color: #fff; + border-width: 0px; + border-style: solid; + border-radius: 10px; + border-color: #0d1117; + alternate-background-color: #181818; +} + +QPlainTextEdit { + background-color: #0D1117; + selection-background-color: #999999; + selection-color: #fff; + color: #fff; + border-width: 0px; + border-style: solid; + border-radius: 10px; + border-color: #0d1117; + alternate-background-color: #181818; +} + +QTextBrowser { + line-height: 10px; + background-color: #0D1117; + selection-background-color: #999999; + selection-color: #fff; + color: #fff; + border-width: 0px; + border-style: solid; + border-radius: 10px; + border-color: #0d1117; + alternate-background-color: #181818; +} + + +QListWidget { + background-color: #0d1117; + color: #fff; + selection-color: #fff; + border-width: 0px; + border-style: solid; + border-radius: 5px; + border-color: #0d1117; + alternate-background-color: #181818; +} + +QListWidget::item:selected { + color: #fff; + background-color: #7289DA; + border-radius: 5px; +} + +QGroupBox { + color: #fff; + background-color: #0d1117; + border-radius: 10px; +} + +QTreeView { + background-color: #0d1117; + selection-background-color: #7289DA; + selection-color: #fff; + color: #fff; + border-width: 0px; + border-style: solid; + border-radius: 10px; + border-color: #7289DA; + alternate-background-color: #7289DA; +} + +QTreeView::item:alternate { + height: 14px; + background-color: #0d1117; + border-radius: 0px; +} + +QTreeView::item:selected { + height: 14px; + background-color: #7289da; + border: 0px solid #7289DA; + border-radius: 0px; +} + +QTreeView::item:selected:!active { + height: 14px; + background-color: #0D1117; + color: #fff; + border-radius: 0px; +} + +QTreeView::item:selected:active { + height: 14px; + background-color: #7289da; + color: #fff; + border-radius: 0px; +} + +QTreeView::item:hover { + height: 14px; + background-color: #0D1117; + border-radius: 0px; +} + +QHeaderView { + border: 1px solid #0d1117; + background-color: #0d1117; + color: #fff; +} + +QHeaderView::section { + border: 1px solid #0d1117; + background-color: #0d1117; + color: #fff; +} + +QHeaderView::section:checked { + border: 1px solid #0d1117; + background-color: #0d1117; + color: #fff; +} + +QHeaderView::section:checked:horizontal { + border: 1px solid #0d1117; + background-color: #0d1117; + color: #fff; +} + +QHeaderView::section:checked:vertical { + border: 1px solid #0d1117; + background-color: #0d1117; + color: #fff; +} + +QProgressBar { + color: #0D1117; + background-color: #ff757f; + border-radius: 5px; +} + +QProgressBar::chunk { + color: #0D1117; + background-color: #c3e88d; + border-radius: 5px; +} + + + +QScrollBar:vertical { + background: #0D1117; + border-radius: 3px; + width: 6px; + margin: 3px 0px 3px 0px; +} + +QScrollBar:horizontal { + background: #0D1117; + border-radius: 3px; + height: 6px; + margin: 0px 0px 0px 0px; +} + +QScrollBar::handle:vertical { + border-radius: 3px; + background: #666c72; + height: 6px; +} + +QScrollBar::handle:horizontal { + border-radius: 3px; + background: #666c72; + min-width: 20px; +} + +QScrollBar::handle:vertical:hover, QScrollBar::handle:horizontal:hover { + border-radius: 2px; + background: #666c72; +} + +QScrollBar::add-line, QScrollBar::sub-line { + border-radius: 2px; + background: #0D1117; +} + +QScrollBar::add-line:vertical { + border-radius: 2px; + subcontrol-position: bottom; + subcontrol-origin: margin; + height: 0px; +} + +QScrollBar::sub-line:vertical { + border-radius: 2px; + subcontrol-position: top; + subcontrol-origin: margin; + height: 0px; +} + +QScrollBar::add-line:horizontal { + border-radius: 2px; + subcontrol-position: right; + subcontrol-origin: margin; + width: 0px; +} + +QScrollBar::sub-line:horizontal { + border-radius: 2px; + subcontrol-position: left; + subcontrol-origin: margin; + width: 0px; +} + +QScrollBar::add-page, QScrollBar::sub-page { + background: #0D1117; +} + +QToolTip { + color: #ffffff; + border: 10px #171b22; + border-radius: 5px; + background-color: #171b22; +} \ No newline at end of file diff --git a/src/stylesheet/stylesheet.qss b/src/stylesheet/stylesheet.qss index c70e638..bbf1538 100644 --- a/src/stylesheet/stylesheet.qss +++ b/src/stylesheet/stylesheet.qss @@ -1,538 +1,47 @@ -QDialog { - background-color: #0d1117; - border-width: 2px; -} - -QTableWidget { - background-color: #0d1117; - alternate-background-color: #171b22; - show-decoration-selected: 0; - border: 0px; - border-radius: 5px; -} -QTableWidget::item { - border-radius: 5px; -} - -QWidget { - background-color: #0D1117; - border-width: 2px; - border-color: #fff; -} -QMainWindow { - background-color: #0D1117; - color: #fff; -} - -QCheckBox { - color: #fff; -} -QCheckBox::indicator { - border-radius: 7px; - width: 15px; - height: 15px; -} -QCheckBox::indicator:unchecked { - border-radius: 7px; - background-color: #171b22; -} -QCheckBox::indicator:unchecked:hover { - border-radius: 7px; - background-color: #171b22; -} - -QCheckBox::indicator:unchecked:pressed { - border-radius: 7px; - background-color: #171b22; -} - -QCheckBox::indicator:checked { - border-radius: 7px; - background-color: #c3e88d; -} - -QCheckBox::indicator:checked:hover { - border-radius: 7px; - background-color: #c3e88d; -} - -QCheckBox::indicator:checked:pressed { - border-radius: 7px; - background-color: #c3e88d; -} - -QCheckBox::indicator:indeterminate:hover { - border-radius: 7px; - background-color: #c3e88d; -} - -QCheckBox::indicator:indeterminate:pressed { - border-radius: 7px; - background-color: #c3e88d; -} - -QStatusBar { - background-color: #0D1117; - border-top-left-radius: 12px; - border-top-right-radius: 12px; - border-bottom-right-radius: 12px; - border-bottom-left-radius: 12px; -} - -QStatusBar::QSizeGrip { - background-color: transparent; -} - -QSizeGrip { - background-color: transparent; - border-radius: 10px; -} - -QMarkdownTextEdit { - line-height: 10px; - background-color: #0d1117; - border-radius: 10px; -} - -QMarkdownTextEdit::lineNumber { - background-color: #5260bb; - border-radius: 10px; -} - -QMarkdownTextEdit::lineNumber:selected { - color: #fff; - background-color: #0d1117; - border-radius: 10px; -} - -QMarkdownTextEdit::lineNumber::selected:active { - color: #05ff00; - background-color: #0d1117; - border-radius: 10px; -} - -QFileDialog { - background-color: #1a1b26; -} - -QFileDialog QLabel { - color: #a9b1d6; -} - -QFileDialog QListView { - background-color: #1a1b26; - color: #a9b1d6; -} - -QFileDialog QTreeView { - background-color: #1a1b26; - color: #a9b1d6; -} - -QFileDialog QListView::item { - padding: 6px; -} - -QFileDialog QListView::item:hover { - background: #34354a; -} - -QFileDialog QListView::item:selected { - background: #2a2b3b; -} - -QFileDialog QPushButton { - background-color: #565f89; - color: #fff; - border: 1px solid #565f89; - border-radius: 5px; - height: 30px; - min-width: 80px; -} - -QFileDialog QPushButton:hover { - background-color: #7785a2; - border: 1px solid #7785a2; -} - -QFontComboBox { - color: #fff; - border-radius: 10px; - background-color: #7289da; - alternate-background-color: #7289DA; -} - -QComboBox { - color: #fff; - border-radius: 10px; - background-color: #7289da; - alternate-background-color: #7289DA; -} - -QSpinBox { - color: #fff; - background-color: #7289da; - border-radius: 10px; - alternate-background-color: #7289DA; -} - -QTabWidget { - background-color: #0d1117; - font-size: 9px; -} - -QTabWidget::pane { - border: 0px solid lightgray; - border-radius: 10px; - top:-1px; - background: #0D1117;; -} - -QMenu { - background-color: #0d1117; - color: #fff; - border: 1px solid #fff; - border-radius: 10px; -} - -QMenu::separator { - height: 3px; - border-radius: 1px; - background-color: #fff; -} - -QMenu::item { - border-radius: 0px; - color: #fff; - margin: 5px 10px; -} - -QMenu::item:selected { - border-radius: 10px; - color: #7289DA; - text-decoration: none; -} -QMenu::indicator { - border-radius: 5px; - width: 10px; - height: 10px; -} -QMenu::indicator:unchecked { - border-radius: 5px; - background-color: #171b22; -} -QMenu::indicator:unchecked:hover { - border-radius: 5px; - background-color: #171b22; -} - -QMenu::indicator:unchecked:pressed { - border-radius: 5px; - background-color: #171b22; -} -QMenu::indicator:checked { - border-radius: 5px; - background-color: #c3e88d; -} -QMenu::indicator:checked:hover { - border-radius: 5px; - background-color: #c3e88d; -} -QMenu::indicator:checked:pressed { - border-radius: 5px; - background-color: #c3e88d; -} -QMenu::indicator:indeterminate:hover { - border-radius: 5px; - background-color: #c3e88d; -} -QMenu::indicator:indeterminate:pressed { - border-radius: 5px; - background-color: #c3e88d; -} - - -QToolButton:pressed { - background-color: #505a6a; -} -QToolButton { - background-color: #0d1117; - selection-background-color: #7289DA; - color: #fff; - border-width: 2px; - border-style: solid; - border-radius: 10px; - alignment: center; - border-color: #0d1117; -} - -QTabWidget::tab-bar { alignment: center; } - -QTabBar::tab { - height: 10px; - width: 100px; - font-size: 10px; - background: #0d1117; - color: #fff; - border: 0px solid lightgray; - border-radius: 5px; - margin: 5px; - padding: 5px 5px; - margin-bottom: 1px; -} - -QTabBar::tab:selected { - height: 10px; - width: 100px; - font-size: 10px; - color: #fff; - background: #7289DA; - padding: 5px 5px; - border-radius: 5px; - margin-bottom: 1px; -} - - -QPushButton { - background-color: #7289DA; - selection-background-color: #7289DA; - color: #fff; - border-width: 2px; - border-style: solid; - border-radius: 10px; - alignment: center; - border-color: #0d1117; -} - -QPushButton::ToolTip { - color: #fff; -} - -QLabel { - color: #fff; -} - -QLineEdit { - background-color: #7289DA; - selection-background-color: #999999; - selection-color: #fff; - color: #fff; - border-width: 0px; - border-style: solid; - border-radius: 10px; - border-color: #0d1117; - alternate-background-color: #181818; -} - -QPlainTextEdit { - background-color: #0D1117; - selection-background-color: #999999; - selection-color: #fff; - color: #fff; - border-width: 0px; - border-style: solid; - border-radius: 10px; - border-color: #0d1117; - alternate-background-color: #181818; -} - -QTextBrowser { - line-height: 10px; - background-color: #0D1117; - selection-background-color: #999999; - selection-color: #fff; - color: #fff; - border-width: 0px; - border-style: solid; - border-radius: 10px; - border-color: #0d1117; - alternate-background-color: #181818; -} - - -QListWidget { - background-color: #0d1117; - color: #fff; - selection-color: #fff; - border-width: 0px; - border-style: solid; - border-radius: 5px; - border-color: #0d1117; - alternate-background-color: #181818; -} - -QListWidget::item:selected { - color: #fff; - background-color: #7289DA; - border-radius: 5px; -} - -QGroupBox { - color: #fff; - background-color: #0d1117; - border-radius: 10px; -} - -QTreeView { - background-color: #0d1117; - selection-background-color: #7289DA; - selection-color: #fff; - color: #fff; - border-width: 0px; - border-style: solid; - border-radius: 10px; - border-color: #7289DA; - alternate-background-color: #7289DA; -} - -QTreeView::item:alternate { - height: 14px; - background-color: #0d1117; - border-radius: 0px; -} - -QTreeView::item:selected { - height: 14px; - background-color: #7289da; - border: 0px solid #7289DA; - border-radius: 0px; -} - -QTreeView::item:selected:!active { - height: 14px; - background-color: #0D1117; - color: #fff; - border-radius: 0px; -} - -QTreeView::item:selected:active { - height: 14px; - background-color: #7289da; - color: #fff; - border-radius: 0px; -} - -QTreeView::item:hover { - height: 14px; - background-color: #0D1117; - border-radius: 0px; -} - -QHeaderView { - border: 1px solid #0d1117; - background-color: #0d1117; - color: #fff; -} - -QHeaderView::section { - border: 1px solid #0d1117; - background-color: #0d1117; - color: #fff; -} - -QHeaderView::section:checked { - border: 1px solid #0d1117; - background-color: #0d1117; - color: #fff; -} - -QHeaderView::section:checked:horizontal { - border: 1px solid #0d1117; - background-color: #0d1117; - color: #fff; -} - -QHeaderView::section:checked:vertical { - border: 1px solid #0d1117; - background-color: #0d1117; - color: #fff; -} - -QProgressBar { - color: #0D1117; - background-color: #ff757f; - border-radius: 5px; -} - -QProgressBar::chunk { - color: #0D1117; - background-color: #c3e88d; - border-radius: 5px; -} - - - -QScrollBar:vertical { - background: #0D1117; - border-radius: 3px; - width: 6px; - margin: 3px 0px 3px 0px; -} - -QScrollBar:horizontal { - background: #0D1117; - border-radius: 3px; - height: 6px; - margin: 0px 0px 0px 0px; -} - -QScrollBar::handle:vertical { - border-radius: 3px; - background: #666c72; - height: 6px; -} - -QScrollBar::handle:horizontal { - border-radius: 3px; - background: #666c72; - min-width: 20px; -} - -QScrollBar::handle:vertical:hover, QScrollBar::handle:horizontal:hover { - border-radius: 2px; - background: #666c72; -} - -QScrollBar::add-line, QScrollBar::sub-line { - border-radius: 2px; - background: #0D1117; -} - -QScrollBar::add-line:vertical { - border-radius: 2px; - subcontrol-position: bottom; - subcontrol-origin: margin; - height: 0px; -} - -QScrollBar::sub-line:vertical { - border-radius: 2px; - subcontrol-position: top; - subcontrol-origin: margin; - height: 0px; -} - -QScrollBar::add-line:horizontal { - border-radius: 2px; - subcontrol-position: right; - subcontrol-origin: margin; - width: 0px; -} - -QScrollBar::sub-line:horizontal { - border-radius: 2px; - subcontrol-position: left; - subcontrol-origin: margin; - width: 0px; -} - -QScrollBar::add-page, QScrollBar::sub-page { - background: #0D1117; -} - -QToolTip { - color: #ffffff; - border: 10px #171b22; - border-radius: 5px; - background-color: #171b22; +QTreeView { + background-color: transparent; + border: none; +} + +QMarkdownTextEdit { + background-color: transparent; + border: none; +} + +QMarkdownTextEdit::lineNumber { + background-color: #5260bb; + border-radius: 10px; +} + +QMarkdownTextEdit::lineNumber:selected { + color: #fff; + background-color: #0d1117; + border-radius: 10px; +} + +QMarkdownTextEdit::lineNumber::selected:active { + color: #05ff00; + background-color: #0d1117; + border-radius: 10px; +} + +QListWidget { + background-color: transparent; + border: none; +} + +QLineEdit { + border-radius: 10px; +} + +QProgressBar { + color: #0D1117; + height: auto; + background-color: #ff757f; + border-radius: 5px; +} +QProgressBar::chunk { + color: #0D1117; + background-color: #c3e88d; + border-radius: 5px; } \ No newline at end of file