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