📄 ugkglobalfunc.cpp
字号:
/* UGKGlobalFunc.cpp */#include "UGKGlobalFunc.h"#include "KitSrc/ugk_environment.h"#include "KitSrc/ugk_memopr.h"#include "KitSrc/ugkglobal.h"#include <qtextcodec.h> #include <stdlib.h>QString ACSII2Unicode(const char *str){ static QTextCodec *gbk_codec = QTextCodec::codecForName("GBK"); QString retStr = gbk_codec->toUnicode(str); return retStr;}QString GB2Unicode( const QCString &localfileName ){ QTextCodec *gbk_codec = QTextCodec::codecForName("GB2312"); QString retStr = gbk_codec->toUnicode(localfileName); return retStr;}QCString Unicod2GB( const QString &fileName ){ QTextCodec *gbk_codec = QTextCodec::codecForName("GB2312"); QCString gbkstr=gbk_codec->fromUnicode(fileName); return gbkstr;}QColor ObtainColor( int IntColor){ IntColor = IntColor & 0x00FFFFFF; int r,g,b; b = IntColor & 0x000000FF; IntColor=IntColor>>8; g = IntColor & 0x000000FF; IntColor=IntColor>>8; r = IntColor & 0x000000FF; QColor ret =QColor(r,g,b); return ret; }QString getBaseName(QString fullname){ int a = fullname.findRev('/'); int b = fullname.findRev('.'); QString tmp = fullname.left(b); QString ret = QString(" ")+tmp.right(b-a-1); return ret;}bool LineLine(LineCoord ln1,LineCoord ln2){ double k1,k2; double ax1,ay1,ax2,ay2; double bx1,by1,bx2,by2; ax1 = ln1.start.x; ay1 = ln1.start.y; ax2 = ln1.end.x; ay2 = ln1.end.y; bx1 = ln2.start.x; by1 = ln2.start.y; bx2 = ln2.end.x; by2 = ln2.end.y; if( (ax2==ax1)&&(bx2==bx1) ) //两条都是垂直 return FALSE; else if( (ax2==ax1)&&(bx2!=bx1) ) { if( (ax1>MIN(bx1,bx2))&&(ax1<MAX(bx1,bx2)) ) return TRUE; else return FALSE; } else if( (ax2!= ax1)&&(bx2==bx1) ) { if( (bx1>MIN(ax1,ax2))&&(bx1<MAX(ax1,ax2)) ) return TRUE; else return FALSE; } else { k1 = 1.0*(ay2-ay1)/(ax2-ax1); k2 = 1.0*(by2-by1)/(bx2-bx1); if(k1==k2) return FALSE; else { double px,py; px = (by1-bx1*k2+ax1*k1-ay1)/(k1-k2); py = k1*(px-ax1)+ay1; if( (px>MIN(ax1,ax2))&&(px<MAX(ax1,ax2)) ) return TRUE; else return FALSE; } }}bool LineRect(LineCoord ln,QRect rect){ int x1,x2,y1,y2; x1 = rect.left(); x2 = rect.right(); y1 = rect.top(); y2 = rect.bottom(); LineCoord left,top,right,bottom; left.start.x =x1; left.start.y = y1; left.end.x = x1; left.end.y = y2; top.start.x = x1; top.start.y = y1; top.end.x = x2; top.end.y = y1; right.start.x = x2; right.start.y = y1; right.end.x = x2; right.end.x = y2; bottom.start.x = x1; bottom.start.y = y2; bottom.end.x = x2; bottom.end.y = y2; int points=0; //先检查是否在内部 if( (ln.start.x>x1)&&(ln.start.x<x2)&& (ln.start.y>y1)&&(ln.start.y<y2) ) points++; if( (ln.end.x>x1)&&(ln.end.x<x2)&& (ln.end.y>y1)&&(ln.end.y<y2) ) points++; if( LineLine(ln,left)) points++; if( LineLine(ln,top)) points++; if( LineLine(ln,right)) points++; if( LineLine(ln,bottom)) points++; if(points>=2) return TRUE; else return FALSE;}void mountUdisk(){#ifdef SITSANGAPP system("mount -t vfat -o iocharset=cp936 /dev/sda1 /Udisk"); #endif}void umountUdisk(){#ifdef SITSANGAPP system("umount /dev/sda1"); #endif }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -