Upload files to "/"
This commit is contained in:
parent
b0e5395d42
commit
742c7be190
5 changed files with 253 additions and 0 deletions
88
autostart.h
Normal file
88
autostart.h
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
#ifndef AUTOSTART_H
|
||||||
|
#define AUTOSTART_H
|
||||||
|
|
||||||
|
#include <qglobal.h>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QCoreApplication>
|
||||||
|
|
||||||
|
#define MY_APP_NAME "NumLockManager"
|
||||||
|
#define MY_APP_PATH QDir::toNativeSeparators(QCoreApplication::applicationFilePath())
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef Q_OS_WIN
|
||||||
|
#include <QSettings>
|
||||||
|
|
||||||
|
class Autostart{
|
||||||
|
public:
|
||||||
|
Autostart (){}
|
||||||
|
~Autostart(){delete settings;}
|
||||||
|
|
||||||
|
bool status(){
|
||||||
|
return !settings->value(MY_APP_NAME).toString().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
void set(bool s){
|
||||||
|
s ? settings->setValue(MY_APP_NAME, MY_APP_PATH) : settings->remove(MY_APP_NAME);
|
||||||
|
settings->sync();
|
||||||
|
}
|
||||||
|
|
||||||
|
void switch_(){
|
||||||
|
status() ? settings->remove(MY_APP_NAME) : settings->setValue(MY_APP_NAME, MY_APP_PATH);
|
||||||
|
settings->sync();
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
QSettings * settings = new QSettings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef Q_OS_LINUX
|
||||||
|
#include <QFile>
|
||||||
|
#include <QStandardPaths>
|
||||||
|
|
||||||
|
class Autostart{
|
||||||
|
public:
|
||||||
|
Autostart (){
|
||||||
|
file_data = file_data.replace("$", MY_APP_PATH);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool status(){
|
||||||
|
return QFile::exists(file_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
void set(bool s){
|
||||||
|
s ? make_file() : (void)QFile::remove(file_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
void switch_(){
|
||||||
|
status() ? (void)QFile::remove(file_path) : make_file();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString file_path = QStandardPaths::standardLocations(QStandardPaths::ConfigLocation)[0] + "/autostart/NumLockManager.desktop";
|
||||||
|
QString file_data = QString("[Desktop Entry]\n"
|
||||||
|
"Encoding=UTF-8\n"
|
||||||
|
"Version=1.2\n"
|
||||||
|
"Type=Application\n"
|
||||||
|
"Name=NumLockManager\n"
|
||||||
|
"Comment=\n"
|
||||||
|
"Exec=$\n"
|
||||||
|
"RunHook=0\n"
|
||||||
|
"StartupNotify=false\n"
|
||||||
|
"Terminal=false\n"
|
||||||
|
"Hidden=false\n");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void make_file(){
|
||||||
|
QFile file(file_path);
|
||||||
|
file.open(QIODevice::WriteOnly | QIODevice::Text);
|
||||||
|
file.write(file_data.toUtf8());
|
||||||
|
file.close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // AUTOSTART_H
|
35
config.h
Normal file
35
config.h
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#ifndef CONFIG_H
|
||||||
|
#define CONFIG_H
|
||||||
|
|
||||||
|
#include <QFile>
|
||||||
|
#include <QCoreApplication>
|
||||||
|
|
||||||
|
class Config{
|
||||||
|
public:
|
||||||
|
Config(){ file->exists() ? load() : setMode(0);}
|
||||||
|
~Config(){
|
||||||
|
file->close();
|
||||||
|
delete file;
|
||||||
|
}
|
||||||
|
void setMode(int m) { mode = m; save(); }
|
||||||
|
int getMode() {return mode;}
|
||||||
|
|
||||||
|
private:
|
||||||
|
int mode = 0;
|
||||||
|
QFile * file = new QFile(QCoreApplication::applicationDirPath() + "/src/config.ini");
|
||||||
|
|
||||||
|
void load(){
|
||||||
|
file->open(QIODevice::ReadOnly | QIODevice::Text);
|
||||||
|
mode = file->readAll().toInt();
|
||||||
|
file->close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void save(){
|
||||||
|
file->open(QIODevice::WriteOnly | QIODevice::Text);
|
||||||
|
QString a;
|
||||||
|
a.setNum(mode);
|
||||||
|
file->write(a.toUtf8());
|
||||||
|
file->close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#endif // CONFIG_H
|
32
modethread.h
Normal file
32
modethread.h
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
#ifndef MODETHREAD_H
|
||||||
|
#define MODETHREAD_H
|
||||||
|
|
||||||
|
#include <QThread>
|
||||||
|
|
||||||
|
#include "wl_numlock.h"
|
||||||
|
|
||||||
|
class ModeThread : public QThread
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ModeThread(){}
|
||||||
|
~ModeThread(){ delete key_manager; }
|
||||||
|
|
||||||
|
void setMode(int m){ mode = m; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
int mode = 0; // 0 - on/off, 1 - on, 2 - off
|
||||||
|
WLKeyManager * key_manager = new WLKeyManager();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void run() override{
|
||||||
|
forever{
|
||||||
|
if (mode == 0) return;
|
||||||
|
msleep(50);
|
||||||
|
if ((mode == 1 && !key_manager->getNumLockState()) || (mode == 2 && key_manager->getNumLockState()))
|
||||||
|
key_manager->pressNumLock();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // MODETHREAD_H
|
69
numlockmanager.h
Normal file
69
numlockmanager.h
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
#ifndef NUMLOCKMANAGER_H
|
||||||
|
#define NUMLOCKMANAGER_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
#include <QSystemTrayIcon>
|
||||||
|
#include <QMenu>
|
||||||
|
#include <QAction>
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QThread>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QCloseEvent>
|
||||||
|
|
||||||
|
#include "statusshow.h"
|
||||||
|
#include "modethread.h"
|
||||||
|
#include "config.h"
|
||||||
|
#include "ui_numlockmanager.h"
|
||||||
|
#include "autostart.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
namespace Ui { class NumLockManager; }
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
class NumLockManager : public QMainWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
NumLockManager(QWidget *parent = nullptr);
|
||||||
|
~NumLockManager() { delete ui; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::NumLockManager *ui;
|
||||||
|
|
||||||
|
StatusShow * ss = new StatusShow();
|
||||||
|
ModeThread * mode = new ModeThread();
|
||||||
|
Config config;
|
||||||
|
Autostart * autostart = new Autostart();
|
||||||
|
|
||||||
|
QSystemTrayIcon * tray_icon = new QSystemTrayIcon(this);
|
||||||
|
QIcon tray_icon_off = QIcon(QCoreApplication::applicationDirPath() + "/src/icons/num_lock_icon_off.png");
|
||||||
|
QIcon tray_icon_on = QIcon(QCoreApplication::applicationDirPath() + "/src/icons/num_lock_icon_on.png");
|
||||||
|
QIcon icon_check_false = QIcon(QCoreApplication::applicationDirPath() + "/src/icons/check_radio_c_0.png");
|
||||||
|
QIcon icon_check_true = QIcon(QCoreApplication::applicationDirPath() + "/src/icons/check_radio_c_1.png");
|
||||||
|
QIcon icon_radio_false = QIcon(QCoreApplication::applicationDirPath() + "/src/icons/check_radio_r_0.png");
|
||||||
|
QIcon icon_radio_true = QIcon(QCoreApplication::applicationDirPath() + "/src/icons/check_radio_r_1.png");
|
||||||
|
|
||||||
|
QMenu * menu = new QMenu();
|
||||||
|
QAction * action_autostart = new QAction();
|
||||||
|
QAction * action_mode_0 = new QAction();
|
||||||
|
QAction * action_mode_1 = new QAction();
|
||||||
|
QAction * action_mode_2 = new QAction();
|
||||||
|
QAction * action_about = new QAction();
|
||||||
|
QAction * action_exit = new QAction();
|
||||||
|
QAction * actions[6] = {action_autostart, action_mode_0, action_mode_1, action_mode_2, action_about ,action_exit};
|
||||||
|
QAction * actions_mode[3] = {action_mode_0, action_mode_1, action_mode_2};
|
||||||
|
|
||||||
|
void set_mode(int index);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void icon_activated(QSystemTrayIcon::ActivationReason reason) {Q_UNUSED(reason); menu->exec(QCursor::pos()); }
|
||||||
|
void getStatus(bool status);
|
||||||
|
void set_menu_hz(QAction * action);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void closeEvent(QCloseEvent *event) override{ event->ignore(); hide(); }
|
||||||
|
};
|
||||||
|
#endif // NUMLOCKMANAGER_H
|
29
statusshow.h
Normal file
29
statusshow.h
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#ifndef STATUSSHOW_H
|
||||||
|
#define STATUSSHOW_H
|
||||||
|
|
||||||
|
#include <QThread>
|
||||||
|
|
||||||
|
#include "wl_numlock.h"
|
||||||
|
|
||||||
|
class StatusShow : public QThread
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
StatusShow(){}
|
||||||
|
~StatusShow(){ delete key_manager; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
WLKeyManager * key_manager;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void status(bool);
|
||||||
|
protected:
|
||||||
|
void run() override {
|
||||||
|
forever{
|
||||||
|
emit status(key_manager->getNumLockState());
|
||||||
|
msleep(500);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // STATUSSHOW_H
|
Loading…
Reference in a new issue