@Remy
I removed all the references to "__stdcall" and uncommented the "extern "C" code in the C++ dll, so that the function should be now exported as "_add_code".
I changed the DLL declaration in:
<DllImport("MyDll.dll", EntryPoint:="_add_code")>
Private Shared Function _add_code(ByVal text As String) As <MarshalAs(UnmanagedType.BStr)> String
End Function
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim foo As String = _add_code("ppp")
End Sub
Noting changes, i get alway the error "System.EntryPointNotFoundException: Could not find entry point with name '_add_code' in the DLL. The Entry point is not found, so I think that eventual errors related to Strings still have to be evaluated.
Folowing your suggestion I also tried a dump to get an Export table by VS command line, and I obtain the follw answer, that confirms that the function is exported as "_add_code". So the question: "Why I can't access to it from VB??"
Microsoft (R) COFF/PE Dumper Version 14.44.35217.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file MyDll.dll
File Type: DLL
Section contains the following exports fory MyDll.dll
00000000 characteristics
FFFFFFFF time date stamp
0.00 version
1 ordinal base
1 number of functions
1 number of names
ordinal hint RVA name
1 0 00001210 add_code = _add_code
Summary
1000 .data
1000 .rdata
1000 .reloc
1000 .rsrc
2000 .text
Ever solved this?
Tried everything I could find on this topic. Works on all my devices except Android.
Eventually tried 192,0,2,1 instead and this works on my Android just fine.
continue only skips one iteration, but it runs multiple times.
On the first iteration, last = prev + j makes prev == last true, and then after that, it stays true because continue skips the rest of the loop iterations.
How do you get ab? It's the first iteration of a-b and the first iteration of b-c.
Since this is an exercise, I won't try to give a fix, but there are multiple other ways you can get what you want, which is to not have repeated characters when two ranges are combined.
You can do it with ESLint, the ESLint import plugin and the ESLint extension for VSCode. Alternately, if you're using Deno, you can use the Deno extension for VSCode
I am using tailwind, thus this helped me:
<div className="w-[100px] h-[100px] rounded-full relative overflow-hidden">
<Image
src={ImageSrc}
alt="Alt message"
fill
className="object-cover"
/>
</div>
{
"editor.colorDecorators": false,
"[css]": {
"editor.colorDecorators": true
Fisrt of all you need to install docker in your machine. After that you need to follow these steps.
**Step1**
You need to open the terminal in the docker and run the command in order to pull the Hadoop image inside the docker using the command which is given below.
docker pull liliasfaxi/spark-hadoop :hv-2.7.2
You can verify the image by using command in terminal which is given below.
docker images
**Step2**
Now in this step we have to create the three different containers like
- Master
- Slave1
- Slave2
But before we start making containers we have to make the **network** here.
docker network create --driver=bridge hadoop
After creating network now we have to make the master container and wrote the command which is given below.
**For Master**
docker run -itd --net=hadoop -p 50070:50070 -p 8088:8088 -p 7077:7077 --name hadoop-master --hostname hadoop-master liliasfaxi/spark-hadoop:hv-2.7.2
After creating master container you need to create the slave containers just copy and paste the commands.
**For Slave1**
docker run -itd -p 8040:8042 --net=hadoop --name hadoop-slave1 --hostname hadoop-slave1 liliasfaxi/spark-hadoop:hv-2.7.2
**For Slave2**
docker run -itd -p 8041:8042 --net=hadoop --name hadoop-slave2 --hostname hadoop-slave2 liliasfaxi/spark-hadoop:hv-2.7.2
Now to see recently created containers like master, slave1 and slave2 are in running properly you need to run the command which is given below.
docker ps
Now we have to start the all services of master, slave1 and slave2 services using the below mentioned commands.
docker exec hadoop-master service ssh start
docker exec hadoop-slave1 service ssh start
docker exec hadoop-slave2 service ssh start
After starting the commands we need to go inside the master container to confirm some confirgation. we can do it the command which is given below.
docker exec -it hadoop-master bash
Now in the master bash we need to open one file named **core-site.xml** using the command which is given below. And I am using vi instead of nano.
vi $HADOOP_HOME/etc/hadoop/core-site.xml
Now You need to verify does this file look like below image.
[![enter image description here][1]][1]
If yes? Then move next and write **ls** in the master bash and verify does it hdfs contains different files. Just compare it with the image below.
[![enter image description here][2]][2]
If yes then we need to verify master, slave1 and slave2 daemons using the below comands one by one.
**For Master**
docker exec -it hadoop-master jps
**For Slave1 and Slave2**
docker exec -it hadoop-slave1 jps
docker exec -it hadoop-slave2 jps
And your output maybe looks like this.
[![enter image description here][3]][3]
[1]: https://i.sstatic.net/mL3hsHqD.png
Congratulations! Now hadoop is installed in your machine. now you can manipulate the files easily. And dont forget to access the web interface of Hadoop and Yarn.
- HDFS UI: http://localhost:50070
- YARN UI: http://localhost:8088
[2]: https://i.sstatic.net/FZq3SAVo.png
[3]: https://i.sstatic.net/JwYo972C.png
Encountered same issue where the latest chromium doesn't work on Vercel. Has anyone fix this similar problem? Would've been so helpful.
If you want to use a SQL script an answer to a similar/same question was answered in this SO question.
dill.extend() was removed in v0.3.8
pixi add "dill\<0.3.8"
or
pip install "dill<0.3.8"
should solve the issue
Your code for initiating the SmsRetrieverClient is fine. The problem lies with the physical device's state or hardware.
Check Your Physical Device:
SmsRetriever API won't work if the device can't receive standard text messages.Update in 2025:
In the "Settings > Configure Kate > Editing > Auto Completion" menu there is now a "Use Enter key to insert selected completion" toggle that you can turn off. Which is exactly what I think we all wanted.
Confirmed on Kate v24.12.3, if you don't see it check if you can update
Enable "Fit bounds to markers" in the map widget settings to auto-zoom to all markers on Things Board.
read more about;https://focus-pakistan.com.pk/wp-admin/
Related to Instagram Messaging Graph api (https://graph.instagram.com/v23.0/me/conversations) you can set any number in 'limit' field (won't raise any error from Meta backend) but you won't get more than 50 entries per request
If you want to open android pdf from url starting content then you need to use an intent with action view then it will easily open.
A graphic designer is a professional who uses visual concepts to create layouts and overall designs for a wide range of projects, from advertisements and logos to websites and magazines
I would like to underline a major feature interface based projections have over DTO projections, interface based projections can hold references toward other projection for nested fields holding other entities, which can't be done using the query and DTO constructor syntax.
One other thing is equality and hash code support that comes using DTO and not when using interfaces
After more investigation, I discovered that the issue wasn’t caused by my code or configuration. It turned out that some malicious code had been injected into my site files, which was interfering with normal functionality.
Once I removed the injected code and restored clean versions of the affected files, everything started working correctly again.
If anyone else runs into similar unexpected behavior, it might be worth checking for unauthorized or altered files in your project, especially if you’re hosting the site publicly.
From @milomg in this GitHub issue page:
If you're looking for a precompiled link, you might find https://nodejs.raccoon-tw.dev/ useful
NVM_NODEJS_ORG_MIRROR=https://nodejs.raccoon-tw.dev/release nvm install v14.21.3
Try to create that config at this location /var/snap/docker/current/config/daemon.json
or
Try to restart docker.
Solution found: the root cause is Citrix App Protection.
Commenting out the line /usr/local/lib/AppProtection/libAppProtection.so in /etc/ld.so.preload has helped.
use focus after a.active
a.active:foucs{
background-color: #EAB126
}
Increase retry_after to at least 2–3× your timeout, e.g.:
'retry_after' => 180,
Use the same queue name in your Notification:
$this->onQueue('reminder');
Make sure only one queue worker handles the same queue name.
If mails are slow, switch to Mail::queue() with a dedicated mail queue.
This appears to be a change due to iOS26. Xcode 18.1 detail storyboard shows the tableview as a grey area and the info in the detail view is laid out to the right of the tableview. Xcode26 storyboard shows the tableview superimposed over the detail view.
Shifting the info in the detail view to the right appears to be the solution.
SonarQube now officially supports Rust:
https://www.sonarsource.com/blog/introducing-rust-in-sonarqube/
import torch
def drop_row_and_col(A: torch.Tensor, i) -> torch.Tensor:
"""
Remove the i-th row and i-th column from a 2D square tensor A.
Args:
A (torch.Tensor): 2D square tensor of shape (n, n)
i List[int]: index of row and column to remove (0-based)
Returns:
torch.Tensor: new tensor of shape (n-1, n-1)
"""
if A.ndim != 2 or A.shape[0] != A.shape[1]:
raise ValueError("Input must be a 2D square tensor.")
mask = torch.ones(A.shape[0], dtype=torch.bool, device=A.device)
mask[i] = False
return A[mask][:, mask]
def drop_under_index(array: torch.Tensor,i):
mask = torch.ones(array.shape[0], dtype=torch.bool, device=array.device)
mask[i]=False
return array[mask]
def get_maximal_ind_set(adj_matrix,drop_at_once = 1):
"""
Greedy vertex removal maximal independent set approximation.
One by one removes nodes with largest degree and recalculates degrees until resulting adj matrix is empty.
adj_matrix: adjacency matrix N x N
drop_at_once: how many elements drop at once. Larger values allow to speed-up computation a lot.
"""
node_indices = torch.arange(adj_matrix.shape[0],device=adj_matrix.device)
max_indep_set = adj_matrix.clone()
while True:
close_points = max_indep_set.sum(-1)
ind = close_points.argsort(descending=True)[:drop_at_once]
ind = ind[close_points[ind]>0]
if len(ind)==0:
break
node_indices=drop_under_index(node_indices,ind)
max_indep_set=drop_row_and_col(max_indep_set,ind)
return node_indices
Simplest usage is like this
adj = torch.randn((500,500))>0.5
adj[torch.arange(500),torch.arange(500)]=False
get_maximal_ind_set(adj,drop_at_once=3)
You can even do it on gpu (even a lot faster)
adj = torch.randn((500,500))>0.5
adj[torch.arange(500),torch.arange(500)]=False
get_maximal_ind_set(adj.cuda(),drop_at_once=3).cpu()
Here is simple visualization of it's work
import networkx as nx
# ==== Generate random adjacency matrix ====
torch.manual_seed(0)
n = 10
adj_matrix = (torch.rand((n, n)) > 0.5).int()
adj_matrix = torch.triu(adj_matrix, 1) # upper triangle only
adj_matrix = adj_matrix + adj_matrix.T # make symmetric (undirected graph)
adj_matrix.fill_diagonal_(0)
# ==== Find maximal independent set ====
ind_set = get_maximal_ind_set(adj_matrix, drop_at_once=1)
print("Independent set indices:", ind_set.tolist())
# ==== Visualize ====
G = nx.Graph()
G.add_nodes_from(range(n))
for i in range(n):
for j in range(i + 1, n):
if adj_matrix[i, j]:
G.add_edge(i, j)
pos = nx.spring_layout(G, seed=42) # layout for consistent visualization
# Node colors: blue if in independent set, red otherwise
node_colors = ['tab:blue' if i in ind_set else 'tab:red' for i in G.nodes()]
plt.figure(figsize=(6, 6))
nx.draw(
G,
pos,
with_labels=True,
node_color=node_colors,
node_size=600,
font_color='white',
edge_color='gray',
)
plt.title("Graph with Maximal Independent Set (blue nodes)")
plt.show()
Currently there is no way. There is a ticket open to add support for spelling_exclusion_path in .editorconfig.
This comment by Elvira Mustafina at 8/28/2023 at 1:04 PM confirms there is no workaround to get this to work.
What, no minimal, reproducible example? So I can only speak in generalizations here:
Proxies created with calls to index.ids() do not by default reference the same, single IdIndex instance.
If you are creating a single instance of IdIndex and passing its proxy reference to whomever needs to access it, whether in the same or different thread or process, then yes, there will be a single instance of IdIndex running in the process created by the manager. But if multiple proxies are created with code such as my_id_index = index.ids(), then there will be multiple IdIndex instances living in the manager's process. BTW, why are you naming an IndexManager instance index rather than the more meaningful index_manager or even just manager?
<picture><source srcset="images/resumos-biologia-1024x702.png.webp 1024w, images/resumos-biologia-300x206.png.webp 300w, images/resumos-biologia-768x527.png.webp 768w, images/resumos-biologia-1536x1053.png.webp 1536w, images/resumos-biologia.png.webp 1575w" sizes="(max-width: 800px) 100vw, 800px" type="image/webp"><img decoding="async" width="800" height="548" src="images/resumos-biologia-1024x702.png" class="attachment-large size-large wp-image-7339 webpexpress-processed" alt="Exemplos de resumos do Pack ENEM - conteúdo organizado e visual para estudos" srcset="images/resumos-biologia-1024x702.png 1024w, images/resumos-biologia-300x206.png 300w, images/resumos-biologia-768x527.png 768w, images/resumos-biologia-1536x1053.png 1536w, images/resumos-biologia.png 1575w" sizes="(max-width: 800px) 100vw, 800px"></picture> </div>
i have some issue to validate
C:\Users\grigore.ionescu\WORK\ITC\2025-05-SAFT-Stock-Baan-5\duk_SAFT_2025_10\dist>java -jar DUKIntegrator_AnLunaUI.jar -v D406T C:\Users\grigore.ionescu\WORK\ITC\2025-05-SAFT-Stock-Baan-5\D406\D406\DECLR_2009_1_D406T_I0_20250807.xml $ $ an=2025 luna=10
an:2025
luna:10
an:2025
luna:10
mode=1
XXXXX C:\Users\grigore.ionescu\WORK\ITC\2025-05-SAFT-Stock-Baan-5\duk_SAFT_2025_10\dist\saft_counter.csv
in parseXml
inainte an si luna:2025...10
an:2025 luna:10
VALIDATION FOR TYPE [T]
EXPECTED SECTIONS: [Sections{name=Account, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:71, right:-1, firstCh:73, id:16450,id=72, absPath=AuditFile/MasterFiles/GeneralLedgerAccounts/Account}]}, Sections{name=Customer, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:94, right:-1, firstCh:96, id:16470,id=95, absPath=AuditFile/MasterFiles/Customers/Customer}]}, Sections{name=Supplier, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:145, right:-1, firstCh:147, id:16475,id=146, absPath=AuditFile/MasterFiles/Suppliers/Supplier}]}, Sections{name=TaxTableEntry, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:196, right:-1, firstCh:198, id:94,id=197, absPath=AuditFile/MasterFiles/TaxTable/TaxTableEntry}]}, Sections{name=UOMTableEntry, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:215, right:-1, firstCh:217, id:108,id=216, absPath=AuditFile/MasterFiles/UOMTable/UOMTableEntry}]}, Sections{name=AnalysisTypeTableEntry, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:219, right:-1, firstCh:221, id:111,id=220, absPath=AuditFile/MasterFiles/AnalysisTypeTable/AnalysisTypeTableEntry}]}, Sections{name=Product, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:229, right:-1, firstCh:231, id:120,id=230, absPath=AuditFile/MasterFiles/Products/Product}]}, Sections{name=GeneralLedgerEntries, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:354, right:356, firstCh:-1, id:184,id=355, absPath=AuditFile/GeneralLedgerEntries/NumberOfEntries}, SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:354, right:357, firstCh:-1, id:185,id=356, absPath=AuditFile/GeneralLedgerEntries/TotalDebit}, SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:354, right:358, firstCh:-1, id:186,id=357, absPath=AuditFile/GeneralLedgerEntries/TotalCredit}, SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:354, right:-1, firstCh:359, id:187,id=358, absPath=AuditFile/GeneralLedgerEntries/Journal}]}, Sections{name=SalesInvoices, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:417, right:419, firstCh:-1, id:184,id=418, absPath=AuditFile/SourceDocuments/SalesInvoices/NumberOfEntries}, SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:417, right:420, firstCh:-1, id:185,id=419, absPath=AuditFile/SourceDocuments/SalesInvoices/TotalDebit}, SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:417, right:421, firstCh:-1, id:186,id=420, absPath=AuditFile/SourceDocuments/SalesInvoices/TotalCredit}, SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:417, right:-1, firstCh:422, id:16601,id=421, absPath=AuditFile/SourceDocuments/SalesInvoices/Invoice}]}, Sections{name=PurchaseInvoices, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:614, right:616, firstCh:-1, id:184,id=615, absPath=AuditFile/SourceDocuments/PurchaseInvoices/NumberOfEntries}, SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:614, right:617, firstCh:-1, id:185,id=616, absPath=AuditFile/SourceDocuments/PurchaseInvoices/TotalDebit}, SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:614, right:618, firstCh:-1, id:186,id=617, absPath=AuditFile/SourceDocuments/PurchaseInvoices/TotalCredit}, SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:614, right:-1, firstCh:619, id:16601,id=618, absPath=AuditFile/SourceDocuments/PurchaseInvoices/Invoice}]}, Sections{name=Payments, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:811, right:813, firstCh:-1, id:184,id=812, absPath=AuditFile/SourceDocuments/Payments/NumberOfEntries}, SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:811, right:814, firstCh:-1, id:185,id=813, absPath=AuditFile/SourceDocuments/Payments/TotalDebit}, SECTION_ELEMENTS{nodeStruct=min:0, max:1, cnt:0, parent:811, right:815, firstCh:-1, id:186,id=814, absPath=AuditFile/SourceDocuments/Payments/TotalCredit}, SECTION_ELEMENTS{nodeStruct=min:0, max:2147483647, cnt:0, parent:811, right:-1, firstCh:816, id:265,id=815, absPath=AuditFile/SourceDocuments/Payments/Payment}]}]
SECTION DETECTED: Sections{name=TaxTableEntry, elements=[SECTION_ELEMENTS{nodeStruct=min:1, max:2147483647, cnt:1, parent:196, right:-1, firstCh:198, id:94,id=197, absPath=AuditFile/MasterFiles/TaxTable/TaxTableEntry}]}
SECTION DETECTED: Sections{name=UOMTableEntry, elements=[SECTION_ELEMENTS{nodeStruct=min:1, max:2147483647, cnt:1, parent:215, right:-1, firstCh:217, id:108,id=216, absPath=AuditFile/MasterFiles/UOMTable/UOMTableEntry}]}
SECTION DETECTED: Sections{name=MovementTypeTableEntry, elements=[SECTION_ELEMENTS{nodeStruct=min:0, max:0, cnt:1, parent:225, right:-1, firstCh:227, id:117,id=226, absPath=AuditFile/MasterFiles/MovementTypeTable/MovementTypeTableEntry}]}
1.
Erori la validare fisier: C:\Users\grigore.ionescu\WORK\ITC\2025-05-SAFT-Stock-Baan-5\D406\D406\DECLR_2009_1_D406T_I0_20250807.xml
Erorile au fost scrise in fisierul: C:\Users\grigore.ionescu\WORK\ITC\2025-05-SAFT-Stock-Baan-5\D406\D406\DECLR_2009_1_D406T_I0_20250807.xml.err.txt
and the error file contains:
F: MasterFiles (1) sectiune MovementTypeTable (1) sectiune MovementTypeTableEntry (1) sectiune Description (1)
eroare structura: elementul 'MovementType' a depasit numarul maxim de aparitii (0); a aparut de 1 ori
That somehow implies that the DUKE validatpr does not take in consideration is to validate a D406T declaration for move of goods and stock.
Can anyone help with some insights ?
i have the same bug, i'm working on Next 15.5.4 and thanks to your answer and add the webpack configuration without delete the turbopack configuration it work fine.
I'm sharing the next.config.ts for this Next version.
import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
/* config options here */
turbopack: {
rules: {
'*.svg': {
loaders: ['@svgr/webpack'],
as: '*.tsx',
},
},
},
webpack(config) {
config.module.rules.push({
test: /\.svg$/,
use: ['@svgr/webpack'],
});
return config;
},
};
export default nextConfig;
The --repl option is no longer supported. See https://issues.chromium.org/issues/40257772#comment2
The commit statement does not change the result. You will still get an error ("ORA-00942 table or view does not exist").
I suspect you ran the script with the commit when the view was known in the database. If the view exists the script will succeed with or without the commit.
Use @Maheswaran Ravisankar answer to solve the issue.
here's a simpler solution, you can use this free plugin: https://wordpress.org/plugins/on-sale-page-for-woocommerce/
What I end up doing is implementing my own custom accessibility checks for compose elements (at least for what can be fairly assessed as of today).
Do not wrap the Widget that you want to be centered with the Positioned Widget. Instead, use the parameter alignment: AlignmentDirectional.center of the Stack Widget.
You can pip install sshfs python library from pypi
pip install sshfs
Here is the link https://pypi.org/project/sshfs/
Run the ADB server on Windows and connect to it from WSL:
In PowerShell (Windows):
adb kill-server
adb -a -P 5037 nodaemon server &
Keep the service running in the background.
In WSL:
export ADB_SERVER_SOCKET=tcp:[windwos_ip]5037
adb devices
You should now see your devices listed from WSL.
I think that this problem is just about the focus. I have many winforms with a datagridview and I always use the same code to initialize a datagridview, which includes datagridview.ClearSelection(). And every time nothing is selected.
But I had this issue with one of my winforms where the first row of a datagridview was selected after startup. While debugging, I found out that this selection occured after finishing Form.Load(). Probably because this datagridview was the first control I put on this form.
To solve this problem I deleted the datagridview from my form and added a new one with the exact same name. The only thing that was different was the "TabIndex", which was 0 on the deleted datagridview and now it is 7. (But only changing this TabIndex doesn't work...) When I debugged again, the automatic selection didn't occured and now the focus was on the first button on the form...
I had the same issue using python 3.13. The issue was solved creating a venv with python 3.12
Using segments from the Example provided by @Hans Passant, I was able to control the printer directly and print line by line.
Segment used + relevant usings + calling SendStringToPrinter(...) inside my original ServicePrintQueue loop.
SendStringToPrinter(this.printerSettings.PrinterName, stringToPrint);
// Structure and API declarions:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class DOCINFOA
{
[MarshalAs(UnmanagedType.LPStr)]
public string pDocName;
[MarshalAs(UnmanagedType.LPStr)]
public string pOutputFile;
[MarshalAs(UnmanagedType.LPStr)]
public string pDataType;
}
[DllImport("winspool.Drv", EntryPoint = "OpenPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool OpenPrinter([MarshalAs(UnmanagedType.LPStr)] string szPrinter, out IntPtr hPrinter, IntPtr pd);
[DllImport("winspool.Drv", EntryPoint = "ClosePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool ClosePrinter(IntPtr hPrinter);
[DllImport("winspool.Drv", EntryPoint = "StartDocPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool StartDocPrinter(IntPtr hPrinter, Int32 level, [In, MarshalAs(UnmanagedType.LPStruct)] DOCINFOA di);
[DllImport("winspool.Drv", EntryPoint = "EndDocPrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool EndDocPrinter(IntPtr hPrinter);
[DllImport("winspool.Drv", EntryPoint = "StartPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool StartPagePrinter(IntPtr hPrinter);
[DllImport("winspool.Drv", EntryPoint = "EndPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool EndPagePrinter(IntPtr hPrinter);
[DllImport("winspool.Drv", EntryPoint = "WritePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern bool WritePrinter(IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, out Int32 dwWritten);
private string stringToPrint;
public static bool SendStringToPrinter(string szPrinterName, string szString)
{
IntPtr pBytes;
Int32 dwCount;
// How many characters are in the string?
dwCount = szString.Length;
// Assume that the printer is expecting ANSI text, and then convert
// the string to ANSI text.
pBytes = Marshal.StringToCoTaskMemAnsi(szString);
// Send the converted ANSI string to the printer.
SendBytesToPrinter(szPrinterName, pBytes, dwCount);
Marshal.FreeCoTaskMem(pBytes);
return true;
}
public static bool SendBytesToPrinter(string szPrinterName, IntPtr pBytes, Int32 dwCount)
{
Int32 dwError = 0, dwWritten = 0;
IntPtr hPrinter = new IntPtr(0);
DOCINFOA di = new DOCINFOA();
bool bSuccess = false; // Assume failure unless you specifically succeed.
di.pDocName = "Test Doc";
di.pDataType = "RAW";
// Open the printer.
if (OpenPrinter(szPrinterName.Normalize(), out hPrinter, IntPtr.Zero))
{
// Start a document.
if (StartDocPrinter(hPrinter, 1, di))
{
// Start a page.
if (StartPagePrinter(hPrinter))
{
// Write your bytes.
bSuccess = WritePrinter(hPrinter, pBytes, dwCount, out dwWritten);
EndPagePrinter(hPrinter);
}
EndDocPrinter(hPrinter);
}
ClosePrinter(hPrinter);
}
// If you did not succeed, GetLastError may give more information
// about why not.
if (bSuccess == false)
{
dwError = Marshal.GetLastWin32Error();
}
return bSuccess;
}
exclude conflicting dependencies or check and supplement the Log4j dependencies
On the very right side of the IntelliJ window, in the vertical bar, there is an item with the mouse-over text Github Copilot Chat.
From there I got a device code + a link that allowed me to select which account I want to use.
If you're wondering why your app hasn't appeared in the marketplace, this might be the reason:
To let any user find and install your add-on, publish it publicly. When you publish your add-on publicly, the Google team reviews your add-on before it’s published live on Google Workspace Marketplace.
On the topic of how to actually test your app.
Go to Deploy > Test Deployments
Click on the Select Type dropdown menu and select Google Workspace Add-on
Configure your deployment to use the latest code
Press Install > Done
Make sure that your onOpen function isn't throwing any errors that could prevent the script from actually launching.
And as always make sure you're following all the steps from the official docs.
If you need any help testing your AppScript feel free to reach out! I've built a handful of projects with AppScript in the past.
This has been fixed in 9.4.0-SNAPSHOT as of this commit https://github.com/itext/itext-java/commit/979cdc6f5a34b48be6fabefe90953f50142c59c7
To get started with snapshots follow this guide: https://kb.itextpdf.com/itext/installing-itext-for-java#InstallingiTextforJava-InstallingSNAPSHOTbuilds
It was indeed the way we compared the streams in the signatures to detect whether or not they have been altered since signing. We
decoded the stream and we don't support /JBIG2DECODE so it is an issue.
But to verify the changes we don't require to decode it as we can just compare the byte[] raw values.
Thank you for raising this question!
I am sorry but the example you sent me is not working
Use it inside your `cellForRowAt` method:
https://medium.com/@ar.sarris/self-sizing-collectionview-inside-a-tableview-f1fd4f42c44d
cell?.frame = tableView.bounds
cell?.layoutIfNeeded()
Try restart the kernel or alternatively rebuild it. Problem like this maybe compute related. Maybe you are running heavy instances and the kernel couldn't hold it.
If you can reproduce the instance error maybe I can help further
For those coming here late: AssertJ 3.17.0 introduced singleElement(). There are further nice list navigation methods, see Navigating to a given element
assertThat(asia)
.extracting(Region::getCountries)
.singleElement()
.isInstanceOfSatisfying(String.class, countryRequirement);
See also this answer.
I found interesting answer. May be helpful: https://nmmhelp.getnerdio.com/hc/en-us/community/posts/35207061281549-In-Place-Upgrade-Win11-to-24h2
I am also having the same issue, inside the github the graph is visible however after pushing the code into the github, the github is unbale to render this graphs . Don't no what exactly issue is ?
I'm using springboot 3.4.1
I want to capture http request body and http response body but opentelemetry does not offer this out of the box.
does creating an extension is the best way to do this?
anyone has created this before ?
Faced up with the same problem in Vue3 and Bootstrap 5 after bs-toaster has been plugged in. Cure it by comment out "import 'bootstrap/dist/js/bootstrap.bundle.min.js';" from main.js. Still not sure that not brake something elsewhere, but on first glance, everything works.
A clumsy attempt at reproduction:
library(maps)
library(sf)
library(ggplot2)
world1 <- sf::st_as_sf(map('world', plot = FALSE, fill = TRUE)) |>
st_transform(crs = 4326)
ggplot() +
geom_sf(data = world1) +
scale_y_continuous(breaks = seq(20, 90, by = 10), labels = NULL) +
scale_x_continuous(breaks = seq(-120, 180, by = 60), labels = NULL) +
labs(x = NULL, y = NULL) +
theme(
panel.background = element_blank(),
panel.grid.major = element_line(
linewidth = 0.25,
linetype = 'dashed',
colour = "black"
),
axis.ticks = element_blank(),
axis.text = element_blank()
) +
labs(caption = "Designed by Mikey Harper") +
annotate(geom = 'text', x = I(0.5), y = I(0), label = '0°', vjust = 1) +
annotate(geom = 'text', x = I(0.97), y = I(0.77), label = "120°E") +
annotate(geom = 'text', x = I(0.97), y = I(0.25), label = "60°E") +
annotate(geom = 'text', x = I(0.02), y = I(0.77), label = "120°W") +
annotate(geom = 'text', x = I(0.02), y = I(0.25), label = "60°W") +
annotate(geom = 'text', x = I(0.5), y = I(1), label = "180°W", vjust = 0.4) +
annotate(geom = 'text', x = I(0.5), y = I(0.6), label = "80°N", vjust = 0) +
annotate(geom = 'text', x = I(0.5), y = I(0.76), label = "60°N", vjust = 0) +
annotate(geom = 'text', x = I(0.5), y = I(0.9), label = "40°N", vjust = 0) +
coord_sf(
crs = "+proj= ortho +lat_0=90 +lon_0=0",
expand = FALSE,
clip = FALSE
)
I was wrestling with this problem some years ago. My solution was to use Panels instead of Buttons, since all i needed was the Click-event. If you REALLY want or need to use Buttons that of course is not a solution.
String hash = HashUtil.hash(hanaDok.getFileName());
Query query = entityManager.createQuery("SELECT o FROM OracleDok o WHERE o.fileNameHash = :hash", OracleDok.class);
query.setParameter("hash", hash);
This avoids encryption issues and is efficient for lookups.
For now code
.order_by('total DESC')
changes to
.order_by(text('total DESC'))
and you should also import text from sqlalchemy
Go to Settings → Additional settings → Developer options
Make sure these are all ON:
USB Debugging
Install via USB
USB Debugging (Security settings)
Reboot your phone
Try again:
My issue was that in the raw query I was using the @parameters (that were strings) surrounded with single quotes. Removing the single quotes solved my problem.
import { useState } from 'react'; import { Card, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { motion } from 'framer-motion';
export default function GameEdukasi() { const [score, setScore] = useState(0); const [question, setQuestion] = useState(generateQuestion()); const [answer, setAnswer] = useState('');
function generateQuestion() { const a = Math.floor(Math.random() * 10) + 1; const b = Math.floor(Math.random() * 10) + 1; return { text: ${a} + ${b} = ?, correct: a + b }; }
function checkAnswer() { if (parseInt(answer) === question.correct) { setScore(score + 1); } setQuestion(generateQuestion()); setAnswer(''); }
return (
<motion.h1 initial={{ y: -20, opacity: 0 }} animate={{ y: 0, opacity: 1 }} className="text-4xl font-bold mb-6 text-blue-700"> 🎮 Game Edukasi Matematika
05.11.1993
> ----------
05.11.1993
Answer from Microsoft (support email):
1- Shell Launcher v2 and Assigned Access APIs modify machine-level settings under HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\ShellLauncher.
2- These changes affect all users, so Windows restricts them to SYSTEM or an elevated process with the right privileges.
3- Simply running as an Administrator often isn’t enough because the Assigned Access service enforces the policy.
Options and might work: Split Privilege Model
Keep your main app running under the user account.
Create a small helper service running as SYSTEM (or LocalSystem) that listens for requests from your app (via IPC or named pipe).
When the user selects “Run Windows,” the helper performs:
Shell reassignment to explorer.exe using Shell Launcher APIs or PowerShell.
Initiates logoff.
This is the most common pattern for kiosk scenarios.
Use Task Scheduler with Highest Privileges
Your app can trigger a scheduled task configured to run as SYSTEM.
The task executes the shell switch and logoff.
This avoids keeping a persistent SYSTEM service but still uses SYSTEM for the sensitive operation.
Just posting an update for anyone using a more recent version of the {lintr} package.
The with_defaults() function has been deprecated and is now linters_with_defaults().
The 'camel_case_linter' doesn't work for me, and I have to replace it with 'object_name_linter'.
My configuration also includes two common adjustments:
commented_code_linter = NULL: Disables warnings about commented-out code (useful for temporarily removing code like install.packages()).
line_length_linter(...): Increases the maximum line length to 120 characters from the default of 80 (far too narrow for the VS Code).
Regarding the file format, the .lintr file uses DCF syntax. The safest way to avoid parsing errors is to write the configuration on a single line (it can work when cut in multiple lines with tabulation but if you have a problem, put it in one line).
Working .lintr file (Single-Line)
linters: linters_with_defaults(object_name_linter = NULL, commented_code_linter = NULL, line_length_linter = line_length_linter(length = 120))
To answer my own question, it seems like buildSrc modules share the same classloader with gradle and somehow lead to dependency leaks that end up triggering internal compiler errors. So the solution I chose to go with was to create a separate module (i.e. build-logic) and then include that into my project, that way the build-logic module gets its own classloader and such issues are avoided.
So the structure looks something like:
.
├── build-logic/
│ ├── build.gradle.kts
│ ├── settings.gradle.kts
│ └── src/main/kotlin/com/package/specifics/JacocoCoveragePlugin.kt
├── app/
│ └── build.gradle
├── settings.gradle.kts
└── build.gradle.kts
And then in the root project's build.gradle.kts file, I just include it via includeBuild("build-logic").
If anyone has knowledge of the specifics please share it!
Might be related to this issue.
Marking the directory with venv as "excluded"
If it still hasn't been resolved, restart (I had tried)
I first saw this method here: https://intellij-support.jetbrains.com/hc/en-us/community/posts/22639845844498-Unexpected-type-s-int-Possible-type-s-SupportsIndex-slice-with-PyCharm-2024-3
Using the VS Code plugin Css Module Emmet JSX/TSX
Combining micro-frontends and SSR creates a contradiction.
SSR, requires Unified server-side rendering that is incompatible with Fragmented and isolated architectures
MFE, requires Isolated and independent applications that is incompatible withCoordinated server-side rendering
You can't simultaneously have, independent deployments, independent runtimes, and
a consistent and synchronized SSR.
Either choose one (MFE = independence), or choose the other (SSR = performance and SEO).
Seems that you have to add the Attribute [HttpResult] to the IActionResult property.
As in the Microsoft docuentation you mentioned dotnet-isolated-process-guide - Multiple output bindings.
public class OutputBindingType
{
[HttpResult]
public IActionResult HttpResponse { get; set; }
[EventGridOutput(TopicEndpointUri = "SoftwareApplicationsTopicUri", TopicKeySetting = "SoftwareApplicationsTopicKey")]
public EventGridEvent EventGridResponse { get; set; }
}
Nowadays it's not possible and only thing you can do - open your application settings inside system settings. Below iOS 12 there was workaround with App-prefs, but since it's is private api your app will be rejected from App Store.
Try to compare the Row of the DataRowView :
public static int GetIndex(this DataRowView rowView)
{
for (int i = 0; i < rowView.DataView.Count; i++)
{
if (rowView.DataView[i].Row == rowView.Row) // <-----
return i;
}
return -1;
}
The file history is not visible entirely in TIMELINE, but if you right-click on the file, then select File History | Open File History (with the Git Lens plugin), then everything can be displayed:
whereas it shows an error in the normal mode:
Moving away from publishing to folder on OneDrive to a local folder on the C: drive seems to work.
I also tried to change the rights to write to a folder on OneDrive, but it seems that applying new settings by unchecking "read only" folder attribute is not accepted.
Giving ALL users full rights does also not work.
Running VS in administrator mode also does not solve the problem.
So my conclusion is that ONEDRIVE is the BAD GUY!
Thank you. The webshot then magick method worked for me. I encountered a message to install phantomjs so I followed that. So now the first part is:
webshot::install_phantomjs()
webshot::webshot("presentation.html", "presentation.png")
Upgrading to
<PackageReference Include="MSTest.TestAdapter" Version="4.1.0-preview.25514.12" /> <PackageReference Include="MSTest.TestFramework" Version="4.1.0-preview.25514.12" />
fixed the issue as @Youssef13 suggested above.
I also had to change from Sdk="MSTest.Sdk/x.y.z" to Sdk="Microsoft.NET.Sdk" since the first one seems to overwrite packages even if and update element is added to the project file:
<ItemGroup> <PackageReference Update="MSTest.TestAdapter" Version="4.1.0-preview.25514.12" /> </ItemGroup>
That behavior is a bit unpredictable but not related to this issue.
In my case, I deleted the pubspec.lock file and then ran:
flutter pub get
This regenerated the lock file and resolved the dependency issues.
Installing from my main terminal (instead of vs code's terminal) worked for me.
as far as i know if you are (at the moment you are capturing the image) using v4l2 you can adjust the brightness and contrast of the camera itself(unless you are using pipewire which then im not even sure what to do)
I think your frontend did not save the token.
Try to restore the UID for that property in the model JSON file (and make otherwise sure it's sound, like undoing adding it to the retired UID list). Then run the generator again.
Background: If you remove a poperty from the model it's data is not actually deleted from objects when "upgrading" the database to the new model. Only once you put an existing object the existing data would get overwritten.
Maybe it will help you make voip app with ionic https://ionicvoip.com/
I just successfully installed the project with the following settings:
[tool.uv.build-backend]
module-name = "a_library.a_module"
namespace = true
I’ve been aware of this namespace option the whole time, but I’d been avoiding it because the documentation scared me with this warning:
Using
namespace = truedisables safety checks. Using an explicit list of module names is strongly recommended outside of legacy projects.
But now, I’m fine with using this option. Sorry for bothering you.
Actually you do not need to change VM type. You can increase the memory with editing the VM, but it has to be stopped.
Since Sept, 2025
https://github.com/actions/setup-node/releases/tag/v5.0.0
You can now write the following, wish will take node 24 by default
- name: Set up Node js
uses: actions/setup-node@v6
Use projects.setItems(data_provider); instead.
Yes, this can likely be done with a Docusign CLM Document Smart Rule, but it requires a more advanced configuration using XPath within the Rename action to dynamically capture the parent folder name and retain the original document name.
Your previous attempt failed because the "Rename" action, when used with a literal value, completely replaces the document name instead of appending or prepending to it.
You can refer to this link for an example: https://community.docusign.com/clm-112/rename-documents-using-attributes-2845
Thanks and regards,
Mahmoud
Fantastic post! Really helpful for anyone exploring Windows 11 upgrades and software options. 👉 I highly recommend checking out the website link in my profile for more tips and tools.
I noticed when I started debugging, at 53 seconds the error was like this
I had the same issue in my case i have installed SignalR NuGet Package in my Blazor Server Project as you know SignalR already exists in the Blazor Server due to that conflict i got that error.
iTerm2 has a variable $TERM_SESSION_ID which looks like this:
% echo $TERM_SESSION_ID
w1t0p0:C2EA7462-6ED9-479B-A323-5796ABCCABE8
From what I can figure out:
"w1" is the window number (but 0-indexed - so 0==1, 1==2, etc)
"t0" is the tab within the window
I didn't investigate "p0" but I presume something like process?
The issue is related to privileges between two different schemas.
When you use a LEFT JOIN,
Oracle needs to verify access to all referenced tables at compile time,
and the schema that owns the view (A) must have direct privileges
on the tables it joins from schema B
not just through a grant chain or a WITH GRANT OPTION.
Here’s how to fix it:
Option 1 – Grant access directly from B to A
Log in as schema B (the table owner) and run:
GRANT SELECT ON table1 TO A;
GRANT SELECT ON table2 TO A;
-- repeat for each table used
Then recompile the view:
ALTER VIEW A.view_name COMPILE;
You don’t need to use WITH GRANT OPTION unless schema A also needs to re‑grant those privileges to others.
Option 2 – Create Synonyms in A
In schema A, create synonyms to make references cleaner:
CREATE SYNONYM table1 FOR B.table1;
Then recompile the view or recreate it.
This helps Oracle resolve object names easily and prevents the ORA‑01720 privilege error during compile time.
If anyone wants to get a Google Reviews,
Before buying from any site of the online platform, the buyers first look at the reviews on Google. If Google Reviews are present when buyers visit your site, the sales of theat site will increase at a faster rate. So increase the amount of sales through Google Reviews on your site.
Express Delivery
Very Cheap Price
24/7 Customer Support
100% Satisfaction Guaranteed
100% Recovery Guaranty (Within 30 Days)
High Quality Service
You can write a simple SQL statement that will bring only the 20, 30, etc. first records, and than write Visual Basic code for the export:
Me.RecordSource= "SELECT TOP 30 * FROM Customers ORDER BY CustomerID"
DoCmd.OutputTo acOutputReport, "FormName", acFormatPDF, "pdfPath"
I hope you’re doing well. I just wanted to check if you were able to find any solution yet?
I have found the issue . The cause is <View> and <BottomSheet> are react native components , not MapView overlays . on IOS , MapView accepts react subviews (and ignores unsupported once ) , but on android MapView is a native SurfaceView , which cannot have nested React views unless they're valid map overlays like <Marker> , <Circle> etc .
so to avoid this UI error on android simply do not put nested views inside the MapView . and by doing so my component mounts on android without an issue .
The highest voted solution doesn't work for me. I am using version 6.5.4.
the Inno Setup keep generating the manifest with "asInvoker".
My solution is:
1, Use "Resource Hacker" to manually edit the file "SetupLdr.e32" from Inno Setup installation folder, usually it would be "C:\Program Files (x86)\Inno Setup 6" (make sure you have a backup), choose the "Manifest", change it from "asInvoker" to "requireAdministrator", compile and save, then override the file back.
2, Add the "DisablePrecompiledFileVerifications=setupldre32" under [Setup] Section, to avoid Inno compile issue(ask Inno to ignore it being changed outside).
3, rebuild.
I removed screen.blit(screen, ...) and it worked accordingly
Answering my own question.
Everything works by replacing transfrom_aggregate() by transform_joinaggregate()!
user207421 has answered my question. No other method needs to be overridden besides run().
@musicamante Ok thanks for steering me away from QComboBox. Got a working solution "starting from scratch" and it's probably quite a bit easier to code up than the QComboBox contortions - and the two issues in the original question are resolved. Will do some more styling and sizing and such, but:
The code:
# heavily adapted from Google AI Overview: 'pyqt popup under button'
from PyQt5.QtWidgets import (
QApplication, QWidget, QVBoxLayout, QTreeView,QMainWindow,QPushButton,QDialog
)
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import QModelIndex,Qt,QPoint
class MyPopup(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.parent=parent
# Create the TreeView for the dropdown popup
self.tree_view = QTreeView(self)
self.tree_view.setHeaderHidden(True) # Hide the header to look like a simple tree
self.tree_view.setSelectionMode(QTreeView.SingleSelection)
self.tree_view.setEditTriggers(QTreeView.NoEditTriggers)
self.tree_view.setExpandsOnDoubleClick(False)
self.tree_view.setAnimated(True)
self.tree_view.setFixedHeight(300)
# Create a model for the tree view
self.model = QStandardItemModel()
self.tree_view.setModel(self.model)
self.tree_view.entered.connect(self.enteredCB)
self.tree_view.clicked.connect(self.clickedCB)
self.tree_view.expanded.connect(self.expandedCB)
self.tree_view.collapsed.connect(self.collapsedCB)
self.setWindowTitle("Popup Dialog")
self.setWindowFlags(Qt.Popup)
layout = QVBoxLayout(self)
layout.setContentsMargins(0,0,0,0)
layout.addWidget(self.tree_view)
self.setLayout(layout)
self.tree_view.setMouseTracking(True)
def enteredCB(self,i):
print('entered')
self.setFullLabel(i)
def expandedCB(self,i):
print('expanded')
self.collapseOthers(i)
def collapsedCB(self,i):
print('collapsed')
def clickedCB(self,i):
print('clicked')
self.setFullLabel(i)
self.close() # close the popup
def setFullLabel(self,i):
# Get the full hierarchy path for display
current_index = i
path_list = [self.model.data(i)]
while current_index.parent().isValid():
parent_index = current_index.parent()
parent_text = self.model.data(parent_index)
path_list.insert(0, parent_text)
current_index = parent_index
# Join path with a separator and set the text
self.parent.button.setText(' > '.join(path_list))
def populate(self, data):
"""Populates the tree model from a dictionary."""
self.model.clear()
for key, children in data.items():
parent_item = QStandardItem(key)
for child_text in children:
child_item = QStandardItem(child_text)
parent_item.appendRow(child_item)
self.model.appendRow(parent_item)
for r in range(self.model.rowCount()):
for c in range(self.model.columnCount()):
txt=self.model.item(r,c).text()
print(f'row {r} col {c} : {txt}')
def collapseOthers(self,expandedIndex):
QApplication.processEvents()
print('collapse_others called: expandedIndex='+str(expandedIndex))
def _collapse_recursive(parent_index: QModelIndex,sp=' '):
for row in range(self.model.rowCount(parent_index)):
index = self.model.index(row, 0, parent_index)
item=self.model.itemFromIndex(index)
txt=item.text()
print(sp+f'checking r={row} col=0 : {txt}')
if index.isValid() and index!=expandedIndex:
print(sp+' collapsing')
self.tree_view.collapse(index)
# self.tree_view.setExpanded(index,False)
# Recursively process children
if self.model.hasChildren(index):
_collapse_recursive(index,sp+' ')
# Start the recursion from the invisible root item
_collapse_recursive(QModelIndex())
QApplication.processEvents()
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Main Window")
self.setGeometry(100, 100, 400, 300)
central_widget = QWidget()
self.setCentralWidget(central_widget)
layout = QVBoxLayout(central_widget)
self.button = QPushButton("Show Popup", self)
self.button.clicked.connect(self.show_popup_under_button)
layout.addWidget(self.button)
self.popup = MyPopup(self)
def show_popup_under_button(self):
# Get the global position of the button's top-left corner
button_pos = self.button.mapToGlobal(QPoint(0, 0))
# Calculate the desired position for the popup
popup_x = button_pos.x()
popup_y = button_pos.y() + self.button.height()
# Sample hierarchical data
data = {
"Fruits": ["Apple", "Banana", "Orange"],
"Vegetables": ["Carrot", "Broccoli", "Spinach"],
"Dairy": ["Milk", "Cheese", "Yogurt"]
}
self.popup.populate(data)
self.popup.move(popup_x, popup_y)
self.popup.exec_() # Show as a modal dialog
if __name__ == "__main__":
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
I think what's happening is you might be moving the mouse and clicking at the same time (unbeknownst to you). According to MOUSE_EVENT_RECORD, a MOUSE_MOVED (0x0001) + DOUBLE_CLICK (0x0002) = 0x0003, so it adds up the event codes into pme->dwEventFlags and never goes into your switch case. My suggestion would be to remove your switch and keep just the if ( pme->dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED ) check.