Skip to content

Commit

Permalink
adding color shemes settings
Browse files Browse the repository at this point in the history
  • Loading branch information
zakariakov committed Nov 15, 2017
1 parent 12e371d commit 0c8dae9
Show file tree
Hide file tree
Showing 8 changed files with 193 additions and 54 deletions.
1 change: 0 additions & 1 deletion elokab-terminal/elokab-terminal.pro
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ UI_DIR = build
INCLUDEPATH +=build
#-------


LIBS += $(SUBLIBS) -L../usr/lib -L$$PWD/../usr/lib -leterminal
QMAKE_INCDIR += $$PWD/../library/include $$PWD/../library

Expand Down
3 changes: 2 additions & 1 deletion elokab-terminal/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,9 @@ int main(int argc, char *argv[])
//TODO
translator.load(p);
a.installTranslator(&translator);
QLocale lx=QLocale(locale);

a.setLayoutDirection(lx.textDirection());
QIcon icon=QIcon::fromTheme("terminal",QIcon(":/icons/terminal.png"));
a.setWindowIcon(icon);
//------------------------------------argument-------------------------------------------------
Expand Down Expand Up @@ -93,5 +95,4 @@ int main(int argc, char *argv[])
w.show();

return a.exec();

}
4 changes: 2 additions & 2 deletions elokab-terminal/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ int opacity=setting.value("Opacity",100).toInt();
QString shell=setting.value("Shell",QString()).toString();
terminaleWidget-> setShellProgram(shell);
terminaleWidget->setTerminalFont(f);
terminaleWidget->setColorScheme(color+1);
terminaleWidget->setColorScheme(4);
terminaleWidget->setScrollBarPosition(spos);
terminaleWidget->setInitialWorkingDirectory(wDir);
terminaleWidget->startShellProgram();
Expand Down Expand Up @@ -306,7 +306,7 @@ void MainWindow::settingShow()
termWidget->setScrollBarPosition(spos);


termWidget->setColorScheme(colorIndex);
termWidget->setColorScheme(4);

termWidget->setTerminalOpacity(qreal(opacity)/100);

Expand Down
127 changes: 100 additions & 27 deletions elokab-terminal/settingdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
#include <QSettings>
#include <QLayout>
#include <QTimer>
#include <QFileDialog>
#include <QApplication>
#include <QComboBox>
SettingDialog::SettingDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::SettingDialog)
Expand All @@ -15,9 +18,9 @@ SettingDialog::SettingDialog(QWidget *parent) :
for (int i = 0; i < 16; ++i) {
btnColor[i]=new ButtonColor;
if(i<8){
ui->gridLayoutBtn->addWidget(btnColor[i],1,i);
ui->gridLayoutBtn->addWidget(btnColor[i],1,i);
}else{
ui->gridLayoutBtn->addWidget(btnColor[i],2,i-8);
ui->gridLayoutBtn->addWidget(btnColor[i],2,i-8);
}

}
Expand All @@ -32,30 +35,30 @@ SettingDialog::SettingDialog(QWidget *parent) :
int colorSheme=setting.value("ColorSheme",0).toInt();
int sPos=setting.value("ScrollBar",0).toInt();
QString txt=setting.value("Shell","/bin/bash").toString();
QColor fcolor=setting.value("FontColor",QColor(255,255,255)).value<QColor>();
QColor bcolor=setting.value("BackColor",QColor(0,0,0)).value<QColor>();
int opacity=setting.value("Opacity",100).toInt();


setting.beginGroup("colors");
QColor fcolor=setting.value("foreground",QColor(255,255,255)).value<QColor>();
QColor bcolor=setting.value("background",QColor(0,0,0)).value<QColor>();

QList<QColor> listColor;
listColor<<QColor(0, 0, 0)<<QColor(178, 24, 24)
<<QColor( 24, 178, 24)<<QColor( 178, 104, 24)
<<QColor( 24, 24, 178)<<QColor( 178, 24, 178)
<<QColor( 24, 178, 178)<<QColor( 178, 178, 178)
<<QColor( 104, 104, 104)<<QColor( 255, 84, 84)
<<QColor( 84, 255, 84)<<QColor( 255, 255, 84)
<<QColor( 84, 84, 255)<<QColor( 255, 84, 255)
<<QColor( 84, 255, 255) <<QColor( 255, 255, 255);



<<QColor( 24, 178, 24)<<QColor( 178, 104, 24)
<<QColor( 24, 24, 178)<<QColor( 178, 24, 178)
<<QColor( 24, 178, 178)<<QColor( 178, 178, 178)
<<QColor( 104, 104, 104)<<QColor( 255, 84, 84)
<<QColor( 84, 255, 84)<<QColor( 255, 255, 84)
<<QColor( 84, 84, 255)<<QColor( 255, 84, 255)
<<QColor( 84, 255, 255) <<QColor( 255, 255, 255);


for (int i = 0; i < 16; ++i) {
btnColor[i]->setColor(setting.value("Color"+QString::number(i),listColor.at(i)).value<QColor>());
btnColor[i]->setColor(setting.value("color"+QString::number(i),listColor.at(i)).value<QColor>());
}

setting.endGroup();

btnBColor->setColor(bcolor);
btnFColor->setColor(fcolor);
ui->hLayoutBackColor->addWidget(btnBColor);
Expand All @@ -70,12 +73,23 @@ SettingDialog::SettingDialog(QWidget *parent) :
ui->fontComboBox->setCurrentFont(f);
ui->fontComboBox->setEditable(false);

//Color Shemes --------------------------------
QDir appDir(QApplication::applicationDirPath());
appDir.cdUp();
QString mPath= appDir.absolutePath()+"/share/elokab/color-shemes";
QDir dirSheme(mPath);
QStringList listShemes=dirSheme.entryList(QStringList() << "*.txt",QDir::Files);
foreach (QString fileName, listShemes) {
QFileInfo fi(mPath+"/"+fileName);
ui->themesComboBox->addItem(fi.completeBaseName(),fi.filePath());
}
//END Color Shemes --------------------------------
ui->sizeSpinBox->setValue(f.pointSize());
ui->themesComboBox->setCurrentIndex(colorSheme);
// ui->themesComboBox->setCurrentIndex(-1);
ui->ScrollBarComboBox->setCurrentIndex(sPos);
ui->lineEditShell->setText(txt);
ui->spinBoxOPacity->setValue(opacity);
ui->widgetCostumColor->setVisible(colorSheme==3);
//ui->widgetCostumColor->setVisible(colorSheme!=1);

}

Expand Down Expand Up @@ -121,24 +135,83 @@ void SettingDialog::on_buttonBox_accepted()
setting.setValue("ColorSheme",ui->themesComboBox->currentIndex());
setting.setValue("ScrollBar",ui->ScrollBarComboBox->currentIndex());
setting.setValue("Shell",ui->lineEditShell->text());
setting.setValue("Opacity",ui->spinBoxOPacity->value());

setting.setValue("BackColor",btnBColor->color());
//colors-sheme
setting.beginGroup("colors");

setting.setValue("background",btnBColor->color().name());
setting.setValue("foreground",btnFColor->color().name());
for (int i = 0; i < 16; ++i) {
setting.setValue("color"+QString::number(i),btnColor[i]->color().name());
}

setting.setValue("FontColor",btnFColor->color());
setting.setValue("Opacity",ui->spinBoxOPacity->value());
for (int i = 0; i < 16; ++i) {
setting.setValue("Color"+QString::number(i),btnColor[i]->color());
}
setting.endGroup();
}

void SettingDialog::on_themesComboBox_currentIndexChanged(int index)
{
ui->widgetCostumColor->setVisible(index==3);
resize(100,100);
adjustSize();
QTimer::singleShot(10,this,SLOT(meAdjustSize() ));
// ui->widgetCostumColor->setVisible(index!=0);
// resize(100,100);
// adjustSize();
//QTimer::singleShot(10,this,SLOT(meAdjustSize() ));
QString fileName=ui->themesComboBox->itemData(index).toString();

loadColorShemes(fileName);
}
void SettingDialog::meAdjustSize()
{
adjustSize();
}

void SettingDialog::on_pushButton_clicked()
{

QString fileName= QFileDialog::getOpenFileName(this,"Open",QDir::homePath(),"*");
if(fileName.isEmpty())return;

// ui->themesComboBox->setCurrentIndex(0);

loadColorShemes(fileName);


}

void SettingDialog::loadColorShemes(const QString &fileNames)
{
if(fileNames.isEmpty()){
QColor fcolor=QColor(255,255,255);
QColor bcolor=QColor(0,0,0);

QList<QColor> listColor;
listColor<<QColor(0, 0, 0)<<QColor(178, 24, 24)
<<QColor( 24, 178, 24)<<QColor( 178, 104, 24)
<<QColor( 24, 24, 178)<<QColor( 178, 24, 178)
<<QColor( 24, 178, 178)<<QColor( 178, 178, 178)
<<QColor( 104, 104, 104)<<QColor( 255, 84, 84)
<<QColor( 84, 255, 84)<<QColor( 255, 255, 84)
<<QColor( 84, 84, 255)<<QColor( 255, 84, 255)
<<QColor( 84, 255, 255) <<QColor( 255, 255, 255);

btnBColor->setColor(bcolor);
btnFColor->setColor(fcolor);
for (int i = 0; i < 16; ++i) {
btnColor[i]->setColor(listColor.at(i));
}
}else{
QSettings setting(fileNames,QSettings::IniFormat);

setting.beginGroup("colors");
QColor fcolor=setting.value("foreground",QColor(255,255,255)).value<QColor>();
QColor bcolor=setting.value("background",QColor(0,0,0)).value<QColor>();
btnBColor->setColor(bcolor);
btnFColor->setColor(fcolor);
for (int i = 0; i < 16; ++i) {
btnColor[i]->setColor(setting.value("color"+QString::number(i),btnColor[i]->color()).value<QColor>());
}

setting.endGroup();
}

}

2 changes: 2 additions & 0 deletions elokab-terminal/settingdialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ void on_buttonBox_accepted();

void on_themesComboBox_currentIndexChanged(int index);
void meAdjustSize();
void on_pushButton_clicked();
void loadColorShemes(const QString &fileNames);
private:
Ui::SettingDialog *ui;

Expand Down
92 changes: 72 additions & 20 deletions elokab-terminal/settingdialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,25 @@
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="horizontalSlider">
<property name="minimum">
<number>10</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
<property name="value">
<number>100</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="spinBoxOPacity">
<property name="suffix">
Expand Down Expand Up @@ -133,28 +152,29 @@
</item>
<item>
<widget class="QComboBox" name="themesComboBox">
<property name="currentIndex">
<number>-1</number>
</property>
<item>
<property name="text">
<string>Black White</string>
</property>
</item>
<item>
<property name="text">
<string>Black Green</string>
</property>
</item>
<item>
<property name="text">
<string>Light Yellow Black</string>
</property>
</item>
<item>
<property name="text">
<string>Costum Color</string>
<string>DEfault</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Get sheme</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
Expand Down Expand Up @@ -292,8 +312,8 @@
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
<x>257</x>
<y>576</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
Expand All @@ -308,14 +328,46 @@
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
<x>325</x>
<y>576</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>horizontalSlider</sender>
<signal>valueChanged(int)</signal>
<receiver>spinBoxOPacity</receiver>
<slot>setValue(int)</slot>
<hints>
<hint type="sourcelabel">
<x>382</x>
<y>115</y>
</hint>
<hint type="destinationlabel">
<x>425</x>
<y>108</y>
</hint>
</hints>
</connection>
<connection>
<sender>spinBoxOPacity</sender>
<signal>valueChanged(int)</signal>
<receiver>horizontalSlider</receiver>
<slot>setValue(int)</slot>
<hints>
<hint type="sourcelabel">
<x>417</x>
<y>122</y>
</hint>
<hint type="destinationlabel">
<x>399</x>
<y>121</y>
</hint>
</hints>
</connection>
</connections>
</ui>
Loading

0 comments on commit 0c8dae9

Please sign in to comment.